8得票1回答
通过VBO向片段着色器传递额外数据 - DynamicSpriteBatch

我正在学习使用AndEngine编写OpenGL着色器,我的目标是使用一些光线着色器来创建DynamicSpriteBatch,其中光源位置将通过vbo传递给每个spritebatch的绘制调用,以便我可以在每个sprite上操纵光源。 因此,我已创建了LightSpriteBatch(具有...

10得票3回答
OpenGL(ES 2.0)在共享内存架构中的VBO性能

我是一名桌面GL开发人员,现在开始探索移动领域。 为了避免误解或者单纯的回复,我谨慎地说我对GL和GL | ES机制非常清楚。 简短的问题是:如果我们在共享内存架构中使用GL | ES 2.0,使用VBO相对于客户端数组有什么意义? 更详细地说: 顶点缓冲区是原始内存块,驱动程序无法...

7得票2回答
有多少个VAO和VBO?

据我理解:VAO代表了一种特定的状态。如果我绑定一个VAO,添加一些VBO和元素缓冲区用于索引等,我就能保存我想要绘制的对象的某种状态,并在以后需要渲染时轻松地激活和绘制它们。对吗? 因此,VBO保存实际数据,而VAO只是一个“包装器对象”,它保存了我为其定义的所有缓冲区的指针? 更改VA...

144得票5回答
什么是顶点数组对象?

我今天刚开始学习OpenGL,参考了这个教程:http://openglbook.com/the-book/ 我已经学到第二章,绘制了一个三角形,但是我不理解VAOs(这个缩写是否正确?)。教程中有以下代码:glGenVertexArrays(1, &VaoId); glBindVer...

8得票1回答
用顶点缓冲对象(VBO)渲染Kinect点云

我正在尝试制作一个动态点云可视化器。这些点每帧都会通过Kinect传感器更新。我使用OpenCV和GLUT来捕获帧并显示。 OpenCV API返回一个大小为640×480的浮点数数组,表示点的xyz位置,以及一个大小为640×480的整数数组,表示RGB颜色数据。 为了获得最大的性能,我尝试...

38得票5回答
如何在GL_STREAM_DRAW和GL_DYNAMIC_DRAW之间选择?(这是一个关于IT技术的提问标题)

我正在使用OpenGL ES 2.0,但我认为这也与非ES相关:当创建VBO时如何知道要选择什么“用途”? 这个特定的VBO将在完全更新之前被使用1到4次,我不确定我必须选择GL_STREAM_DRAW还是GL_DYNAMIC_DRAW。

16得票3回答
有没有可能对VBO进行原地调整大小?

标题已经说明了一切,但为了清楚起见,我会添加一些额外的词语。 在这种情况下,resize 的意思是: 在旧的 vbo 结尾获取更多的存储空间 在前面保存旧数据 (希望不需要复制,但至少不是在 CPU 端进行复制,这意味着驱动程序应该处理此操作) 编辑 为了解释更多细节和证明我的问题...

22得票1回答
理解glVertexAttribPointer?

private int vbo; private int ibo; vbo = glGenBuffers(); ibo = glGenBuffers(); glBindBuffer(GL_ARRAY_BUFFER, vbo); glBufferData(GL_ARRAY_BUFFER, U...

18得票1回答
在OpenGL中,使用VBO时如何使用偏移量

我的目标是使用相同的VBO但不同的偏移量多次呈现网格。例如://Load VBO glGenBuffers(2, &bufferObjects[0]); glBindBuffer(GL_ARRAY_BUFFER, bufferObjects[VERTEX_DATA]); glBuffe...

8得票1回答
如果我在程序退出时未能删除顶点缓存对象会发生什么?

在我阅读的所有有关顶点缓冲对象(Vertex Buffer Objects)的文档和教程中,作者都强调过,在应用程序退出之前必须删除你的VBO。 如果程序崩溃或以程序无法删除VBO的方式被关闭,那么VBO会发生什么? 它会持续存在于GPU RAM中直到计算机重新启动,还是GPU最终会回收VB...