objectWorldMatrix
objectWorldMatrix
提供物体的4x4世界矩阵,用于将点和向量从其局部空间变换到世界空间。
核心优势
它为所有局部到世界的空间变换提供了基础矩阵,能够实现如SDF光线步进或贴花投影等高级自定义效果,并允许跟踪场景中任意特定对象的变换。
常见用途
手动将自定义的局部空间点(如虚拟挂载点)变换到世界空间。
为SDF光线步进或贴花投影中所需的逆变换提供基础。
通过允许一个物体的着色器使用另一个物体的世界矩阵,实现跨对象的空间计算。
如何调整
通过在JavaScript中改变其目标`Object3D`的变换属性(`.position`, `.rotation`, `.scale`)来调整。也可设置其`.object3d`属性来跟踪一个不同对象的矩阵。
代码示例
1// 在物体的局部空间中定义一个自定义点
2const localTopCenter = vec4( 0, 0.5, 0, 1 );
3
4// 手动将该局部点变换到世界空间
5const worldTopCenterPos = objectWorldMatrix().mul( localTopCenter );
6
7// 使用变换后的世界坐标来驱动效果
8material.colorNode = vec3( worldTopCenterPos.y.smoothstep( -2, 2 ) );