dan*_*ter 8 opengl shader glsl tessellation
所以我一直在编写一个程序,它使用曲面细分着色器和高度图来绘制环境.它以32x32平面开始,当它得到更多细分时,每个方形顶点的高度由高度图确定.
我想要它,以便补丁越接近相机,它得到的细分越多.但是,我发现这会导致补丁之间的差距.如果补丁的镶嵌细分比旁边的补丁更多,则不同的分辨率会导致间隙.
在这里,一张图片胜过千言万语:

如果两个补丁具有相同的分辨率,则没有间隙.我怎样才能解决这个问题?我完全卡住了.
沿边缘的UV坐标需要均匀变化,以使其无缝.当在相同的细分级别完成时,有一些非常可靠的不变性保证.然而,当两个边缘以不同的速率细分时,这种情况很少发生.
从技术上讲,你所拥有的是一个T-Junction.这是因为两个应该共享边缘的表面实际上略微发散.插入新的移位顶点会创建两个基元,这两个基元都不会与属于相邻补丁的一个基元共享边缘.

*如GPU Gems 2中的此图所示