modelViewMatrix
modelViewMatrix
提供一个4x4矩阵,用于将顶点从模型空间(局部空间)变换到视图空间(摄像机空间)。
核心优势
它提供了一个在CPU端预先计算好的高效变换矩阵(视图矩阵 * 模型矩阵),极大地简化了在视图空间中进行光照、反射和其它依赖于观察者效果的计算,且无需手动管理uniform。
常见用途
在经典光照模型(如Blinn-Phong)中计算高光所需的核心输入——视图方向。
为环境贴图反射和折射计算提供准确的几何关系。
创建广告牌效果(Billboarding),使粒子或平面始终面向摄像机。
如何调整
该节点的矩阵值在着色器中是只读的。它的值完全由场景中物体和摄像机的变换(位置、旋转、缩放)共同决定。要改变此矩阵,请在JavaScript代码中移动物体或摄像机。
代码示例
1// 将顶点的本地坐标(model space)通过 modelViewMatrix 变换到视图空间(view space)
2const positionView = modelViewMatrix.mul( positionLocal );
3
4// 将视图空间坐标的 xyz 值映射到 RGB 颜色以进行可视化
5material.colorNode = positionView.xyz.normalize().add( 1 ).mul( 0.5 );