问题标签 [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.
vertex-buffer - 多少顶点缓冲区太多了?
较新的 API,如 D3D11 强制使用顶点缓冲区。
您可以使用静态(内容不变)或动态顶点缓冲区(内容可以由 CPU 更新和更改)。
我的问题是,有多少顶点缓冲区太多了?你怎么知道你正在接近极限?每个模型都应该有自己的顶点缓冲区吗?您是否应该只有诸如 8 个顶点缓冲区之类的东西并在所有模型之间共享它们,并根据需要进行更新?
directx - 在 IASetVertexBuffers() 上播放错误期间先前成功的 PIX 调用失败
我正在尝试在我编写了一段时间的 SlimDX DirectX11 游戏中调试着色器。代码运行良好并且执行顺利(尽管似乎忽略了我的纹理),当我运行实验以捕获 PIX 中的单个帧时,它执行得很好,但是如果我尝试访问 PIX 中的渲染或网格选项卡以获取我捕获的框架我收到以下错误:
EID 是在我捕获的帧之前发生的(我的帧从 EID 108 开始),所以我看不到它失败的地方。
我决定运行完整的帧流,看看是否会显示错误。这次我得到了一些有用的东西。
以及导致它的事件日志:
输出日志中也没有任何内容。有没有人遇到过这个?如果是这样,您是如何解决的?
c - 无法在 OpenGL 中显示 VBO
我在 OpenGL 中有一个 VBO 和一个 IBO,但无法正确绘制它们。你能告诉我我在框架显示功能中忘记了什么吗?- struct Point3D 是一个在 (x,y,z) 内有 3 个浮点数的结构。- nbVertex 是 glVertex 数组中的顶点数量。- nbVBOInd 是 VBOInd 数组中的索引数量。
谢谢 !
opengl - openGL glUnmapBuffer() 返回未知错误代码 1280
我正在编写一些概念验证代码。我想证明我可以在创建缓冲区后将数据写入缓冲区对象。但是,当我在写入缓冲区后尝试取消映射时,我得到一个 GLenum 错误代码 1280。我完全受阻。
我可以用颜色数据初始化缓冲区并成功渲染它。问题是我之后无法修改缓冲区中的数据。代码如下。它显示了我如何将新数据写入缓冲区,然后我如何尝试将其读回。错误代码显示在 glGetError() 调用之后的注释中。变量“cbo”是颜色缓冲区:
这是我创建缓冲区对象的代码:
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 中使用的函数,例如glVertexAttribPointer、glEnableVertexAttribArray ... :)
我试图进行本文档中描述的优化:将索引和顶点作为一个结构保存,其中包含所有数据:位置、颜色(清单 9-1)
并使用清单 9-2、9-3 中的 VBO
正如我所提到的,openGL ES 1.1 中不存在在那里使用的一些功能。我想知道是否有办法在 ES 1.1 中使用其他代码来做同样的事情?
谢谢,亚历克斯
根据基督徒回答编辑,尝试使用glVertexPointer、glColorPointer。这是代码,它打印立方体但没有颜色...... :(。任何人,是否可以使用 ES 1.1 在这种方式中使用 VBO
立方体数据:
功能
opengl - 为片段着色器存储每个对象的数据
我有一个片段着色器,它使用一些基于每个对象设置的制服。有没有办法以某种方式将这些制服存储在显卡上?我听说过(但找不到关于)顶点缓冲区对象的教程——是否有将信息存储在其中的技巧,这样我每次绘制新对象时都不需要重新设置变量?
每个对象都有很少的顶点,但它们是完全静态的。
xna - 初学者关于 VertexBuffers 的问题
我有生以来第一次看到 XNA,我对我读到的例子感到困惑。它们包含一个我不明白的重复:
我不明白为什么在绘图方法中同时使用 VertexBuffer 和 VertexPositionTexture。保留 VertexBuffer 还不够吗?
如果我删除对 GraphicsDevice.SetVertexBuffer 的调用并仅依赖 GraphicsDevice.DrawUserPrimitives - 一切看起来都一样!那么:当我只使用 VertexPositionTexture[] 就可以相处时,拥有 VertexBuffer 有什么意义呢?:-)
(我敢肯定这是一个重点——请帮我看看!!!:)
问题解决了:蹩脚的 XNA 书!谢谢@dowhilefor
opengl - 使用 SDL 的顶点缓冲区对象
使用SDL 1.2时,我需要包括什么才能使用 OpenGL顶点缓冲区对象(VBO)?
目前,我只包括SDL.h, SDL_opengl.h, SDL_image.h
并得到错误:
glGenBuffersARB, glBindBufferARB, glBufferDataARB not declared in this scope
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??
opengl - OpenGL顶点缓冲区未绘制(LWJGL)
我一直在尝试实现一种更好的绘图方式,并尝试使用顶点缓冲区。现在,我一直在关注LWJGL Wiki [Using Vertex Buffer Objects (VBO)]中的教程,但它对我不起作用,它根本不绘制(据我所知)。如果我改为绘制glVertex3d()
,一切正常。
这是它的样子:
而子类,实际上将内容填写在:
正如我所说,这段代码没有为我绘制任何东西(我可以看到)。我确定我在正确的位置调用了正确的代码,它应该绘制一个简单的彩色立方体。我很确定我一定遗漏了一些简单的东西,但我对 Vertex Buffer 对象没有任何经验。