Computergrafik
Interpolierte Parameter
← Per-Vertex Attribute | ● | Einfache Standard-Codesequenz →
Parameter, die im Vertex-Shader spezifiziert werden und über alle Fragmente des Primitivs interpoliert werden, nennt man Varying.
- Man definiert im Vertex-Shader eine (globale) Variable, die einen Wert zugewiesen bekommen soll:
varying vec4 myInterpolationName; - Im Fragment-Shader definiert man genau die gleiche Variable; hier kann auf die Variable nur lesend zugegriffen werden.
Die Variable enthält dann den interpolierten Wert.
Beispiel:
- Vertex-Shader:
#version 120
attribute vec4 vertex_position;
attribute vec4 vertex_color;
varying vec4 col;
void main () {
gl_Position = vertex_position;
col = vertex_color;
} - Pixel-Shader:
#version 120
varying vec4 col;
void main () {
gl_FragColor = col;
} - Zeichnen:
lglBegin (LGL_TRIANGLES);
lglColor (1, 0, 0, 1);
lglVertex (+0, +0.6, 0.0, 1.0);
lglColor (0, 1, 0, 1);
lglVertex (+0.75, -0.6, 0.0, 1.0);
lglColor (0, 0, 1, 1);
lglVertex (-0.75, -0.6, 0.0, 1.0);
lglEnd ();
← Per-Vertex Attribute | ● | Einfache Standard-Codesequenz →