12得票3回答
顶点缓冲对象的最大大小(OpenGL ES 2.0)

GL_ARRAY_BUFFER或GL_ELEMENT_ARRAY_BUFFER绑定的顶点缓冲对象最大大小是否有限制? 原本,我正在绘制一个由16个子网格组成的网格。对于每个子网格,我创建了一个顶点缓冲区,在渲染阶段期间,我调用了glDrawElements。 在iOS模拟器上这很好用,但是当...

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

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

17得票2回答
OpenGL VBO更新数据

我需要绘制一个包含数千个顶点的缓冲区。我使用VBO来存储数据。 我知道我需要多次更新VBO,但每次只更新一小部分。 因此,我想知道最好的方法是什么: 将VBO分成较小的VBO(每个VBO包含大约300个顶点),然后使用1个调用更新单个VBO? 使用一个大的VBO,并使用大量的glBuf...

16得票1回答
OpenGL,在绘制调用之后明确解除绑定是否值得?

在一个给定的绘制调用结束时,使用glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0)和/或glBindBuffer(GL_ARRAY_BUFFER, 0)来解除绑定似乎更加干净。我喜欢确保没有绑定不应该有的内容;但是,这样做会对性能产生多大的影响呢? 有人认为以“...

11得票3回答
我需要使用多少个VBO?

我了解如何使用顶点缓冲对象(Vertex Buffer Object),并且知道它比即时绘制提供了更好的性能。我将要绘制很多2D四边形(精灵),想知道应该为每个精灵创建一个VBO,还是创建一个包含所有数据的VBO?

9得票1回答
如何同步多线程的OpenGL缓冲区访问?

我有包含地形块网格的顶点缓冲区。每当玩家编辑地形时,相应块的网格必须重新生成并上传到顶点缓冲区。由于重新生成网格需要一些时间,我在异步工作线程中执行此操作。 问题在于主线程在同一时刻绘制缓冲区,而工作线程上传新数据。这意味着,在玩家编辑地形后,一个损坏的块会渲染一帧。它只会突然出现一次,之后...

11得票3回答
OpenGLES 2.0分别为顶点、颜色和纹理坐标分配缓冲区

我已经跟随一些教程学习OpenGL并进行了一些实验几天了。但是有一件事情我真的不明白,这也阻止了我继续学习。我已经谷歌搜索了几个小时,但仍未找到答案。 我应该在哪里为每个单独的顶点指定单独的颜色值和纹理坐标?这些属性总是应该列在与顶点位置相同的数组(结构体)中吗?就像这样:const Ver...

9得票1回答
OpenGL ES 2.0:寻求针对移动顶点的VBO性能优化技巧

在我尝试从ES 1.x转换到OpenGL ES 2.0的过程中,我正在将一些代码转换为使用顶点缓冲区对象(“VBO”)而不是现有的未缓冲的glDrawArrays调用。 我已经设置了VBO并使其工作,但遇到了设计困境,希望得到更有经验的OpenGL ES 2.0专家的建议。 我想绘制一堆多...

17得票2回答
使用顶点缓冲对象处理非常动态的数据在性能方面是否是个好主意?

我有许多粒子,每帧的顶点都会改变。当前使用客户端内存中的顶点数组进行绘制。如果我使用顶点缓冲对象,可以期望什么性能特征? 由于我必须使用多个glBuffersubData来更新粒子顶点,因此我每帧都会将顶点传输到视频内存中(就像使用普通的顶点数组一样),在这种情况下,VBO是否有任何好处? ...

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

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