问题标签 [vbo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2437 浏览

performance - OpenGL - 会使用多个 VBO 减慢渲染速度吗?

我正在渲染一些网格(有时超过 500 个),我想知道解决这个问题的最佳方法。创建 500 个 VBO,然后如果它们通过了截锥体和可见性测试,那么渲染它们是否毫无意义。有没有更有效的方法来做到这一点?我希望最大限度地提高性能。

0 投票
1 回答
1671 浏览

opengl - 具有多纹理问题的 OpenGL VBO 绘图

我目前正在使用 VBO 在 OpenGL 中使用执行多重纹理(具有 5 个纹理)的 GLSL 着色器绘制一系列立方体。如果我不传递纹理,它工作得很好。但是如果我尝试使用纹理,整个屏幕只会被绘制成白色(大概是最后一个清晰的颜色)。如果我使用立即模式(没有 VBO)传递纹理,那么在那里也可以。我不知道为什么会出现问题。

代码:

注意:在初始设置阶段调用 VBO 的创建。绘图发生在绘图 GLUT 例程中。

0 投票
1 回答
878 浏览

c++ - 如何在 VBO 中使用 stride 参数?

我在理解如何使用一个包含 3 个不同数据的缓冲区时遇到问题,我的 vert、text、color 数据具有以下结构:

然后我(尝试)以下列方式使用它(这对我来说最有意义):

但是它失败了,并且它呈现的东西与我将步幅和指针全部设置为零所得到的不同。当我这样做时,我得到了正确渲染的顶点数据,但文本/颜色仍然不正确。

我不能将 &data[0].vertex 用于 glVertexPointer() 等中的最后一个参数,因为由于我使用的是 VBO,所以我不再拥有数据,该方法仅适用于顶点数组。

另外我不确定 glDrawArrays() 的计数值是如何工作的,我读过文档说它是索引,所以一个四边形应该有 4,对吗?但是当我将四边形的数量乘以 4 时,它只会渲染我的一半顶点,这是怎么回事?(如果我乘以 8,它将把它们全部呈现出来......)

0 投票
1 回答
781 浏览

vbo - OpenGL 3.0:由 VBO 引起的访问冲突异常

我正在更新一个相当过时的 OpenGL 项目。所以我试图从顶点数组移动到 VBO,但是我有一个无法跟踪的访问冲突异常。

所以我正在使用我在类构造函数中生成的 VBO 和 IBO:

(glewInit() 已经被调用)

各种渲染对象定义为:

然后在我的绘图功能中我做:

对 glVertexPointer 的旧式调用一切正常……但现在我的程序因访问冲突异常而崩溃。知道这可能来自哪里吗?

谢谢

0 投票
2 回答
494 浏览

c++ - 仅修改 VBO 缓冲区数据的特定元素类型?

目前我的 VBO 使用单个缓冲区,它有顶点、texcoord 和颜色元素。

现在,是否可以仅有效地更新 texcoords 而无需更新顶点/颜色?它应该与更新单独的缓冲区具有相同的效率。

0 投票
1 回答
2592 浏览

c - 为 OpenGL 生成顶点数组

我想使用一些方便的方法来生成用于对象的顶点和颜色数组。根据我在生成数组时所见,这是我目前使用的一个示例:

}

但是当我在这样的事情上使用它时:

渲染不成立,渲染过程中会出现随机问题,例如闪烁、颜色失真等。在使用正常定义的数组(删除生成的顶点及其相关代码)时使用相同的代码进行初始化和渲染时,不会出现问题。

有谁知道我要去哪里错?

0 投票
1 回答
490 浏览

android - 通过 MappedByteBuffer 将原始 VBO 数据加载到 OpenGL(不工作)

我尝试通过 Google 在 GDC 2011 上的演讲中介绍的方法加载原始的、未压缩的 VBO 数据。该方法使用 MappedByteBuffer 在随后调用 glBufferData 时快速加载数据。不幸的是,对我来说,它只是行不通。我能够为它找到一个 hacky 工作(它在下面的代码中注释掉了),但我想在没有那个 hack 的情况下让它工作。这是我的代码示例:

0 投票
1 回答
169 浏览

opengl-es - 在 Symbian^3 中通过 VBO 方法加载 3D 对象时获取 KERN-EXEC 3,为什么?

当我单击我的应用程序图标时,我目前收到 KERN-EXEC 3 错误。实际上我正在通过 Symbian^3 中的 VBO 方法加载 3D 对象。同时,当我通过相同的 VBO 方法加载相对较小的对象时,我没有收到此错误。

有人可以帮我解决这个问题吗?

0 投票
1 回答
9010 浏览

iphone - OpenGL ES 2.0 和顶点缓冲对象 (VBO)

我不知道如何在 iphone 的 opengl es 2.0 中为我的地形使用顶点缓冲区对象。这是静态数据,所以我希望通过使用 VBO 来提高速度。在常规 OpenGL 中,我使用显示列表和着色器没有问题。但是,在 opengl es 2.0 中,我必须将顶点数据作为属性发送到着色器,并且不知道这如何与 VBO 一起使用。顶点缓冲区在调用时如何知道将顶点数据绑定到哪个属性?这在opengl es 2.0中甚至可能吗?如果没有,还有其他方法可以优化静态地形的渲染吗?

0 投票
2 回答
7259 浏览

ios - GLES2.0 上的 VBO glDrawElements 和 glVertexAttribPointer 不显示任何内容

我可以使用着色器、glVertexAttribPointer 和 glDrawArrays 显示纹理,如下所示:

在里面

并为平局

但我很难转换为 VBO、着色器和 glDrawElements。这是我到目前为止的代码,但没有显示:

标题

在里面