Phong和BlinnPhong反射类型光照模型
Phong
Phong模型是基于光照(图中1 Light向量)的方向和用户的视角(图1 View向量)方向进行计算的。通过计算Light的反射向量与用户的视角方向向量的向量积作为光照的强度因子。
计算公式:
代码方法:
1 |
|
BlinnPhong
BlinnPhong可以看作是堆Phong模型的简化版,它是通过视角方向(View)和光照方向(Light)构成的半角向量(Half)来计算光照的。直接使用半角向量而不用计算光照的反射向量的方式更加高效。
计算公式:
代码方法:
1 |
|
挤压效果
这种挤压的效果的原理是将顶点沿发现方向进行投影,用代码表示就是这样:
1 |
|
_Amount 是挤压的因子
还可以通过额外添加一个纹理(或者使用主要纹理的alpha通道)来表示挤压的程度:
1 |
|
从顶点修改器中采样一个纹理,应该使用texDlod而不是tex2D。
抓取功能
原理是结合vertex和fragment着色器以及抓取通行技术,然后对抓取纹理进行采样,在对其UV值做一点修改来制作出一些细微的变形效果。
1 |
|