论文部分内容阅读
随着现代GPU的迅速发展,GPU可编程能力带来了很高的灵活性。Shader Model4.0的GPU中已经可以进行Vertex Shader,Geometry Shader,Pixel Shader三个阶段的GPU编程。Shader是我们自己定义的程序,替代固定渲染管线中的部分流程,实现图形特效和通用计算目的(GPGPU)。因此,过往无法利用GPU加速计算的过程现在可以成为现实。下一代GPU(Shader Model5.0)带来了更丰富的几何处理能力,引入了Hull Shader,Tessellator,Domain Shader,使得一些新的几何和拓扑处理能够在GPU实现,能够真正实现硬件剖分。
本文首先探索一种以顶点为中心基于扇区构造查找表的并行细分方法。该方法以扇区为基本单元,利用三种新的枚举坐标对网格顶点进行编码。初始控制网格按扇区分割后,其顶点被编码到一张纹理上,控制顶点的不规则性分离到扇区的同时扇区之间又具有松耦合联系,使GPU像素管线的并行性从片段网格内扩展到整个网格。另外,可以通过三张查找表来降低实时计算量并且避免了在CPU上预先细分一次。
本文还探索了以面片为中心的通过贝塞尔片进行逼近的并行细分方法。介绍并探讨了Ternary Loop细分曲面的贝塞尔逼近,3-4混合细分曲面的贝塞尔逼近。通过贝塞尔面片来逼近细分曲面的各个面片后,本文进一步探讨了当前GPU下对贝塞尔面片的实例剖分,还讨论了下一代GPU下对贝塞尔面片的硬件剖分,发挥了GPU并行批量处理的特点。
除了探讨细分曲面的表示及快速绘制,三维图元的快速拾取对细分曲面的形变控制和编辑有着重要意义。本文讨论了两种在GPU上实现对细分曲面面片任意位置的拾取方法,第一种方法是几何无关的拾取方法,通过将坐标信息和对象面片指针绘制到一张Render Target型浮点纹理实现拾取。第二种方法是面片几何依赖的,对逆变换到世界空间的拾取射线与逼近后的贝塞尔面片在GPU逐一求交最后通过带有Stream Out的Geometry Shader输出有交点的面片。