如果我创建一个双精度顶点缓冲区,例如:
GLuint vertBuffer, spanBuffer, spanCount, patchSize, program; // already setup
glUseProgram (program);
glEnableClientState (GL_VERTEX_ARRAY);
glBindBuffer (GL_ARRAY_BUFFER, vertBuffer);
glVertexPointer (3, GL_DOUBLE, 0, 0);
glPatchParameteri (GL_PATCH_VERTICES, patchSize);
glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, spanBuffer);
glDrawElements (GL_PATCHES, spanCount * patchSize, GL_UNSIGNED_INT, 0);
如何访问顶点着色器中的双精度数据?我应该能够做到这一点吗?
// GLSL VERTEX SHADER
#version 410
in dvec4 gl_Vertex;
void main ()
{
<snip>
你不知道。至少,不是那样。
如果您想使用 OpenGL 4.x+ 的功能将双精度值读取到着色器中,那么您可以must使用通用顶点属性。你不能使用旧的固定功能gl_Vertex
and glVertexPointer
不再了。你必须使用glVertexAttribLPointer http://www.opengl.org/wiki/GLAPI/glVertexAttribPointer,具有适当的通用顶点属性索引。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)