Unity Shader Chapter7

Chapter7 基础纹理

7.1 单张纹理

Wrap Mode:

  • Repeat:如果纹理坐标超过1,那么整数部分会被舍弃,用小数部分进行采样。
  • Clamp:如果纹理坐标大于1,那么就会截取到1,若小于0,则截取到0.

Filter Mode:

  • Point:最近邻滤波
  • Bilinear:线性滤波
  • Trilinear:线性滤波,在多级渐远纹理之间进行混合

7.2 凹凸映射

两种方法:

  • 高度映射:使用一张高度纹理模拟表面位移,得到一个修改后的法线值。
  • 法线映射:使用一张法线纹理来存储表面法线。

法线映射

法线方向范围为$[-1, 1]$,像素的分量范围是$[0,1]$,所以映射为:

模型空间和切线空间

模型空间:

  • 实现简单,直观
  • 可以提供平滑的边界(法线在同一坐标系下,可以插值)

切线空间:

  • 自由度高
  • 可进行UV动画
  • 可以重用法线纹理
  • 可压缩(Z总是正方向,仅需存储XY)