半矢量公式为(Hv)=(Lv+Vv)/| Lv+Vv |,其中Lv为光矢量,Vv为视矢量。
我在Python代码中做得对吗?
Vvx = 0-xi # view vector (calculating it from surface points)
Vvy = 0-yi
Vvz = 0-zi
Vv = math.sqrt((Vvx * Vvx) + (Vvy * Vvy) + (Vvz * Vvz)) # normalizing
Vvx = Vvx / Vv
Vvy = Vvy / Vv
Vvz = Vvz / Vv
Lv = (1,1,1) # light vector
Hn = math.sqrt(((1 + Vvx) * (1 + Vvx)) + ((1 + Vvy) * (1 + Vvy)) +
((1 + Vvz) * (1 + Vvz)))
Hv = ((1 + Vvx) / Hn, (1 + Vvy) / Hn, (1 + Vvz) / Hn) # half-way vector
这个名字有误。你所写的是两个向量的简单相加,结果是一个标准化的单位向量。
我会这样做:
相关问题 更多 >
编程相关推荐