问题标签 [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.
opengl - 在OpenGL中将纹理映射到VBO的问题
我无法使用 OpenGL 将纹理正确映射到几何体上。事实上,我似乎甚至打破了过去可以正常工作的颜色插值。我在 C99 中创建了一个使用 SDL、GLee 和 SOIL 的测试用例。
唯一呈现的是 glClearColor 顶部的纯蓝色方块。
非常感谢任何帮助。
感谢您的回答,为了完整起见,我附上了固定代码。
haskell - VBO/FBO/DisplayLists 如何在 Haskell 的 OpenGL 绑定中工作?
Haskell 是关于通过计算值来计算的。
DisplayLists / FBOs / VBOs本质上是非常有状态的。即“给我一个显示列表/缓冲区对象”。
这些绑定在 Haskell 中是如何工作的?
[我确实了解单子;所以一个技术解释,而不是一个蓬松的解释,是首选]。
谢谢!
opengl - 顶点缓冲区对象未在 SDL 窗口中绘制
我只是在 Xcode 中使用 opengl SDL 模板,一切运行良好。我删除了 Atlantis 代码,并将主扩展名更改为 .mm,然后在 drawGL 中添加了一些测试代码。此时在drawGL中绘制一个简单的三角形(使用立即模式)会给我一个白色三角形,但是当我添加代码以使用顶点缓冲区对象进行绘制时,我只得到一个黑色窗口。
这是我的 VBO 绘图代码:
c++ - 使用顶点缓冲对象的 OpenGL 快速纹理绘制。这是这样做的方法吗?
我正在使用 OpenGL 制作 2D 游戏。我想通过使用 VBO 来加速我的纹理绘制。
目前我正在使用即时模式。当我旋转和缩放纹理时,我正在生成自己的坐标。我还具有圆角纹理的功能,使用多边形基元来绘制它们。
我在想,为纹理的侧面制作一个顶点而不包括偏移量的 VBO 是否最快,这样我就可以使用 glTranslate、glScale 和 glRotate 来移动我的纹理的绘图位置。然后我可以每次都使用相同的 VBO 来绘制纹理而不做任何更改。当我需要为圆角添加坐标时,我只能更改 VBO。
这是最好的方法吗?做的时候应该注意什么?在现代显卡中使用 GL_TRIANGLES 而不是 GL_QUADS 真的最快吗?
谢谢你的任何回答。
c++ - OpenGL顶点缓冲区对象代码给出错误的输出
我的顶点缓冲区对象代码应该可以很好地渲染纹理,但纹理却被奇怪地渲染为一些三角形。
会发生什么 - http://godofgod.co.uk/my_files/wrong.png
应该发生什么 - http://godofgod.co.uk/my_files/right.png
此函数创建 VBO 并设置顶点和纹理坐标数据:
这是另一个函数的一些相关代码,它应该使用 VBO 绘制纹理。
我希望代码使用前三个坐标(左上、左下、右上)和后三个坐标(左下、右上、右下)来绘制带有纹理的三角形以最有效的方式正确处理数据。我不明白为什么三角形应该使它更有效率,但显然这是要走的路。当然,由于某种原因它失败了。
我在问什么坏了,但我通常是否以正确的方式处理它?
谢谢你。
c++ - 使用 glDrawArrays() 时如何获取 VBO 的长度以渲染所有顶点?
我在函数中创建了一个 VBO,我只想返回 VBO id。
我在另一个函数中使用 glDrawArrays,我希望它绘制 VBO 中的所有顶点,而无需同时传递顶点数。VBO 还包含纹理坐标数据。
谢谢你。
graphics - 尝试使用简单着色器 + VBO 时出现问题
您好我正在尝试将以下函数转换为基于 VBO 的函数以用于学习目的,它在屏幕上显示静态纹理。我在 iPhone 上使用带有着色器的 OpenGL ES 2.0(在这种情况下应该与常规 OpenGL 几乎相同),这就是我的工作:
我尝试这样做以转换为 VBO,但是我没有看到此版本在屏幕上显示任何内容:
在这两种情况下,我都使用这个简单的顶点着色器
gl_Position 等于 mvp * vec4 的乘积,因为我正在使用该 mvp 在 2D 中模拟 glOrthof
还有这个片段着色器
我真的需要帮助,也许我的着色器在第二种情况下是错误的?
提前致谢。
c++ - 使用 VBO 和 CPU 使用率非常高
我真的不知道该怎么办了。我已经让我的应用程序使用 VBO,而我的 cpu 使用率仍然进入 70 年代和 80 年代。我的渲染过程是这样的:
如果形状没有被细分,则设置相机变换,对其进行细分。如果它有 VBO,则创建它的 VBO,使用它。
你会注意到我也有显示列表,如果不支持 VBO,我可能会使用这些。我去找了一个 OpenGL 演示,它可以在我的 PC 上以 60fps 的速度渲染一个 32000 多边形网格,并使用 4% 的 cpu。我正在使用 vbos 以 60fps 的速度渲染大约 10,000 个多边形,并且使用 70-80%。
这是我的渲染过程:
为什么我会得到如此高的 CPU 使用率?
c++ - 如何将多个纹理应用于立方体的 VBO?
我是 VBO 的新手,并且阅读了一些关于创建和使用 VBO 的文章。我正在开发一个要创建十几个旋转立方体的应用程序。我已连接到将文本消息推送到我的应用程序的服务器。当我收到 6 条短信时,我使用 Pango 和 Cairo 呈现这些短信。然后我想从这 6 条渲染消息中创建纹理并将它们应用到新的 Cube。
虽然我通常只使用 2D 纹理并将它们应用于 GL_QUAD,但我不确定如何将 6 个纹理应用于使用 VBO 创建的立方体?
我找到了一个关于如何使用 VBO 创建多维数据集的示例。这些创建如下:
VBO
使用 VBO 的 Cube 类
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 的理解出错的地方,将不胜感激。