纹理

来源:互联网 发布:供应商品质数据库建立 编辑:程序博客网 时间:2024/04/29 03:00

Bump Mapping

  • Bump Mapping的目的是使用一张纹理来修改模型表面的法线,以便为模型提供更多的细节。

  • Bump Mapping不会真正的改变模型的顶点位置,只是让模型看起来”凹凸不平”

  • Bump Mapping 的方法:

    • Height Mapping :使用一张高度图来实现凹凸映射,高度图中存储的是强度值(intensity)–灰度值,它用于表示模型表面局部的海拔高度。 优点:可以通过一张凹凸图中知道模型表面的凹凸情况。缺点:不能直接得到法线,二是需要由像素的灰度值计算得到。
    • Normal Mapping : 使用一张纹理法线(Normal Map)来直接存储表面法线。法线纹理中存储的是模型表面的法线方向。

Normal Map:
* 用纹理中的像素值表示法线时,需要做一个映射。法线方向的分量范围[-1,1],而像素的分量范围为[0,1] 映射公司:

normal = pixel * 2 - 1;

坐标空间的纹理法线

  • 模型空间的法线纹理

  • 切线空间的法线纹理

    • 使用切线空间的优点:
      1. 自由度高,模型空间下的法线纹理记录的是绝对法线信息,仅可用于创建它时的那个模型。切线空间下的法线纹理记录的是相对法线信息,这意味着,即使把该纹理应用到一个完全不同的网格上,也可以得到一个合理的结果。
      2. 可进行UV动画,eg: 移动一个纹理的UV坐标来实现一个凹凸移动的效果。
      3. 可以重用法线纹理。eg:比如一个砖块,我们仅适用一张法线纹理就可以用到所有的六个面上。
      4. 可压缩。切线空间下的法线纹理中的法线Z方向总是正方向,因此我们可以仅存储XY方向,通过叉乘推导出Z方向。
0 0
原创粉丝点击