2012-04-06 16 views
6

Ich versuche, ein Raster von Punkten zu erstellen, indem ich Vertex-Positionen dynamisch berechne, basierend auf ihrem Index im Scheitelpunkt-Array, das an den Shader gesendet wird. Gibt es ein Äquivalent der Variable gl_VertexID, die ich in meinem Shader aufrufen kann? Oder eine andere Möglichkeit, auf ihre Position im Array zuzugreifen, ohne mehr Daten an die GPU senden zu müssen? Danke, Josh.OpenGLES 2.0: gl_VertexID gleichwertig?

Hier ist meine Vertex-Shader:

attribute vec4 vertexPosition; 
uniform mat4 modelViewProjectionMatrix; 
vec4 temp; 
uniform float width; 

void main() 
{  
    temp = vertexPosition; 

    // Calculate x and y values based on index: 
    temp.y = floor(gl_VertexID/width); 
    temp.x = gl_VertexID - width*temp.y; 

    gl_Position = modelViewProjectionMatrix * temp; 
} 
+3

Keine Antwort auf Ihre ursprüngliche Frage, aber diese wurde in GLES 3.0 hinzugefügt. http://www.khronos.org/registry/gles/specs/3.0/es_spec_3.0.0.pdf – nullspace

Antwort

12

Leider gibt es keine gl_VertexID Äquivalent in GLES2. Sie müssen selbst zusätzliche Daten erstellen und weitergeben.