transpose
transpose
一个核心的线性代数节点,用于计算输入矩阵的转置(即行和列互换)。它在正确变换法线和高效反转旋转等高级图形学计算中至关重要。
核心优势
通过提供GLSL内置的转置功能,它解决了两个关键问题:1. 确保在非均匀缩放下法线变换的正确性,从而实现物理精确的光照。2. 为纯旋转矩阵提供了一个计算成本极低的反转方法,显著提升了着色器性能。
常见用途
计算逆转置矩阵以正确变换法线向量
作为旋转矩阵的低成本逆矩阵使用
在不同坐标系之间进行基变换
如何调整
此节点是一个纯数学函数,其效果取决于输入的矩阵。输入一个旋转矩阵,输出将是其反向旋转;输入一个切变矩阵,输出将是一个几何效果不同的新切变矩阵。它本身没有可调参数,其作用是改变输入变换的代数属性。
代码示例
1// 高效获取一个纯旋转矩阵(如 viewMatrix)的逆矩阵。
2// 这比计算完整的矩阵求逆要快得多。
3const inverseRotationMatrix = transpose( viewMatrix );