anisotropyT
anisotropyT
在 TSL 着色器中创建一个名为 `AnisotropyT` 的三维向量(vec3)参数,用于提供切线(Tangent)向量。它与 `anisotropyB`(副切线)协同工作,共同定义各向异性效果的精确朝向。
核心优势
补全了精确各向异性光照所需的 TBN 坐标系,实现了完全独立于模型数据的、程序化的效果方向控制,这对于动态或程序化表面至关重要。
常见用途
程序化定义表面朝向,如在球体上创建纬线方向的光泽。
修正或重定向模型切线,例如通过交换 T 和 B 向量。
创建动态旋转的效果,如一个旋转的拉丝金属刻度盘。
为碳纤维等多层各向异性材质中的某一层定义方向。
如何调整
在 JavaScript 中使用一个 `THREE.Vector3` 来修改 `material.anisotropyT` 的值。为获得物理正确的结果,该向量必须与表面法线和 `anisotropyB` 向量保持垂直。同时调整 `anisotropyT` 和 `anisotropyB` 可以实现平滑旋转高光方向等效果。
代码示例
1// 为实现旋转动画,需同时更新 T 和 B 向量以保持正交
2const angle = time;
3myMaterial.anisotropyT.set( Math.cos( angle ), 0, Math.sin( angle ) );
4myMaterial.anisotropyB.set( -Math.sin( angle ), 0, Math.cos( angle ) );