2017-08-09 1 views

Antwort

1

Ich empfehle die GLSL-Funktionen mix und step zu verwenden.

mix interpoliert zwischen 2 Werten gemäß einem Gleitkomma-Interpolationswert a im Bereich [0.0, 1.0]. Wenn der Wert a gleich 0.0 ist, wird der erste Wert zurückgegeben und wenn der Wert a gleich 1,0 ist, wird der zweite Wert zurückgegeben.

step testet, ob ein Wert kleiner als ein Kantenwert ist. Wenn es kleiner ist, wird 0.0 zurückgegeben, sonst wird 1.0 zurückgegeben.

Wenn Sie die zwei Funktionen Code kombinieren wie folgt aussehen:

vec2 minx(vec2 a, vec2 b) 
{ 
    return mix(a, b, step(b.x, a.x)); 
} 

Hinweis, das Ergebnis step entweder genau 0,0 oder genau 1,0, dies führt dazu, dass mix entweder den ersten Wert zurückgibt oder gibt die 2. Wert.

+0

Erstaunlich! Danke. – vuoriov4

Verwandte Themen