Shader Molehill
-
12-11-2019 - |
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
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