【发布时间】:2026-01-02 06:15:02
【问题描述】:
在我尝试编写自己的自定义着色器(我使用的是THREE.ShaderMaterial)时,我需要设置其WebGL 的内置gl_ModelViewMatrixInverseTranspose 统一(如http://mew.cx/glsl_quickref.pdf 所示)。我注意到一些制服已经自动传递给着色器,例如gl_ModelViewMatrix 和gl_ProjectionMatrix 已经分别由threejs 的modelViewMatrix 和projectionMatrix 计算。另一方面,gl_ModelViewProjectionMatrix 似乎不见了,但我注意到一些示例,可以在着色器中轻松地将其计算为projectionMatrix * modelViewMatrix。所以我的问题是:我是要在我的着色器中从modelViewMatrix 开始手动计算gl_ModelViewMatrixInverseTranspose(如果是,怎么做?)还是有一个unform(可能在我对THREE.ShaderMaterial 的定义中与THREE.UniformsUtils.merge 合并)已经处理了吗?干杯。
【问题讨论】:
-
WebGL 没有
gl_ModelViewMatrixInverseTranspose或任何其他默认矩阵。这是一个旧的已弃用 OpenGL 的东西。
标签: matrix three.js webgl shader