Lazarus - OpenGL 3.3 Tutorial - Vertex-Puffer - VertexID: Unterschied zwischen den Versionen
Aus DGL Wiki
(Die Seite wurde neu angelegt: „200px<br><br> =Vertex-Puffer - VertexID = == Einleitung == Mit '''gl_VertexID''' kann ma…“) |
|||
Zeile 5: | Zeile 5: | ||
Das Rendering ist nicht besonderes, es spielt sich alles im Vertex-Shader ab.<br> | Das Rendering ist nicht besonderes, es spielt sich alles im Vertex-Shader ab.<br> | ||
<br><br> | <br><br> | ||
− | |||
<br><br> | <br><br> | ||
Da es in diesem Beispiel nur maximal 6 Vertex-Punkte gibt, habe ich die VertexID mit einer einfachen Case-Schleife ausgewertet.<br> | Da es in diesem Beispiel nur maximal 6 Vertex-Punkte gibt, habe ich die VertexID mit einer einfachen Case-Schleife ausgewertet.<br> |
Version vom 1. August 2018, 17:52 Uhr
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