坡度与法向量

在空间中,每一个顶点都有一个法向量,来描述该顶点所在的面的朝向,这个法向量有时候也可以用坡度来表示。


坡度与法向量
 如图所示,n为法向量,可以由水平的夹角坡向和Z轴的夹角坡度来表示,其中坡向是0-2π的范围,而坡度是0-π/2的范围。一般我们不是这样描述坡度的,我们使用坡度在x轴上的坡度值和y轴上的坡度值来描述,坡度和破角。

 

坡度与法线的转换:

这个转换在凹凸贴图里面用过,当初实现贴图技术的时候直接使用的是法线贴图,看来老的技术还是有一些东西可以学的到的。

1.求坡度值:

  x_gradient = pixel(x-1, y) - pixel(x+1, y)

  y_gradient = pixel(x, y-1) - pixel(x, y+1)

 坡度值是用高度求的,表示一个顶点的坡度的时候只需要(x,y)即可。

2.根据坡度求法向量:

float normal = normal + Tangent*u_gradient+Binormal*v_gradient;

 这个是在TBN法线空间完成的,所以Tangent和Binormal其实是两个轴。相比法向量而言,在高度图里计算坡度值是很容易的,这也是为啥一般地形图计算的时候给出的是坡度图的原因。

你可能感兴趣的:(坡度与法向量)