objectViewPosition
objectViewPosition
提供物体原点在视图空间(相机空间)中的三维坐标。其Z分量直接对应物体的深度。
核心优势
极大地简化了与深度和相机相关的计算(如雾效、景深),无需手动进行矩阵乘法,并能直接获取物体在相机视野中的位置。
常见用途
根据深度(Z分量)或高度(Y分量)创建自定义雾效。
实现基于深度的对象剔除或细节层次(LOD)切换。
根据物体在屏幕上的位置(XY分量)创建暗角或高亮效果。
如何调整
通过在JavaScript中移动相机或其目标`Object3D`来改变输出值。也可设置其`.object3d`属性来跟踪特定对象相对于相机的位置。
代码示例
1// 计算物体中心在屏幕上离中心点的距离
2const distFromCenter = objectViewPosition().xy.length();
3
4// 创建一个衰减因子,使离中心越远的物体越暗
5const vignetteFactor = smoothstep( 5.0, 1.0, distFromCenter );
6material.colorNode = baseColor.mul( vignetteFactor );