Lazarus - OpenGL 3.3 Tutorial - Vertex-Puffer - VertexID
Aus DGL Wiki
Version vom 1. August 2018, 17:52 Uhr von Mathias (Diskussion | Beiträge)
Inhaltsverzeichnis
Vertex-Puffer - VertexID
Einleitung
Mit gl_VertexID kann man im Vertex-Shader ermitteln, welcher Vertex aus der Vertex-Array gezeichnet wird.
Das Rendering ist nicht besonderes, es spielt sich alles im Vertex-Shader ab.
Da es in diesem Beispiel nur maximal 6 Vertex-Punkte gibt, habe ich die VertexID mit einer einfachen Case-Schleife ausgewertet.
Vertex-Shader:
#version 330
layout (location = 10) in vec3 inPos;
out vec3 col;
void main(void)
{
gl_Position = vec4(inPos, 1.0);
switch (gl_VertexID) // Den aktuellen Vertex abfragen.
{
case 0: col = vec3(1.0, 0.0, 0.0);
break;
case 1: col = vec3(0.0, 1.0, 0.0);
break;
case 2: col = vec3(0.0, 0.0, 1.0);
break;
case 3: col = vec3(1.0, 1.0, 0.0);
break;
case 4: col = vec3(0.0, 1.0, 1.0);
break;
default: col = vec3(1.0, 0.0, 1.0);
}
}
Fragment-Shader
#version 330
out vec4 outColor;
in vec3 col;
void main(void) {
outColor = vec4(col, 1.0);
}
Autor: Mathias
Siehe auch
- Übersichtseite Lazarus - OpenGL 3.3 Tutorial