2012-04-06 23 views
6

Tôi đang cố gắng tạo một mạng lưới các điểm bằng cách tính toán các vị trí đỉnh động, dựa trên chỉ mục của chúng trong mảng các đỉnh được gửi tới trình đổ bóng. Có tương đương với biến gl_VertexID mà tôi có thể gọi từ bên trong trình đổ bóng không? Hoặc một cách khác để truy cập vị trí của chúng trong mảng mà không phải gửi thêm dữ liệu tới GPU? Cảm ơn, Josh.OpenGLES 2.0: tương đương gl_VertexID?

Đây là vertex shader của tôi:

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

Không phải là câu trả lời cho câu hỏi ban đầu của bạn, nhưng điều này đã được thêm vào GLES 3.0. http://www.khronos.org/registry/gles/specs/3.0/es_spec_3.0.0.pdf – nullspace

Trả lời

12

Đáng tiếc là không có tương đương gl_VertexID trong GLES2. Bạn phải tự tạo và tự chuyển dữ liệu bổ sung.