OpenGL 4.3+元素数组

时间:2016-01-31 00:46:09

标签: c++ opengl graphics opengl-4 vertex-array

我使用核心OpenGL 4.3后端在C ++ 14中构建自己的游戏引擎。

我遵循以下教程:

我也遵循这些书:

  • OpenGL SuperBible(第六版)
  • OpenGL 4着色语言手册(第二版)

这两本书都适用于OpenGL 4.3,但是learnopengl.com教授OpenGL 3.3。这不是一个问题,因为我遵循OpenGL 3.3,并在我的其他资源引入新方法时进行修改。

我目前在使用旧的OpenGL 3.3方式将顶点数组移植到新的OpenGL 4.3方式时遇到了一些麻烦,如第31页的Wolff的书中所示。

旧方式:

gl::EnableVertexAttribArray(0);
gl::BindBuffer(gl::ARRAY_BUFFER, vbo);
gl::VertexAttribPointer(0, 3, gl::FLOAT, false, 0, nullptr);

新方式:

gl::EnableVertexAttribArray(0);
gl::BindVertexBuffer(0, vbo, 0, sizeof(GLfloat) * 3);
gl::VertexAttribFormat(0, 3, gl::FLOAT, false, 0);
gl::VertexAttribBinding(0, 0);

希望这能让你快速了解我所谈论的内容。我真正的问题是关于元素数组,Wolff没有详细介绍。此外,我似乎无法在SuperBible中找到元素数组,并且该索引具有误导性(请注意,我将SuperBible视为更多的参考而非阅读的书籍。)

根据在线文档,我最好的猜测是我应该应用以下代码:

gl::BindBuffer(gl::ELEMENT_ARRAY_BUFFER, ebo);
gl::BufferData(gl::ELEMENT_ARRAY_BUFFER, size, ptr, gl::STATIC_DRAW);

然而,我似乎无法看到我的网状物。只是想知道是否有更新的方法来处理我可能忽略的元素数组?

干杯!

0 个答案:

没有答案