modelWorldMatrixInverse
modelWorldMatrixInverse
一个 mat4 矩阵,执行 `modelWorldMatrix` 的逆变换,用于将坐标从世界空间转换回物体自身的局部空间。
核心优势
它能实现无缝的世界到局部坐标映射,是实现贴花、世界空间力场等效果的基础。它通过在物体的局部空间中进行计算来简化着色器逻辑。昂贵的矩阵求逆运算由 CPU 自动高效处理,避免了在 GPU 中进行逐顶点的计算。
常见用途
贴花投影:将贴花投影仪的世界空间属性转换到物体的局部空间,以实现正确映射。
局部化的世界空间力场:将力场的世界位置转换到局部空间,以便轻松计算其对顶点的影响。
相对位置测量:计算一个世界空间点(如玩家)相对于当前物体局部坐标系的位置。
如何调整
该节点是只读的,其值由物体在场景中的变换决定。要“调整”它,你需要在 JavaScript 中修改物体的位置、旋转或缩放。例如,使用 `mesh.position.x = 10` 移动物体,会使其逆矩阵包含一个-10的平移,从而改变世界空间坐标到其局部空间的映射方式。
代码示例
1
2// 1. 将一个世界空间的原点 (worldOrigin) 转换到物体的局部空间
3const localSpaceOrigin = modelWorldMatrixInverse.mul( worldOrigin );
4
5// 2. 计算表面顶点(局部空间)到这个转换后原点的距离
6const dist = distance( positionLocal, localSpaceOrigin );
7