【发布时间】:2012-11-08 21:28:31
【问题描述】:
我已经初始化了 glewInit( ) 和任何其他的 openGL 东西。在我做任何这些电话之前。
glGenBuffers( 1, &m_uiVertBufferHandle );
glBindBuffer( GL_ARRAY_BUFFER, m_uiVertBufferHandle );
glBufferData( GL_ARRAY_BUFFER, 0, 0, GL_READ_WRITE );
glBindBuffer( GL_ARRAY_BUFFER, 0 );
这就是我创建缓冲区对象的方式,我做了 glBufferData,因为我在 openGL 文章中读到,如果您不至少调用一次它,您根本没有任何存储空间,这将使 glMapBuffer 总是给您 0x00000000。
稍后我调用 glMapBuffer 来获取我的存储位置以开始保存数据 当我使用 glMapBuffer 时,我这样称呼它
void* buffer1;
glBindBuffer( GL_ARRAY_BUFFER, m_uiVertBufferHandle );
//make sure our buffer excists
buffer1 = glMapBuffer( GL_ARRAY_BUFFER, GL_READ_WRITE );
我总是在缓冲区 1 中得到 0x00000000。为什么是这样?我发现的唯一两个原因是我没有正确初始化 glewInit 并且我没有至少调用一次 glBindBufferData。
【问题讨论】:
-
not getting answers you like 的解决方案是不要删除你的旧问题并再次询问。仅供参考。
-
@NicolBolas 取决于是否有人滥用了系统的回答
标签: opengl vbo vertex vertex-buffer