Pregunta

Estoy tratando de entender Molehill y me gustaría múltiples un vértice por dos matrices, digamos:

output = theVertex * scaleMatrix * rotationMatrix

Supongo que mi shader de vértice se vería algo así:

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

y establecería las matrices con

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

pero no funciona.¿Qué estoy haciendo mal?

Soy consciente de que podía múltiples la matriz antes de colocar el sombreador, pero estoy tratando de entender agal.

vítores

¿Fue útil?

Solución

Una matriz de m44 es 4x4 Floats, es Tarra 4 registros A medida que cada registro es de 128bits (4 flotadores) para que tenga que cargar su matriz de rotación en VC4 Registrarse:

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


context3d.setProgramConstantsFromMatrix(Context3DProgramType.VERTEX, 0, scaleMatrix);
context3d.setProgramConstantsFromMatrix(Context3DProgramType.VERTEX, 4, rotationMatrix);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top