我正在尝试了解molehill,并希望多个矩阵多个顶点,比如:

output = theVertex * scaleMatrix * rotationMatrix
. 我猜我的顶点着色器看起来像:
"m44 vt0, va0, vc0\n" +
"mul op, vt0, vc1\n";
.

,我会用设置矩阵

context3d.setProgramConstantsFromMatrix(Context3DProgramType.VERTEX, 0, scaleMatrix);
context3d.setProgramConstantsFromMatrix(Context3DProgramType.VERTEX, 1, rotationMatrix);
.

但它不起作用。我做错了什么?

我知道在放置着色器之前,我可以多个矩阵,但我试图了解agal。

cheers

有帮助吗?

解决方案

生成的gentacicetagcode矩阵为4x4 floats,它需要4寄存器,因为每个寄存器是128bits(4浮点),所以必须将旋转矩阵加载到Vc4寄存器中:

"m44 vt0, va0, vc0\n" +
"mul op, vt0, vc4\n";
.


context3d.setProgramConstantsFromMatrix(Context3DProgramType.VERTEX, 0, scaleMatrix);
context3d.setProgramConstantsFromMatrix(Context3DProgramType.VERTEX, 4, rotationMatrix);
.
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top