问题标签 [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 回答
912 浏览

c# - MonoTouch / OpenGL ES:使用 GL.DrawElements 绘图时出现异常

我尝试使用 Ope 绘制网格 调用 GL.DrawElements 时出现以下异常。

那是绘图代码:

这是初始化的代码:

编辑:格式化问题......和堆栈溢出不希望我提交一些东西。

0 投票
1 回答
1926 浏览

c++ - Direct3D C++ 纹理映射

嘿,任何人都可以帮助我在 Direct3D C++ 中进行纹理映射。我创建了一个基本游戏,并希望对环境进行纹理化。我查看了许多在线教程,但到目前为止还没有运气

我正在为我的绘图代码创建一个自定义顶点:

这就是我绘制正方形的方式:

这是缓冲区:

这是广场:

我只是想看看如何对正方形进行纹理化,以便继续对整个环境进行纹理化?

0 投票
1 回答
354 浏览

java - 我在 JOGL 中编写了一个 CAD 程序,效果很好,直到我放入 glu 二次曲线,然后灯光关闭

我编写了 CAD 软件(Protocase Designer),它运行良好。除了在 ATI 卡上它一直崩溃的地方。理论上,显示列表已被弃用,也许 ATI 卡不完全支持它们,我决定用顶点缓冲区对象替换显示列表。我大部分时间都在工作,但是当我输入以下代码时,由于某种原因,照明变得一团糟。有谁知道为什么?我将代码放在顶点缓冲区对象的渲染之前还是之后都没有关系。

任何想法为什么?这并没有弄乱显示列表版本。我正在渲染的是一个使用 glu 镶嵌器的带有孔的外壳。

谢谢!

0 投票
1 回答
1167 浏览

c++ - 不同 D3DPOOL 实现的 Direct3D VertexBuffer Lock() 和 Unlock() 函数

IDirect3DVertexBuffer9 有这些方法

我不知道这些功能的内部实现。我确实期待下一个。

  1. 'Lock' 方法将 VertexBuffer 的视频内存映射到 ppbData。它获得了更多的性能。

  2. 'Lock' 方法是分配一个系统内存并使 ppbData 指向它。而“解锁”方法就是将该内存复制到真正的视频内存中。这种通过在硬件中放置抽象层的方法消除了差异。

我猜想:在'D3DPOOL_SYSTEMMEM'模式下,它通过方式2实现。在'D3DPOOL_DEFAULT'模式下,它通过方式1实现。

但我不知道如何在每个 D3DPOOL 模式下实现。帮帮我~~

0 投票
2 回答
1013 浏览

objective-c - OpenGL ES 1.1 顶点缓冲区对象不工作

我正在使用 OpenGL ES 1.1 开发 iPhone 游戏,并且需要使用顶点缓冲区对象来渲染 500 多个粒子而不会降低性能。

我的游戏能够使用非 VBO 方法成功绘制,但现在我尝试合并 VBO,不再绘制任何东西。

请帮助我找出我做错了什么并提供一个正确的例子。

我有一个名为TexturedQuad的类,它由以下内容组成:

TexturedQuad.m中,创建了顶点缓冲区:

上述 VBO 创建方法由自定义AtlasLibrary类调用,该类初始化每个 TexturedQuad 实例。

首先,顶点按以下格式排列:

其次,纹理坐标按以下格式排列(翻转以说明 OpenGL ES 倾向于镜像图像):

...接下来,调用 VBO 创建方法(在 AtlasLibrary 中)

现在是肉和土豆。场景对象类。场景对象是游戏中可渲染的对象。它们引用 TexturedQuad 实例并包含有关旋转、平移和缩放的信息。

这是 SceneObject 中的渲染方法:

我有一种强烈的感觉,要么是我的索引数组结构不正确,要么是 glDrawElements(..) 函数调用不正确。

要回答这个问题,请:

  • 确定我做错了什么会导致 OpenGL ES 无法绘制我的场景对象。
  • 提供正确的方法来做我想做的事情(请根据我的框架)
  • 提供任何可能有帮助的建议或链接(可选)

非常感谢!

0 投票
1 回答
188 浏览

flash - 如何使用 VertexBuffer3D 操作分层显示结构中的对象?

为了更好地解释我想要实现的目标,这里有一个简单的例子:

  • 场景 1:在某个 3D 容器对象中,我想添加两个 Cube:一个没有任何变换,一个具有较小的位置、旋转和缩放调整。添加这两个立方体后,我还想变换容器的位置、旋转和比例。

  • 场景 2:在 3D 角色的身体中,它由许多分层的子项(和子子项)组成,每个子项在动画过程中都有各种变换。

所以我的问题是:

如何有效地计算这些单独的 3D 对象转换?甚至可以只用一个来做到这一点VertexBuffer3D吗?还是我需要几个VertexBuffer3D来跟踪每个对象?使用多个VertexBuffer3D似乎可能会达到限制(但我没有阅读足够的Stage3D/Context3D文档来确定)。

0 投票
2 回答
1243 浏览

iphone - 在 OpenGL ES 1.1 中使用顶点缓冲区对象绘图不起作用

我的 OpenGL 代码可以正常工作,但我正在尝试稍微提高其性能(希望在旧设备上提高帧速率)。我正在尝试使用顶点缓冲区对象来做到这一点。

我的代码所做的就是绘制一系列 360 度的 GL_TRIANGLES,它们应用了纹理。我将坐标和纹理坐标交织成一个数据结构。

这是我初始化的相关部分

为了保存到实际的 VBO,我尝试了两种方法(两种方法都具有相同的结果)

然后我绑定缓冲区

最后执行绘图

没有 VBO,绘图工作正常。在我添加上面的 VBO 代码后,绘图不再在正确的位置(偏移几个像素)并且它锁定了我的整个应用程序。有任何想法吗?

0 投票
1 回答
244 浏览

flash - 是否应该为使用的每个 Program3D 创建一个新的 VertexBuffer3D 和 IndexBuffer3D?

如果我有几个Program3D对象(每个对象都有自己的Vertex-ShaderFragment-Shader负责它自己的渲染任务),我是否需要实例化一个新对象VertexBuffer3DIndexBuffer3D以便它们存储仅与使用的顶点数据格式相关的数据他们对应Program3D

例如,如果我打算以不同的顶点数据格式定义四边形,例如:

我是否需要创建一个VertexBuffer3DIndexBuffer3D存储格式 A,另一个存储格式B ,另一个存储格式 C?还是可以在同一个格式中混合各种格式VertexBuffer3D,然后巧妙地(或令人困惑!)使用单一格式IndexBuffer3D来绘制三角形?

0 投票
1 回答
380 浏览

flash - 使用Context3DVertexBufferFormat.BYTES_4时,一个字段的取值范围是多少?

如果我使用字节数组方法填充顶点缓冲区:

然后使用以下格式设置顶点缓冲区属性:

Vertex 属性的字段(在本例中为va0.x、va0.y、va0.z、va0.w )的可能值范围是多少(0 ​​到 255?0.0 到 1.0?等)?写入对象的数据类型是否有所不同ByteArraywriteFloatwriteUnsignedInt)?

0 投票
0 回答
151 浏览

android - OpenGL ES VertexArray 并没有在 android 上正确绘制

我正在使用 OpenGL ES 1 和“BufferPool”开发一个小游戏演示,它本质上只是一个用于存储所有顶点、颜色和 texcoord 数据的直接 ByteBuffer 的精美接口。我有一些让它正确绘制的问题。我一定是错误地设置了opengl状态,但我对OpenGL还很陌生,不知道它是什么。我非常感谢任何帮助:)

代码: http: //pastebin.com/bw3eM0TW

我把它放在 pastebin 上,因为有大量与 BufferPool 和渲染相关的代码。