【发布时间】:2012-04-20 14:39:40
【问题描述】:
在Stage3D / AGAL 中,是否可以通过以下方式将单个 VertexBuffers 指向同一个 va0:
每个
VertexBuffer数据都可以独立更改(假设这在某些情况下表现出色,是吗?)。每个
VertexBuffer关注va0(第一个顶点属性寄存器)的一个字段,因此vertexbuffer1操作va0.x,vertexbuffer2 =va0.y,vertexbuffer3 =va0.z,vertexbuffer4 =va0.w;
由于您可以在将 VertexBuffer 分配给 Context3D 对象时指定“偏移量”和数据格式(例如:FLOAT_1、FLOAT_4),我想这是可能的。
也许我的设置不正确,但是当我尝试这样做时,我无法实现。
每个 VertexBuffer 是否需要占用每个寄存器中的全部 4 个字段?如果是这样,我不确定我是否理解为什么存在 FLOAT_1 -to- FLOAT_3 值! :S
提前致谢!
【问题讨论】:
-
我想我在查看 Axel (axgl.org) 的源代码时找到了解决方案。我稍后会发布一个详细的答案,但现在 - 看起来
VertexBuffers 可以在不同的顶点属性寄存器中重复使用,并且在使用 FLOAT_2 时使用偏移量可以产生一些巧妙的解决方案。看起来不像单独的 VertexBuffers 可以分配给相同的顶点属性而不覆盖以前的。
标签: field allocation vertex-buffer stage3d agal