RealTime Rendering01-TBN矩阵和TBN空间 发表于 2025-03-15 更新于 2026-03-15 分类于 Computer Graphic , Math 阅读次数: 本文字数: 133 阅读时长 ≈ 1 分钟 TBN矩阵和TBN空间法线贴图采样得到的法线往往在切线空间,也就是顶点的“局部空间”,需要乘以TBN矩阵将法线从切线空间转换到世界空间下才能进行光照计算,而顶点中一般仅提供TBN中的T和N,Bitangent需要经过施密特正交化计算得出: 12345678void main(){ vec3 T = normalize(vec3(model * vec4(aTangent, 0.0))); vec3 N = normalize(vec3(model * vec4(aNormal, 0.0))); T = normalize(T - dot(T, N) * N); vec3 B = cross(N, T); mat3 TBN = mat3(T, B, N);}