OpenGL VAO 以前用glbegin的光照怎么消失了

//绑定VBO以供使用

glGenBuffers(1, &m_VertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, m_VertexBuffer);
//加载数据到VBO

glBufferData(GL_ARRAY_BUFFER, 9 * meshNum * sizeof(float),
positionData, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);//顶点坐标

glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (GLubyte *)NULL);

该回答引用NewBing,仅供参考,不保证完全正确

你好,这是Bing。我可以帮你解答你的问题。😊


根据我的搜索结果,你的问题是关于OpenGL的VAO(顶点数组对象)和glBegin的光照问题。VAO是一种用来封装所有和顶点处理器相关的数据的特殊对象,它并不保存实际数据,而是存放顶点缓冲VB、索引缓冲IB的引用以及顶点本身的结构定义等¹。glBegin是一种固定管线函数,用来指定绘制图元的类型。


我发现了一些可能对你有用的网页,其中有一些解释了VAO和VBO(顶点缓冲对象)的区别和优势,以及如何正确使用VAO和glBindBuffer等函数。你可以参考以下链接:

希望这些信息能够帮助你解决你的问题。如果你还有其他问题,欢迎继续提问。😊


源: 与必应的对话, 2023/6/30
(1) Opengl的VAO个人理解 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/392128223.
(2) 一步步学OpenGL(32) -《顶点数组对象VAO》 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/151399361.
(3) OpenGL VAO best practices - Stack Overflow. https://stackoverflow.com/questions/8923174/opengl-vao-best-practices.