modelScale
modelScale
提供一个三维向量(vec3),其分量分别代表物体在其局部X、Y、Z轴上的最终缩放系数。
核心优势
自动提供各轴向的缩放信息,无需手动管理uniform变量,从而能轻松校正非均匀缩放导致的纹理或图案失真,或驱动基于形变的动态特效。
常见用途
通过反向缩放UV坐标来校正纹理拉伸,确保图案在任何缩放比例下都保持均匀。
在生成程序化细节(如砖块、鳞片)时归一化计算空间,使其大小不随物体缩放而改变。
根据物体在特定轴上的拉伸程度来驱动动态效果,例如物体越“高”发光越强。
如何调整
该节点的输出值无法通过参数调整,它完全由场景中3D对象的 `.scale` 属性决定。视觉效果是通过在着色器逻辑中如何运用这个 `vec3` 值来控制的,例如用它来除以UV坐标,或将其某个分量用作混合因子。
代码示例
1// 通过反向缩放 UV 坐标来抵消模型拉伸对纹理造成的影响
2const correctedUV = uv().div( modelScale.xy );
3
4// 使用校正后的 UV 进行纹理采样
5const textureColor = texture( myTexture, correctedUV );