OpenGL - 尝试使用 VBO 会导致错误
Posted
技术标签:
【中文标题】OpenGL - 尝试使用 VBO 会导致错误【英文标题】:OpenGL - attempt to use VBO causes an error 【发布时间】:2012-04-13 09:03:14 【问题描述】:尝试在 OpenGL 中使用 VBO 时遇到问题(使用大量教程) - 每次我调用 glBufferData 时,都会弹出“atioglxx.dll 中的访问冲突”错误。我一直在尝试使用不同数据类型的数据、顶点等,但没有成功。 伪代码如下:
GLDouble[] VertexArray = 1.0, 0.0, 1.0, 0.0, 0.0, -1.0, -1.0, 0.0, 1.0;
glGenBuffers(1, @VertexList);
glBindBuffer(GL_ARRAY_BUFFER, VertexList);
glBufferData(GL_ARRAY_BUFFER, sizeof(VertexArray), @VertexArray, GL_STATIC_DRAW);
【问题讨论】:
你检查你的显卡是否支持VBO?你有最新的驱动程序吗? 您使用的是哪种语言? 如果这是 Pascal 并且 vertexarray 是动态数组,那么您应该尝试使用 @VertexArray[0]。 首先验证 glGenBuffers 和 glBindBuffer 是否正常工作。我的意思是你可以用 glGetError 来查看。我感觉它可能没有正确绑定。 扩展加载使用什么?有 GLEW/GLEE 吗?看来我们的内存有问题,或者opengl代码的函数指针有问题 【参考方案1】:试试:
glBufferData(GL_ARRAY_BUFFER, sizeof(VertexArray), VertexArray, GL_STATIC_DRAW);
【讨论】:
以上是关于OpenGL - 尝试使用 VBO 会导致错误的主要内容,如果未能解决你的问题,请参考以下文章