gl_ModelViewMatrixInverseTranspose in threejs

时间:2014-11-13 13:07:58

标签: matrix three.js webgl shader

在我尝试编写自己的自定义着色器(我正在使用THREE.ShaderMaterial)时,我需要设置其WebGL的内置gl_ModelViewMatrixInverseTranspose制服(如http://mew.cx/glsl_quickref.pdf所示)。我注意到一些制服已经自动传递到着色器,例如gl_ModelViewMatrixgl_ProjectionMatrix已分别由threejs'modelViewMatrixprojectionMatrix计算。另一方面,gl_ModelViewProjectionMatrix似乎缺失了,但我注意到一些例子可以很容易地在着色器中计算为projectionMatrix * modelViewMatrix。所以我的问题是:我是从gl_ModelViewMatrixInverseTranspose开始在我的着色器中手动计算modelViewMatrix(如果是的话,怎么做?)或者是否存在unform(可能在我的THREE.ShaderMaterial定义中合并与THREE.UniformsUtils.merge)已经处理它?欢呼声。

1 个答案:

答案 0 :(得分:1)

在Three.js着色器中,modelViewMatrix的逆转置称为normalMatrix

它会自动传递到着色器中,因此您无需进行任何工作即可获得它。

// = inverse transpose of modelViewMatrix
uniform mat3 normalMatrix;

参考here是内置的制服和属性Three.js。