objectRadius
objectRadius
提供一个浮点数,代表物体在世界空间中的近似半径(基于其包围球)。
核心优势
它允许着色器效果能根据物体尺寸自适应缩放,且无需手动管理uniform变量,极大地简化了创建尺寸感知特效的过程。
常见用途
创建尺寸感知的程序化纹理,确保图案在不同大小的物体上看起来比例一致。
动态调整轮廓线或描边的粗细,使其与物体大小保持视觉和谐。
根据物体尺寸定义粒子发射或顶点置换效果的强度或范围。
如何调整
通过在JavaScript中改变其目标`Object3D`的`.scale`属性或更换其`.geometry`来调整输出值。也可设置其`.object3d`属性来跟踪特定对象的尺寸。
代码示例
1// 将半径范围 [0.5, 5.0] 平滑映射到 [0, 1] 的发光因子
2const glowFactor = smoothstep( 0.5, 5.0, objectRadius() );
3
4// 根据该因子控制自发光强度
5material.emissiveNode = vec3( 1, 1, 0 ).mul( glowFactor );