视差贴图,不同于法线贴图的是,会根据视角调整纹理映射的偏移,从而产生遮挡效果,
但在多边形的边缘仍然是平的。
(这个需要用浮雕映射来解决,利用gs阶段,输出更多的顶点,从而产生新的多边形,
需要硬件能支持相应的渲染管线,题外话,此处略过不表,
笔者认为如果边缘一般距离视点较远的话,一般情况下影响的效果有限)
首先要有一个高度图
根据视角,以观察到的点为终点,以纹理的最大高度(1*height_scale),根据视线向量,倒退到起点
可以设定一个step(可配置,step越小,采样次数越多,准确率越高,但帧率也会下降)
每隔一个step,采样出当前纹理的高度值tex_h,与当前视点的高度view_h比较,
如果view_h > tex_h 查找继续.否则停止.
为了更精细查找,nvidia还会在找到的step区间更进一步细分,但过程同上述一样,不表.
笔者实现的效果

视差贴图 parallax map
原文:http://blog.csdn.net/lsccsl/article/details/45687893