Phong Tessellation
《Phong Tessellation》,这篇文章是Siggraph Aisa 2008年的文章,主要解决了在侧影轮廓上的artifact。
首先对文章题目进行解释。Phong是Phong shading,Tessellation是一种操作方式。现在很多工作都交给GPU去运算,但是这里面的一个主要瓶颈是CPU与GPU的数据传输问题。针对这种情况,可以把一个粗糙的模型传到GPU上,然后在投影和扫描转换之前产生额外的顶点和多边形。在以前的GPU中不能添加新的顶点,从8800 GT开始,增加了Geometry shader单元,可以实现顶点的添加。在DX 11欲将发布的特性中,有增加一个Tessellation Unit,从而实现更精细的控制。
先介绍背景,Phong shading和法向映射等Shading技术产生可视平滑(Visual smoothness),但是在侧影轮廓上还是存在逐段线性几何。针对这种情况,有两种处理方式。第一:使用更精细的模型,但是计算量和存储都是很大的开销。第二:在可视平滑上下功夫,使用比Phong shading更好的技术,但是又不能增加太大的计算量。
在以前的工作中,针对第一种方式,有在GPU中产生更平滑的表面,如NURBS [Guthe et al. 2005]或subdivision surfaces [Shiue et al. 2005]。但是它们都需要依赖网格的拓扑结构,在GPU上需要几遍绘制,同时这些都是内存和计算相关的。针对第二种方式,参照Gouraud和Phong的可视平滑概念,利用多边形的局部信息(顶点和法向)来获得这种平滑,而不需要考虑周边多边形的拓扑信息。如在多边形上构建三次Bezier曲面或二次曲面,但是这些都需要显示构造曲面来替代原来的多边形。而本文方法只是在多边形的基础上添加一些操作,避免显示替代,从而更简单和有效。