使用Element缓冲区的每顶点值

时间:2014-10-05 16:02:12

标签: opengl

假设我有一个顶点着色器。它的输入部分看起来像这样(简化):

layout(location = 0) in vec3 V_pos;
layout(location = 1) in vec3 V_norm;
layout(location = 2) in vec2 V_texcoord1;
layout(location = 3) in vec2 V_texcoord2;
layout(location = 4) in int V_texNum;

我想要的是让前4个输入来自元素缓冲区,而最后一个来自常规缓冲区。例如,在这个例子中,每个元素都有两个uv对,我希望能够为某些面提供不同的纹理来进行采样。

可以这样做吗?另一个选择是为着色器提供包含texNum值的大整数整数,并使用gl_VertexID访问它。但是,这似乎是一种非常难看的方式。

我使用OpenGL 3.3(尽管使用扩展名)和c ++。

0 个答案:

没有答案