问题标签 [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.
performance - OpenGL - 会使用多个 VBO 减慢渲染速度吗?
我正在渲染一些网格(有时超过 500 个),我想知道解决这个问题的最佳方法。创建 500 个 VBO,然后如果它们通过了截锥体和可见性测试,那么渲染它们是否毫无意义。有没有更有效的方法来做到这一点?我希望最大限度地提高性能。
opengl - 具有多纹理问题的 OpenGL VBO 绘图
我目前正在使用 VBO 在 OpenGL 中使用执行多重纹理(具有 5 个纹理)的 GLSL 着色器绘制一系列立方体。如果我不传递纹理,它工作得很好。但是如果我尝试使用纹理,整个屏幕只会被绘制成白色(大概是最后一个清晰的颜色)。如果我使用立即模式(没有 VBO)传递纹理,那么在那里也可以。我不知道为什么会出现问题。
代码:
注意:在初始设置阶段调用 VBO 的创建。绘图发生在绘图 GLUT 例程中。
c++ - 如何在 VBO 中使用 stride 参数?
我在理解如何使用一个包含 3 个不同数据的缓冲区时遇到问题,我的 vert、text、color 数据具有以下结构:
然后我(尝试)以下列方式使用它(这对我来说最有意义):
但是它失败了,并且它呈现的东西与我将步幅和指针全部设置为零所得到的不同。当我这样做时,我得到了正确渲染的顶点数据,但文本/颜色仍然不正确。
我不能将 &data[0].vertex 用于 glVertexPointer() 等中的最后一个参数,因为由于我使用的是 VBO,所以我不再拥有数据,该方法仅适用于顶点数组。
另外我不确定 glDrawArrays() 的计数值是如何工作的,我读过文档说它是索引,所以一个四边形应该有 4,对吗?但是当我将四边形的数量乘以 4 时,它只会渲染我的一半顶点,这是怎么回事?(如果我乘以 8,它将把它们全部呈现出来......)
vbo - OpenGL 3.0:由 VBO 引起的访问冲突异常
我正在更新一个相当过时的 OpenGL 项目。所以我试图从顶点数组移动到 VBO,但是我有一个无法跟踪的访问冲突异常。
所以我正在使用我在类构造函数中生成的 VBO 和 IBO:
(glewInit() 已经被调用)
各种渲染对象定义为:
然后在我的绘图功能中我做:
对 glVertexPointer 的旧式调用一切正常……但现在我的程序因访问冲突异常而崩溃。知道这可能来自哪里吗?
谢谢
c++ - 仅修改 VBO 缓冲区数据的特定元素类型?
目前我的 VBO 使用单个缓冲区,它有顶点、texcoord 和颜色元素。
现在,是否可以仅有效地更新 texcoords 而无需更新顶点/颜色?它应该与更新单独的缓冲区具有相同的效率。
c - 为 OpenGL 生成顶点数组
我想使用一些方便的方法来生成用于对象的顶点和颜色数组。根据我在生成数组时所见,这是我目前使用的一个示例:
}
但是当我在这样的事情上使用它时:
渲染不成立,渲染过程中会出现随机问题,例如闪烁、颜色失真等。在使用正常定义的数组(删除生成的顶点及其相关代码)时使用相同的代码进行初始化和渲染时,不会出现问题。
有谁知道我要去哪里错?
android - 通过 MappedByteBuffer 将原始 VBO 数据加载到 OpenGL(不工作)
我尝试通过 Google 在 GDC 2011 上的演讲中介绍的方法加载原始的、未压缩的 VBO 数据。该方法使用 MappedByteBuffer 在随后调用 glBufferData 时快速加载数据。不幸的是,对我来说,它只是行不通。我能够为它找到一个 hacky 工作(它在下面的代码中注释掉了),但我想在没有那个 hack 的情况下让它工作。这是我的代码示例:
opengl-es - 在 Symbian^3 中通过 VBO 方法加载 3D 对象时获取 KERN-EXEC 3,为什么?
当我单击我的应用程序图标时,我目前收到 KERN-EXEC 3 错误。实际上我正在通过 Symbian^3 中的 VBO 方法加载 3D 对象。同时,当我通过相同的 VBO 方法加载相对较小的对象时,我没有收到此错误。
有人可以帮我解决这个问题吗?
iphone - OpenGL ES 2.0 和顶点缓冲对象 (VBO)
我不知道如何在 iphone 的 opengl es 2.0 中为我的地形使用顶点缓冲区对象。这是静态数据,所以我希望通过使用 VBO 来提高速度。在常规 OpenGL 中,我使用显示列表和着色器没有问题。但是,在 opengl es 2.0 中,我必须将顶点数据作为属性发送到着色器,并且不知道这如何与 VBO 一起使用。顶点缓冲区在调用时如何知道将顶点数据绑定到哪个属性?这在opengl es 2.0中甚至可能吗?如果没有,还有其他方法可以优化静态地形的渲染吗?
ios - GLES2.0 上的 VBO glDrawElements 和 glVertexAttribPointer 不显示任何内容
我可以使用着色器、glVertexAttribPointer 和 glDrawArrays 显示纹理,如下所示:
在里面
并为平局
但我很难转换为 VBO、着色器和 glDrawElements。这是我到目前为止的代码,但没有显示:
标题
在里面
画