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

vertex-buffer - 多少顶点缓冲区太多了?

较新的 API,如 D3D11 强制使用顶点缓冲区。

您可以使用静态(内容不变)或动态顶点缓冲区(内容可以由 CPU 更新和更改)

我的问题是,有多少顶点缓冲区太多了?你怎么知道你正在接近极限?每个模型都应该有自己的顶点缓冲区吗?您是否应该只有诸如 8 个顶点缓冲区之类的东西并在所有模型之间共享它们,并根据需要进行更新?

0 投票
2 回答
1662 浏览

directx - 在 IASetVertexBuffers() 上播放错误期间先前成功的 PIX 调用失败

我正在尝试在我编写了一段时间的 SlimDX DirectX11 游戏中调试着色器。代码运行良好并且执行顺利(尽管似乎忽略了我的纹理),当我运行实验以捕获 PIX 中的单个帧时,它执行得很好,但是如果我尝试访问 PIX 中的渲染或网格选项卡以获取我捕获的框架我收到以下错误:

EID 是在我捕获的帧之前发生的(我的帧从 EID 108 开始),所以我看不到它失败的地方。

我决定运行完整的帧流,看看是否会显示错误。这次我得到了一些有用的东西。

以及导致它的事件日志:

输出日志中也没有任何内容。有没有人遇到过这个?如果是这样,您是如何解决的?

0 投票
2 回答
489 浏览

c - 无法在 OpenGL 中显示 VBO

我在 OpenGL 中有一个 VBO 和一个 IBO,但无法正确绘制它们。你能告诉我我在框架显示功能中忘记了什么吗?- struct Point3D 是一个在 (x,y,z) 内有 3 个浮点数的结构。- nbVertex 是 glVertex 数组中的顶点数量。- nbVBOInd 是 VBOInd 数组中的索引数量。

谢谢 !

0 投票
1 回答
2561 浏览

opengl - openGL glUnmapBuffer() 返回未知错误代码 1280

我正在编写一些概念验证代码。我想证明我可以在创建缓冲区后将数据写入缓冲区对象。但是,当我在写入缓冲区后尝试取消映射时,我得到一个 GLenum 错误代码 1280。我完全受阻。

我可以用颜色数据初始化缓冲区并成功渲染它。问题是我之后无法修改缓冲区中的数据。代码如下。它显示了我如何将新数据写入缓冲区,然后我如何尝试将其读回。错误代码显示在 glGetError() 调用之后的注释中。变量“cbo”是颜色缓冲区:

这是我创建缓冲区对象的代码:

0 投票
1 回答
5482 浏览

c - 在 OpenGL ES 1.1 与 ES 2.0 中使用顶点缓冲区对象进行绘图

我是openGL的新手。我使用苹果文档作为我的主要参考 http://developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/TechniquesforWorkingwithVertexData/TechniquesforWorkingwithVertexData.html#//apple_ref/doc/uid/TP40008793-CH107-SW6

我的问题是我使用的是 openGL ES 1.1而不是2 ,因此无法识别清单 9-3 中使用的函数,例如glVertexAttribPointerglEnableVertexAttribArray ... :)

我试图进行本文档中描述的优化:将索引和顶点作为一个结构保存,其中包含所有数据:位置、颜色(清单 9-1)

并使用清单 9-2、9-3 中的 VBO

正如我所提到的,openGL ES 1.1 中不存在在那里使用的一些功能。我想知道是否有办法在 ES 1.1 中使用其他代码来做同样的事情?

谢谢,亚历克斯


根据基督徒回答编辑,尝试使用glVertexPointer、glColorPointer。这是代码,它打印立方体但没有颜色...... :(。任何人,是否可以使用 ES 1.1 在这种方式中使用 VBO

立方体数据:

功能

0 投票
2 回答
793 浏览

opengl - 为片段着色器存储每个对象的数据

我有一个片段着色器,它使用一些基于每个对象设置的制服。有没有办法以某种方式将这些制服存储在显卡上?我听说过(但找不到关于)顶点缓冲区对象的教程——是否有将信息存储在其中的技巧,这样我每次绘制新对象时都不需要重新设置变量?

每个对象都有很少的顶点,但它们是完全静态的。

0 投票
2 回答
938 浏览

xna - 初学者关于 VertexBuffers 的问题

我有生以来第一次看到 XNA,我对我读到的例子感到困惑。它们包含一个我不明白的重复:

我不明白为什么在绘图方法中同时使用 VertexBuffer 和 VertexPositionTexture。保留 VertexBuffer 还不够吗?

如果我删除对 GraphicsDevice.SetVertexBuffer 的调用并仅依赖 GraphicsDevice.DrawUserPrimitives - 一切看起来都一样!那么:当我只使用 VertexPositionTexture[] 就可以相处时,拥有 VertexBuffer 有什么意义呢?:-)

(我敢肯定这是一个重点——请帮我看看!!!:)

问题解决了:蹩脚的 XNA 书!谢谢@dowhilefor

0 投票
4 回答
3850 浏览

opengl - 使用 SDL 的顶点缓冲区对象

使用SDL 1.2时,我需要包括什么才能使用 OpenGL顶点缓冲区对象(VBO)?

目前,我只包括SDL.h, SDL_opengl.h, SDL_image.h

并得到错误:

glGenBuffersARB, glBindBufferARB, glBufferDataARB not declared in this scope

0 投票
1 回答
3535 浏览

shader - GLES2 是否需要 glBindAttribLocation()?

这可能是一个菜鸟问题。据我了解,glBindAttribLocation(..., AAA, ...) 将程序内的属性绑定到 AAA 的位置 ID,只要 AAA 是唯一的。如果我有以下代码:

这会将我的两个变量绑定到位置 ID 0 和 1。然后我会调用:

至此,我了解到 0 和 1 的 ID 作为第一个参数传递给 glVertexAttribPointer()。

假设如果我通过 glGetAttribLocation() 调用获得属性的位置 ID(如上)是否安全,这样返回的 ID 是 5 和 6 而不是 0 和 1,我可以将 5 和 6 传递给 glVertexAttribPointer( ) 和 glEnableVertexAttribArray() 而不是 0 和 1??

0 投票
1 回答
2105 浏览

opengl - OpenGL顶点缓冲区未绘制(LWJGL)

我一直在尝试实现一种更好的绘图方式,并尝试使用顶点缓冲区。现在,我一直在关注LWJGL Wiki [Using Vertex Buffer Objects (VBO)]中的教程,但它对我不起作用,它根本不绘制(据我所知)。如果我改为绘制glVertex3d(),一切正常。

这是它的样子:

而子类,实际上将内容填写在:

正如我所说,这段代码没有为我绘制任何东西(我可以看到)。我确定我在正确的位置调用了正确的代码,它应该绘制一个简单的彩色立方体。我很确定我一定遗漏了一些简单的东西,但我对 Vertex Buffer 对象没有任何经验。