各项异性定义
百度:各向异性、各向异性材料。
主要是用于渲染:头发、拉丝金属……
各项异性渲染核心
各项异性公式 :主要影响 “高光”的 数值,不影响漫反射的数值。
基础公式参考
漫反射公式:
C
(
D
i
f
f
u
s
e
)
=
C
(
L
i
g
h
t
)
∗
C
(
M
a
t
e
r
i
a
l
)
∗
C
o
s
(
L
⃗
,
N
⃗
)
C(Diffuse) = C(Light)*C(Material)*Cos(\vec{L} ,\vec{N} )
C(Diffuse)=C(Light)∗C(Material)∗Cos(L,N)
漫反射的颜色 = 光颜色* 材质颜色(固有色)*光向量和法向量的余弦值。
普通高光公式:
f
l
o
a
t
(
S
p
e
c
u
l
a
r
)
=
s
a
t
u
r
a
t
e
(
C
o
s
(
R
⃗
,
V
⃗
)
)
k
float(Specular) = saturate(Cos(\vec{R},\vec{V} ))^k
float(Specular)=saturate(Cos(R,V))k
C
(
S
p
e
c
u
l
a
r
)
=
C
(
L
i
g
h
t
)
∗
f
l
o
a
t
(
S
p
e
c
u
l
a
r
)
C(Specular) = C(Light)* float(Specular)
C(Specular)=C(Light)∗float(Specular)
高光倍数 = 光反射向量 和 视向量的余弦值 (限定在>0) 再 k 次方。 k 为高光系数。
各向异性高光公式:
d
l
=
T
⃗
⋅
L
⃗
dl = \vec{T}·\vec{L}
dl=T⋅L
d
e
=
T
⃗
⋅
V
⃗
de = \vec{T}·\vec{V}
de=T⋅V
C
(
S
p
e
c
u
l
a
r
)
=
C
(
L
i
g
h
t
)
∗
C
(
M
a
t
e
r
i
a
l
)
∗
(
d
l
∗
d
e
+
1
−
d
l
∗
d
l
∗
1
−
d
e
∗
d
e
)
k
C(Specular) = C(Light)*C(Material)*(dl*de+\sqrt{1-dl*dl} *\sqrt{1-de*de} ) ^k
C(Specular)=C(Light)∗C(Material)∗(dl∗de+1−dl∗dl∗1−de∗de)k
C
(
S
p
e
c
u
l
a
r
)
=
C
(
L
i
g
h
t
)
∗
(
d
l
∗
d
e
+
1
−
d
l
∗
d
l
∗
1
−
d
e
∗
d
e
)
k
C(Specular) = C(Light)*(dl*de+\sqrt{1-dl*dl} *\sqrt{1-de*de} ) ^k
C(Specular)=C(Light)∗(dl∗de+1−dl∗dl∗1−de∗de)k
第二个公式 才符合我的理解。
T 向量代表 切线向量。L、V 是光、视向量。
注意:dl、de 要映射到(0,1)
代码实现,显示结果:
可以看见,各向异性 效果是出来了,但是并不是我们想要的那种。