vertex-buffer相关内容

OpenGL中绑定点的目的?

我不明白 OpenGL 中绑定点(例如 GL_ARRAY_BUFFER)的目的是什么.据我了解, glGenBuffers() 创建了一种指向位于 GPU 内存中某处的顶点缓冲区对象的指针. 所以: glGenBuffers(1, &bufferID) 意味着我现在有一个句柄,bufferID,指向显卡上的 1 个顶点对象.现在我知道下一步是将 bufferID 绑定到绑定点 glBi ..
发布时间:2022-01-09 09:40:42 C/C++开发

如何将模型矩阵包含到 VBO?

我想发送一个缓冲区列表(到 GPU/顶点着色器),其中包含有关顶点位置、世界位置、颜色、比例和旋转的信息. 如果我的每个 3D 对象在矩阵中都有与变换相关的信息,我如何通过 VBO 将这个矩阵数组(除了其他顶点数据)传递给 GPU? 更新如有错别字请见谅: //绑定 &设置顶点.gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);gl.verte ..
发布时间:2022-01-09 09:13:22 其他开发

如何将模型矩阵包含到 VBO 中?

我想发送一个缓冲区列表(到 GPU/顶点着色器),其中包含有关顶点位置、世界位置、颜色、比例和旋转的信息. 如果我的每个 3D 对象在矩阵中都有与变换相关的信息,我如何通过 VBO(s)将这个矩阵数组(除了其他顶点数据)传递给 GPU? 已更新请原谅任何错别字: //绑定 &设置顶点.gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);gl.ve ..
发布时间:2021-12-19 18:38:35 其他开发

什么时候 VBO 比“简单"更快?OpenGL 基元 (glBegin())?

在听说顶点缓冲对象 (VBO) 多年之后,我终于决定尝试使用它们(我的东西通常对性能不是很关键,显然......) 我将在下面描述我的实验,但长话短说,我发现“简单"直接模式(glBegin()/glEnd())、顶点数组(CPU 端)和 VBO(GPU 端)渲染模式.我试图理解为什么会这样,以及在什么条件下我可以期望看到 VBO 显着超过其原始(双关语)祖先. 实验详情 在实验 ..
发布时间:2021-12-19 18:19:54 其他开发

使用 VAO 时,VBO 中的交错是否会提高性能

当您使用交错 VBO 而不是使用多个 VBO 时,通常会加快速度.这在使用 VAO 时也有效吗? 因为有一个用于位置的 VBO 和一个用于法线等的 VBO 更方便.您可以在多个 VAO 中使用一个 VBO. 解决方案 VAOs 为了共享更大的数据集,一个包含单个顶点 (attrib) 数组的专用缓冲区肯定是一种可行的方法,而人们仍然可以在另一个缓冲区中交错特定数组并使用 VAO ..
发布时间:2021-12-19 18:10:40 其他开发

如何将 int 转换为 const GLvoid*?

在我的跨平台 OpenGL 应用程序中,我想使用顶点缓冲区对象进行绘制.但是我在调​​用 glDrawRangeElements 时遇到了问题. glDrawRangeElements(GL_TRIANGLES, start, start + count, count,GL_UNSIGNED_INT, static_cast(start * sizeof(unsigned i ..
发布时间:2021-12-19 17:54:58 其他开发

非交错顶点缓冲区 DirectX11

如果我的顶点位置是共享的,但我的法线和 UV 不是(以保留硬边等),是否可以在 DirectX11 中使用非交错缓冲区来解决此内存表示,以便我可以使用索引用它缓冲吗?或者我应该坚持在交错缓冲区中使用重复的顶点位置? 交错和非交错顶点缓冲区之间是否存在任何性能问题?谢谢! 解决方案 如何 有几种方法.我将描述一个最简单的. 只需创建单独的顶点缓冲区: ID3D11Buff ..
发布时间:2021-11-25 01:07:16 C/C++开发

pyopengl - 动态更新顶点缓冲区对象中的值

我想在 PyOpenGL 中创建具有可拖动顶点的多边形.仔细阅读后,VBO 似乎是实现这一目标的明智方法. 以前从未使用过 VBO,我无法弄清楚如何动态更新它们 - 理想情况下,我只想修改 numpy 顶点数组的元素,然后只传播元素这改变了 GPU.我曾假设 OpenGL.arrays.vbo.VBO 包装器使用它的 copy_data() 方法自动执行此操作,但似乎不是. 这是一个愚 ..
发布时间:2021-06-12 20:06:17 Python

OpenGL 顶点缓冲区混淆

有人愿意解释一下 VertexBuffer、VertexArray、VertexBufferObject 和 VertexArrayObject?我什至不确定这些是否都是不同事物的术语,但我已经看到它们都出现在 OpenGL 规范中. 我知道 VertexBuffer 只包含顶点而不包含其他任何东西,一旦绑定,一旦我设置了顶点指针,我就可以使用 DrawArrays 来绘制它.我已经这样做过 ..
发布时间:2021-06-12 20:04:39 其他开发

Direct3D多个顶点缓冲区,非交织元素

我正在尝试创建2个顶点缓冲区,一个仅存储位置,另一个仅存储颜色.这只是Frank Luna的书中的一个练习,用来熟悉顶点描述,布局和缓冲区选项.问题是我感觉我已经进行了所有相关更改,尽管我要显示几何图形,但是颜色缓冲区无法正常工作.为了完成本练习,我使用XMFLOAT3,而不是使用示例代码(该示例代码中每个顶点存储位置和颜色)使用本书的Vertex顶点[] = {{......,{...},... ..
发布时间:2020-07-13 21:02:10 C/C++开发

OpenGL ES 1.1顶点缓冲区对象不起作用

我正在使用OpenGL ES 1.1开发iPhone游戏,并且需要使用顶点缓冲对象才能渲染500多个粒子而不会降低性能. 我的游戏能够使用非VBO方法成功绘制,但是现在我尝试合并VBO,因此不再绘制任何图形. 请帮助我确定我在做什么错,并提供正确的示例. 我有一个名为 TexturedQuad 的类,该类包含以下内容: // TexturedQuad.h enum { ..
发布时间:2020-07-13 21:02:05 移动开发

VAO如何保持缓冲区绑定?

我正在努力了解VAO如何准确地处理缓冲区映射. 我正在做什么,可以用下面的伪代码来描述: SetUp: BindVAO BindArrayBuffer glBufferData(GL_ARRAY_BUFFER, ExpectedMaxCount, NULL, GL_DYNAMIC_DRAW);//Allocate storage glEnableVertexAttribArr ..
发布时间:2020-07-13 21:00:54 其他开发

OpenGL GL_POLYGON无法正常运行

我有一个与OpenGL有关的问题.每当我尝试使用来自顶点缓冲区的四个顶点绘制一个简单的多边形时,都不会发生任何事情.但是,它会以GL_TRIANGLES或GL_TRIANGLE_STRIP模式绘制形状,尽管会变形.我在做错什么吗? 事件代码: 顶点数组: http://i.imgur.com/nEcbw.png GL_POLYGON: http://i.imgur.com/idfFT ..
发布时间:2020-05-28 23:59:52 其他开发

glVertexAttribDivisor和glVertexBindingDivisor有什么区别?

我一直在寻找将属性与任意组的顶点相关联的方法,起初,实例化似乎是实现此目的的唯一方法,但是后来我偶然发现了 但是,使用较新版本的OpenGL可能会设置某个顶点属性的缓冲区偏移增加的速率.实际上,这意味着给定顶点数组的数据在属性的缓冲区偏移量增加之前会被复制到n个顶点.设置此除数的功能是 glVertexBindingDivisor . (重点是我的) 在我看来,答案似乎是在宣称我可以 ..
发布时间:2020-05-20 23:17:50 其他开发