如上图,本来是采样original texture coordinates点的颜色,其实却采样了correcter texture coordinates点的颜色。
而且会随着视线的不同看到凹凸程度变化。
1. 除了颜色贴图和法线贴图外,还要提供高度图。 并在计算时候将高度图限制在【0-1】的取值范围。
2.纹理坐标的偏移计算需要在切线空间中进行。将用到的坐标,视线等转换到切线空间。
3计算距离:视线和height=1,和height=0交点的距离。 这便是下面用的采样的最长的长度,起点是height=1与视点的交点(也是该mesh的坐标点)。 求这段距离
4.求视线和高度图的交点,一般是采取采样固定距离的方法,当找到第一个小于高度图的的采样点就当做交点. 如上图的correcter texture coordinates
5.得到交点的纹理坐标的偏移。 采取改点的颜色。
6.交点和光源连线上采样看看是否有遮挡,这样还可以计算出自阴影。
一篇详细讲解的文章