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

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

7得票1回答
为什么我的iOS设备上使用VBO时,这个OpenGL ES 2.0着色器不起作用?

如果有人能够揭示这里出了什么问题,也许是gl命令的错序或其他不兼容的命令序列,我将非常感激您的帮助。尽管进行了大量的谷歌研究并查看了《OpenGL ES 2.0 编程指南》中的示例,但整天都在尝试让此代码运行,但没有成功。 我正在尝试在iPhone上使用顶点缓冲对象和自定义着色器在OpenG...

8得票1回答
替换现有VAO中的VBO

我有一个包含各种顶点属性的VAO,包括顶点位置、顶点法线和元素数组VBO(全部为STATIC_DRAW)。只需使用以下代码即可渲染实例: glBindVertexArray(vao); glDrawElements(GL_TRIANGLES, <count>, <type&...

19得票1回答
OpenGL:批处理绘制好还是静态VBO更好?

从效率角度(或其他重要角度)来看,哪种方案更可取呢? 情境 一个OpenGL应用程序每帧绘制许多不同位置的线条(60 fps)。假设有10条线。或者有100,000条线。答案会有所不同吗? #1 使用永远不会更改的静态VBO,其中包含一条线的2个顶点 每帧将使用一个glDrawArr...

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

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

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

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

12得票2回答
OpenGL:渲染一批几何体的高效方法?

这是我一直在研究的问题,但我还没有找到任何具体信息或好的例子。例如,我有一堆不相关的对象(比如三角形带)。渲染它们的最高效方法是什么? 我听说可以将几个对象放在一个VBO中以减少openGL调用次数,但我没有看到如何做到这一点的正确示例。我也看到了一些与这种想法相矛盾的帖子。所以现在,我主要...

10得票1回答
一个VAO是否可以同时记住EBO/IBO(元素或索引)和VBO的内容?

我的代码按照预期工作,但这可能只是巧合,我不想在以后遇到错误,所以我尽量保持代码的干净: 我执行以下步骤来初始化网格: 生成并绑定VBO和缓冲数据 生成并绑定IBO和缓冲数据 生成并绑定VAO 绑定之前生成的同一VBO(即第1步生成的) 启用需要的顶点属性数组,并设置顶点属性指针 再次绑...

9得票2回答
OpenGL:使用VBO绘制线条

如何使用单个VBO绘制多条分离的线段?

11得票2回答
OpenGL 2.1:glMapBuffer和使用提示

我一直在使用glBufferData,我认为需要指定使用提示(例如GL_DYNAMIC_DRAW)是有道理的。 然而,最近在Stack Overflow上建议我使用glMapBuffer或glMapBufferRange来修改非连续块的顶点数据。 当使用glMapBuffer时,似乎没有任...