1. 法线贴图(Normal Mapping)
法线贴图是一种在3D图形渲染中广泛使用的表面细节增强技术。它通过存储每个像素的法线信息来模拟表面的细微凹凸细节,而无需增加实际的几何复杂度。
1.1. 工作原理
-
纹理存储
- 使用RGB通道存储法线向量的XYZ分量
- 通常呈现出偏蓝色的外观(因为默认法线指向Z轴)
- 每个像素都包含表面法线方向信息
-
切线空间
- 法线贴图通常在切线空间(TBN空间)中定义
- 包含切线(Tangent)、副切线(Bitangent)和法线(Normal)
- 便于将法线信息应用到任意曲面
1.2. 优势
-
高效率
- 不增加模型的多边形数量
- 能够呈现出丰富的表面细节
- 性能开销相对较小
-
灵活性
- 可以与其他贴图技术结合使用
- 适用于静态和动态物体
- 便于美术人员制作和修改
1.3. 应用场景
- 游戏角色的皮肤细节
- 建筑物表面的砖块纹理
- 布料的褶皱效果
- 地形的细节增强
1.4. TBN空间
TBN空间(Tangent Space)是法线贴图中的一个关键概念,它由三个相互垂直的向量构成:切线(Tangent)、副切线(Bitangent)和法线(Normal)。
-
T - 切线(Tangent)
- 沿着纹理坐标U方向的向量
- 通常与物体表面相切
- 在顶点着色器中计算
-
B - 副切线(Bitangent)
- 沿着纹理坐标V方向的向量
- 与切线和法线都垂直
- 可以通过叉积计算:B = N × T
-
N - 法线(Normal)
- 垂直于物体表面的向量
- 决定了表面的朝向
- 由模型数据提供
1.5. TBN矩阵的作用
// TBN矩阵的构建
mat3 TBN = mat3(T, B, N);
主要用途:
- 将法线贴图中的法线向量从切线空间转换到世界空间
- 保证法线方向在任意曲面上都正确
- 使法线贴图可以在不同的表面上重复使用
1.6. 优势
- 空间一致性:保证法线方向在任何表面都能正确表现
- 可重用性:同一个法线贴图可以应用到不同的模型上
- 精确性:提供了准确的法线方向计算
1.7. 实现流程
可以在顶点着色器中计算TBN矩阵,并在片段着色器中应用它,也

最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



