mx_transform_uv
mx_transform_uv
对输入 UV 进行缩放与平移,等价于:uv_geo * uv_scale + uv_offset。默认使用几何体的主 UV。
核心优势
以一个可链式调用的函数统一处理 UV 变换,支持 float 或 vec2 的缩放与偏移,减少样板代码并保持纹理采样表达清晰。
常见用途
贴图平铺与缩放(Tiling/Zoom)
UV 滚动动画(水流、传送带)
纹理图集定位(Atlas 偏移)
镜像或翻转采样(负缩放)
如何调整
uv_scale 可为 float(等比缩放)或 vec2(各向异性缩放);uv_offset 可为 float 或 vec2,用于平移。负的 uv_scale 会产生镜像。超出 [0,1] 的 UV 需要材质纹理设置为 Repeat/MirroredRepeat 才能正确平铺。将 uv_geo 替换为自定义坐标(如经过扭曲或旋转的 UV)以串联更复杂的坐标流程。
代码示例
1// 将变换后的 UV 用于采样贴图并赋给标准材质颜色
2<meshStandardNodeMaterial
3 colorNode={
4 texture(
5 map,
6 mx_transform_uv( vec2( 3.0, 2.0 ), vec2( 0.1, 0.0 ) ) // 缩放+平移
7 )
8 }
9/>
10