各项异性定义

百度:各向异性、各向异性材料。
主要是用于渲染:头发、拉丝金属……

各项异性渲染核心

各项异性公式 :主要影响 “高光”的 数值,不影响漫反射的数值。

基础公式参考

漫反射公式:
C(Diffuse)=C(Light)C(Material)Cos(L,N) C(Diffuse) = C(Light)*C(Material)*Cos(\vec{L} ,\vec{N} )
漫反射的颜色 = 光颜色* 材质颜色(固有色)*光向量和法向量的余弦值。
普通高光公式:

float(Specular)=saturate(Cos(R,V))k float(Specular) = saturate(Cos(\vec{R},\vec{V} ))^k
C(Specular)=C(Light)float(Specular) C(Specular) = C(Light)* float(Specular)
高光倍数 = 光反射向量 和 视向量的余弦值 (限定在>0) 再 k 次方。 k 为高光系数。

各向异性高光公式:

dl=TLdl = \vec{T}·\vec{L}
de=TVde = \vec{T}·\vec{V}
C(Specular)=C(Light)C(Material)(dlde+1dldl1dede)k C(Specular) = C(Light)*C(Material)*(dl*de+\sqrt{1-dl*dl} *\sqrt{1-de*de} ) ^k
C(Specular)=C(Light)(dlde+1dldl1dede)k C(Specular) = C(Light)*(dl*de+\sqrt{1-dl*dl} *\sqrt{1-de*de} ) ^k

第二个公式 才符合我的理解。
T 向量代表 切线向量。L、V 是光、视向量。
注意:dl、de 要映射到(0,1)

代码实现,显示结果:
各向异性渲染
可以看见,各向异性 效果是出来了,但是并不是我们想要的那种。

相关文章: