2012-04-06 4 views
6

나는 셰이더에 보내지는 버텍스의 배열에서 인덱스를 기반으로 버텍스 위치를 동적으로 계산하여 점의 그리드를 만들려고한다. 셰이더 내에서 호출 할 수있는 gl_VertexID 변수와 같은 것이 있습니까? 또는 GPU에 더 많은 데이터를 보내지 않고 배열에서 위치를 액세스하는 또 다른 방법은 무엇입니까? 고마워, 조쉬.OpenGLES 2.0 : gl_VertexID 해당하는?

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

원래 질문에 대한 답변이 아니지만 GLES 3.0에 추가되었습니다. http://www.khronos.org/registry/gles/specs/3.0/es_spec_3.0.0.pdf – nullspace

답변

12

불행하게도 GLES2에는 gl_VertexID에 해당 없다 :

여기 내 버텍스 쉐이더입니다. 직접 추가 데이터를 작성하여 전달해야합니다.

관련 문제