【发布时间】:2014-02-27 00:04:43
【问题描述】:
我正在开发一个 OpenGL 2.0 渲染器 (https://bitbucket.org/mattiascibien/anima-render),实际上我遇到了一些我完全无法理解的东西,这就是 glVertexPointer() 指令的步幅。其实我的代码是这样的
glBindBuffer(GL_ARRAY_BUFFER, data.vertex_buffer);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(
3,
GL_FLOAT,
sizeof(GLfloat)*3,
(void*)0
);
但我实际上通过阅读 OpenGL 文档发现,步幅实际上应该为 0。更改它不会改变模型的渲染方式。
什么值是正确的?为什么改变这个参数没有区别?
编辑:数据存储在一个
std::vector<GLFloat>
使用 sizeof(GLfloat)*2 或 0 的 glTexCoordPointer 也会发生同样的情况
【问题讨论】:
标签: opengl