问题标签 [vertex-buffer]

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 回答
2626 浏览

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

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

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

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

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

还有这个片段着色器

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

提前致谢。

0 投票
2 回答
2690 浏览

c# - 如何跨多个网格计算边界框/球体(C#)

我从不同网格变量中的 .x 文件加载多个网格。现在我想计算我已加载(以及正在显示的)所有网格的边界球体,请指导我如何实现这一点。可以将 VertexBuffers 添加到一个变量中并使用该变量计算 boundingSphere 吗?(如果是的话,他们是如何将 vertexBuffers 添加在一起的)否则你会建议什么替代方案!?谢谢

0 投票
1 回答
4452 浏览

c# - XNA - 使用动态顶点缓冲区和只有四 (4) 个顶点

只是一个关于绘制四边形的快速问题。我目前正在使用:

这可以完美地绘制我的四边形,但我可以让它工作的唯一方法是为我的四边形使用六 (6) 个顶点(将它们绘制为两个三角形)。我只是想知道是否可以为 GPU 提供四 (4) 个顶点并仍然保留我的动态顶点缓冲区。

我知道我可以用 DrawUserIndexedPrimitives() 做到这一点,但我想要我的缓冲区!;)

编辑:我需要吗,如果需要,我在哪里告诉我的 GPU 我每两个三角形给它四个顶点?我目前将四边形存储为顶点缓冲区中的 nQuads * 6 个顶点,而我的 GPU 将每三个顶点用作一个三角形。因此,只需切换到四个顶点就意味着:

这不是一件好事,因为第二个三角形使用第一个四边形的一个顶点,第三个使用第二个四边形的两个顶点,依此类推。

编辑 2:对不起,我实际上使用的是动态顶点缓冲区。

发布一些关于我如何用六个顶点制作四边形的代码:

现在,还有更多内容,因为我使用了循环队列和其他一些东西,但这足以理解。

0 投票
2 回答
2627 浏览

opengl - 更好地创建新的 VBO 还是只交换数据?(OpenGL)

因此,在 OpenGL 渲染应用程序中,通常是在应用程序的整个生命周期中创建和维护一个顶点缓冲区并用 glBufferData 交换每一帧的数据更好,还是只删除 VBO 并在每一帧重新创建它更好?

直觉告诉我最好交换数据,但是我见过的一些示例程序可以交换数据,所以我有点困惑。

我阅读了 Nvidia 关于 VBO 的白皮书,但由于我是 opengl 的新手,所以它没有多大意义。

提前感谢您的建议和建议

0 投票
1 回答
1477 浏览

opengl - 如何使用直接状态访问将元素缓冲区数组“绑定”到顶点数组对象?

对于其他缓冲区,有如下功能:

但我找不到将元素缓冲区绑定到 vao 的方法。还是我在那里遗漏了什么?

PS:添加 vertex-array-object 和 direct-state-access 标签有意义吗?

0 投票
1 回答
894 浏览

android - 在 Open GL 顶点数组中旋转单个多边形?

我正在使用 OpenGL ES 开发一款适用于 Android 的游戏,但遇到了性能问题。

我正在尝试做的事情:我在屏幕上有一堆对象,它们都共享相同的网格,但都有单独的旋转和平移。你可以把它比作小行星,你有一堆小行星在屏幕上四处移动。

实际问题:我的性能受到了影响,因为我单独旋转和平移每个对象,并且与顶点数量(每个对象数十个)相比,发送顶点数组的开销太大。

我能做些什么?我想到的一种解决方案是自己更新软件中的顶点,然后再将它们放入顶点缓冲区。这可能会为我节省一些开销,但这似乎违反直觉。

请分享您可能有的任何想法或建议!谢谢!

0 投票
1 回答
4402 浏览

c++ - 在 C++ OpenGL 中使用顶点缓冲区对象

我正在开发一款基于 3d 瓷砖的策略游戏,并且已经阅读到实施 VBO 将显着提高游戏的帧速率并减少 CPU 使用率(听起来不错吧?)。但是,在我看过的教程中,我不太了解如何实现它。有没有人有这样做的经验,可以给我指出一个可靠的来源或提供实际有效的示例代码?谢谢!

0 投票
2 回答
2461 浏览

opengl - 纹理 VBO(顶点缓冲区对象)

我目前正在开发一种程序行星生成工具,该工具通过获取一个立方体,将其映射到一个球体,然后将高度图应用于每个面以生成地形。

我为使用以下方法创建的每个面使用 VBO:

我省略了 setIndexBufferObject() 方法,因为它工作正常。

然后我使用这种方法渲染球体:

纹理正在使用免费图像加载,正如您从上面的代码中看到的那样,我只是使用了 freeimage 附带的示例纹理管理器。

为什么绑定纹理不起作用?

0 投票
1 回答
605 浏览

directx-9 - 来自顶点的 VertexBuffer

我需要用顶点创建一个顶点缓冲区。MSDN中的这个教程很棒。

但这适用于 DirectX10+。我正在使用 DirectX9。如何在这里完成同样的事情?

谢谢。

0 投票
3 回答
5316 浏览

opengl - OpenGL 3.x:使用顶点缓冲区对象和 glDrawElements(...) 时的访问冲突

我无法使用顶点缓冲区对象渲染一些几何图形。我打算画一个点平面,所以基本上在我空间的每个离散位置都有一个顶点。但是,我无法渲染该平面,因为每次调用 glDrawElements(...) 时,应用程序都会崩溃并返回访问冲突异常。我猜初始化时一定有一些错误。

这是我到目前为止所拥有的: