【发布时间】:2021-01-18 11:47:54
【问题描述】:
有 2 台计算机,它们都具有现代图形卡。两者都处理 OpenGL 4.6。我得到了这个代码:
GLuint VAO;
glGenVertexArrays(1, &VAO);
glBindVertexArray(VAO);
//Setting up the VAO Attribute format
glVertexArrayAttribFormat(VAO, 0, 3 * sizeof(float), GL_FLOAT, GL_FALSE, 0);
glEnableVertexArrayAttrib(VAO, 0);
由于某种原因,这段代码在我的一台计算机上运行良好(我的三角形打印正确)(但是 OpenGL 返回错误: 但程序运行正常而没有崩溃)
在我的另一台计算机(代码完全相同)上,当调用 glEnableVertexArrayAttrib(VAO,0) 并且我的程序崩溃时,我收到此错误。
我不知道为什么会发生这两个错误,我的 VAO 在两台计算机上都生成得很好。我在调用此代码之前检查了 OpenGL 上下文,没问题。
如果需要,我可以分享 GLFW 和 Glew Init 代码以及我的着色器生成代码(两者都不会引发任何错误,并且它已在我完成的其他一些测试代码中使用,没有任何问题)
【问题讨论】:
-
当然,经典的 glVertexAttribPointer 效果很好,但我想将单个 VAO 用于多个 VBO(就像在这篇文章中解释的那样:glVertexAttribFormat style of VAO usage
-
@Rabbid76 我有 GLFW 源代码(没有 lib/dll/a),我在两台计算机上都使用 clang 编译了 64 位的所有内容
-
请不要将文字作为图片发布,请在此处复制。图片不可搜索。