TBNViewMatrix
TBNViewMatrix
创建一个变换矩阵,用于将向量从视图空间转换到切线空间,是法线贴图等高级效果的核心。
核心优势
将构建TBN矩阵的复杂线性代数运算(获取、变换、叉乘、组装)封装为单个节点,极大地提升了代码的可读性和标准化,让开发者能专注于效果本身而非底层数学。
常见用途
法线贴图(Normal Mapping)
视差贴图(Parallax Mapping)
各向异性高光(Anisotropic Specular)
程序化表面流动效果
如何调整
该节点的值由模型几何(法线、切线)和相机视角决定,无法直接“调整”。其效果是决定性的:正确使用时,法线贴图能呈现逼真的凹凸光影;若输入错误(如颠倒了副切线的计算顺序),则会导致光照效果反转(凹变凸)。
代码示例
1// 将视图空间的光照向量转换到切线空间,以便与法线贴图交互
2const lightDirectionTS = TBNViewMatrix.mul( lightDirectionView );