问题标签 [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 投票
3 回答
5821 浏览

opengl - 在OpenGL中将纹理映射到VBO的问题

我无法使用 OpenGL 将纹理正确映射到几何体上。事实上,我似乎甚至打破了过去可以正常工作的颜色插值。我在 C99 中创建了一个使用 SDL、GLee 和 SOIL 的测试用例。

唯一呈现的是 glClearColor 顶部的纯蓝色方块。

非常感谢任何帮助。

感谢您的回答,为了完整起见,我附上了固定代码。

0 投票
1 回答
677 浏览

haskell - VBO/FBO/DisplayLists 如何在 Haskell 的 OpenGL 绑定中工作?

Haskell 是关于通过计算值来计算的。

DisplayLists / FBOs / VBOs本质上是非常有状态的。即“给我一个显示列表/缓冲区对象”。

这些绑定在 Haskell 中是如何工作的?

[我确实了解单子;所以一个技术解释,而不是一个蓬松的解释,是首选]。

谢谢!

0 投票
1 回答
760 浏览

opengl - 顶点缓冲区对象未在 SDL 窗口中绘制

我只是在 Xcode 中使用 opengl SDL 模板,一切运行良好。我删除了 Atlantis 代码,并将主扩展名更改为 .mm,然后在 drawGL 中添加了一些测试代码。此时在drawGL中绘制一个简单的三角形(使用立即模式)会给我一个白色三角形,但是当我添加代码以使用顶点缓冲区对象进行绘制时,我只得到一个黑色窗口。

这是我的 VBO 绘图代码:

0 投票
2 回答
3901 浏览

c++ - 使用顶点缓冲对象的 OpenGL 快速纹理绘制。这是这样做的方法吗?

我正在使用 OpenGL 制作 2D 游戏。我想通过使用 VBO 来加速我的纹理绘制。

目前我正在使用即时模式。当我旋转和缩放纹理时,我正在生成自己的坐标。我还具有圆角纹理的功能,使用多边形基元来绘制它们。

我在想,为纹理的侧面制作一个顶点而不包括偏移量的 VBO 是否最快,这样我就可以使用 glTranslate、glScale 和 glRotate 来移动我的纹理的绘图位置。然后我可以每次都使用相同的 VBO 来绘制纹理而不做任何更改。当我需要为圆角添加坐标时,我只能更改 VBO。

这是最好的方法吗?做的时候应该注意什么?在现代显卡中使用 GL_TRIANGLES 而不是 GL_QUADS 真的最快吗?

谢谢你的任何回答。

0 投票
2 回答
993 浏览

c++ - OpenGL顶点缓冲区对象代码给出错误的输出

我的顶点缓冲区对象代码应该可以很好地渲染纹理,但纹理却被奇怪地渲染为一些三角形。

会发生什么 - http://godofgod.co.uk/my_files/wrong.png

应该发生什么 - http://godofgod.co.uk/my_files/right.png

此函数创建 VBO 并设置顶点和纹理坐标数据:

这是另一个函数的一些相关代码,它应该使用 VBO 绘制纹理。

我希望代码使用前三个坐标(左上、左下、右上)和后三个坐标(左下、右上、右下)来绘制带有纹理的三角形以最有效的方式正确处理数据。我不明白为什么三角形应该使它更有效率,但显然这是要走的路。当然,由于某种原因它失败了。

我在问什么坏了,但我通常是否以正确的方式处理它?

谢谢你。

0 投票
2 回答
396 浏览

c++ - 使用 glDrawArrays() 时如何获取 VBO 的长度以渲染所有顶点?

我在函数中创建了一个 VBO,我只想返回 VBO id。

我在另一个函数中使用 glDrawArrays,我希望它绘制 VBO 中的所有顶点,而无需同时传递顶点数。VBO 还包含纹理坐标数据。

谢谢你。

0 投票
1 回答
2626 浏览

graphics - 尝试使用简单着色器 + VBO 时出现问题

您好我正在尝试将以下函数转换为基于 VBO 的函数以用于学习目的,它在屏幕上显示静态纹理。我在 iPhone 上使用带有着色器的 OpenGL ES 2.0(在这种情况下应该与常规 OpenGL 几乎相同),这就是我的工作:

我尝试这样做以转换为 VBO,但是我没有看到此版本在屏幕上显示任何内容:

在这两种情况下,我都使用这个简单的顶点着色器

gl_Position 等于 mvp * vec4 的乘积,因为我正在使用该 mvp 在 2D 中模拟 glOrthof

还有这个片段着色器

我真的需要帮助,也许我的着色器在第二种情况下是错误的?

提前致谢。

0 投票
2 回答
485 浏览

c++ - 使用 VBO 和 CPU 使用率非常高

我真的不知道该怎么办了。我已经让我的应用程序使用 VBO,而我的 cpu 使用率仍然进入 70 年代和 80 年代。我的渲染过程是这样的:

如果形状没有被细分,则设置相机变换,对其进行细分。如果它有 VBO,则创建它的 VBO,使用它。

你会注意到我也有显示列表,如果不支持 VBO,我可能会使用这些。我去找了一个 OpenGL 演示,它可以在我的 PC 上以 60fps 的速度渲染一个 32000 多边形网格,并使用 4% 的 cpu。我正在使用 vbos 以 60fps 的速度渲染大约 10,000 个多边形,并且使用 70-80%。

这是我的渲染过程:

为什么我会得到如此高的 CPU 使用率?

0 投票
1 回答
2017 浏览

c++ - 如何将多个纹理应用于立方体的 VBO?

我是 VBO 的新手,并且阅读了一些关于创建和使用 VBO 的文章。我正在开发一个要创建十几个旋转立方体的应用程序。我已连接到将文本消息推送到我的应用程序的服务器。当我收到 6 条短信时,我使用 Pango 和 Cairo 呈现这些短信。然后我想从这 6 条渲染消息中创建纹理并将它们应用到新的 Cube。

虽然我通常只使用 2D 纹理并将它们应用于 GL_QUAD,但我不确定如何将 6 个纹理应用于使用 VBO 创建的立方体?

我找到了一个关于如何使用 VBO 创建多维数据集的示例。这些创建如下:

VBO

使用 VBO 的 Cube 类

0 投票
6 回答
4316 浏览

c++ - C++ 中的 OpenGL VBO 技术

我对在 OpenGL 程序中正确使用 VBO 感到有点困惑。

我想创建一个地形分页算法,使用从 4096x4096 灰度高度图调用的地图作为“整体”地图。

根据我的阅读,存储在 VBO 中的每个顶点将占用 64 个字节。

我遇到的问题是大多数消息来源都指出单个 VBO 的大小应该在 1-4mb 之间,并且 VBO 越少越好。然而根据我的计算,存储每个顶点总共需要大约 1 GB 的数据!(4096x4096x64) 这不包括每个顶点可能需要为每个三角形存储多次。

一旦我得到了代码的地形部分,这也不能适应这张地图上的不同车辆和人。

我看到的另一个解决方案是在程序运行时从硬盘驱动器中分页数据,但另一个消息来源说,在程序运行时创建和销毁是一个坏主意,而且最好的做法是尽可能少的 VBO可能的。

我真正想知道的是,我错过了什么?我确定我在这里进行了某种大规模的疏忽,因为 4mb 的最大 VBO 大小似乎非常低,即使我在 64x64 块中加载纹理,以及将填充地图的不同交互式对象也是如此。

还是我对我能取得的成就的期望是不切实际的?有没有更好的方法可供我使用,我不知道?我正在研究诸如 Oblivion 或 Fallout 3 之类的游戏,以及某种程度上的 Boundless Planet,看到了巨大的地形,并想知道这到底是怎么可能的。

我了解如何编码,这不是我第一次深入研究 OpenGL,而是我第一次尝试理解和利用 VBO。

如果有人能阐明我对 VBO 的理解出错的地方,将不胜感激。