8得票4回答
现代OpenGL:VBO,GLM和矩阵堆栈

在搜索和阅读有关现代OpenGL的内容以升级我的现有项目后,我有点困惑,因为我的3D框架基于OpenGL 2.1。 所以,就我所学到的... We need to generate our Vertex-Buffer-Objects from vertices, indices, nor...

36得票5回答
VBO何时比“简单”的OpenGL原语(glBegin())更快?

经过多年听说顶点缓冲对象(Vertex Buffer Objects,VBOs)的使用后,我最近决定进行实验尝试它们的效果(我的项目通常不需要极高的性能表现...) 下面我将描述我的实验情况,但简而言之,我在“简单”直接模式(glBegin()/glEnd())、顶点数组(CPU端)和VBO...

9得票3回答
如何使用OpenGL 3.x的VBO来渲染动态世界?

尽管似乎OpenGL 3.x本身的最新参考资料很少,但实际的OpenGL低级操作相对简单。然而,我正在尝试概念化如何操作VBO以渲染动态世界,这让我遇到了严重的困难。 显然,旧的立即模式方式不适用了,但是从那里我应该怎么做呢?我是否需要编写某种场景结构,然后将其转换为一组顶点并将其流式传输到...

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

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

14得票3回答
使用多个OpenGL VBO绘制多个模型

我不想贴太多的代码,所以我会用直观的语言表达这个问题。希望你能理解我的意思。 我正在制作一个游戏,在代码中有一个模型类来加载模型并设置它的VBO。 在加载函数中,它生成一个新的 VBO ID,并通过绑定等操作将顶点数据从文件加载到缓冲区中(这个过程很顺利)。 在程序开头,我创建了一个模型...

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

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

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

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

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

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

7得票2回答
在VBO中包含索引和法向量是否有意义?

我正在编写一个OpenGL渲染网格的插件。我的VBO里有一个顶点数组和一个索引数组。现在我想存储法向量。由于一个顶点被多个面共享并且具有不同的法向量,因此似乎我必须多次复制顶点,从而失去了索引的使用。 例如,要存储一个立方体,需要8个顶点和24个索引(每个面4个)。但是如果我想存储法向量,是...

9得票1回答
在使用GLES20时,Android 2.3.3上的顶点缓冲对象(VBO)无法正常工作

在Android上,我正在尝试运行一个简单的OpenGL ES 2.0应用程序,使用顶点缓冲对象,但我失败了。 我从这个项目开始: http://developer.android.com/resources/tutorials/opengl/opengl-es20.html 所有内容...