PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HLSL - Beginnerfrage


FuRanKi
2006-08-02, 12:56:44
Hallo Zusammen,

ich versuche mich gerade mit HLSL-Shadern und stoße gerade auf ein kleines Syntaxproblem.
Wie kann ich diese "If < "-Abfrage richtig coden?
Also d.h. ich kann die col.rgb-Werte nicht auf niedrigere Werte abfragen.
Das geht doch sicher irgendwie.

Vielen Dank
FuRanKu

---------------------------
float4 psThreshold(vs2ps In): COLOR
{
float LowT = LowThreshold * (1/255);
float3 LT = {0.5f, 0.5f, 0.5f};

float4 col = tex2D(Samp, In.TexCd);
if (col.rgb < LowT)
col.rgb = 0;
else
col.rgb = 1;
return col;
}

-------------------

del_4901
2006-08-02, 13:14:34
du kannst nicht 3 werte mit einem vergleichen.
Entweder du machst 3 if's oder du packst dein RGB in einen float zusammen, durch irgendeine Funktion.
mal abgsehen davon, gibt es für das was du da machen willst nicht eine step funktion? In GLSL gibt es sowas.

Awesomo
2006-08-02, 15:06:37
(1/255) gibt immer 0. musst mit float rechnen: (1.0f/255.0f)

del_4901
2006-08-02, 15:08:56
(1/255) gibt immer 0. musst mit float rechnen: (1.0f/255.0f)

Neben ein paar anderen Zuweisungsfehlern ist mir das nicht aufgefallen ^^ Das ist natürlich Fatal!

FuRanKu
2006-08-02, 17:31:23
Ich machs mit verschachtelten If-Abfragen.
Und danke für den Float-Tipp.

Ciao FuRanKu