5 Stimmen

Warum gibt die Funktion texture1d() in GLSL einen vec4 zurück?

Ich versuche, ein 1D-Array als Lookup-Tabelle in meinem Vertex-Shader zu verwenden so warum, wenn ich aufrufen

texture1D(tex,gl_TexCoord[0].s);

wird ein vec4 zurückgegeben? Ich meine, ich weiß, das ist, was es tut, aber was bedeuten die 4 Werte? Alles, was ich will, ist der eine Wert aus der Textur auf der Grundlage der Koordinate.

3voto

David Punkte 46

Weil die Textur1D RGBA-Werte (Rot, Grün, Blau, Alpha) haben kann. Wenn Sie die 1D-Texturdaten im roten Kanal (GL_RED) speichern, können Sie auf diese Daten mit zugreifen:

texture1D(tex,gl_TexCoord[0].s).r ;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X