论文部分内容阅读
自由变形是一种几何模型编辑和柔性体动画生成的方法。由于其简单、直观、且与模型的表示无关,所以被广泛应用于计算机动画、计算机辅助设计与工程、计算机视觉、科学计算可视化等各个领域,并且已经被集成到诸多主流商业三维动画软件中。变形采样是自由变形方法中尚未解决的一个问题。传统方法中,变形作用于模型的采样点,变形结果的质量受采样密度的影响。精确自由变形则是将模型的每一个平面片变形为一个三角Bezier曲面片或者裁剪Bezier曲面片,得到了多边形物体的精确变形结果,解决了由于采样密度不足而造成的几何走样问题。但是,精确自由变形计算量巨大,难以实现交互或实时的变形编辑,从而限制了其应用;此外,由于精确自由变形方法仅考虑了多边形物体的几何变形,忽略了其法向场的变形,使得变形结果不光滑。结合当代GPU通用计算能力的不断提升,本文从变形效率和变形效果两个方面着手,开展了基于GPU的自由变形反走样研究,取得了如下研究成果:·提出了基于GPU的实时精确自由变形方法,变形结果为裁剪Bezier曲面片。通过分析精确自由变形中的大量B-样条体求值、Bezier曲面片控制顶点计算、Bezier曲面片三角化等复杂运算之间关联性,设计了基于GPU的高度并行算法,高效地实现上述复杂运算;并且采用OpenGL中Vertex Buffer Object绘制最终结果,避免了CPU和GPU之间的大量数据传输。实验结果表明,GPU加速算法比CPU算法快两个数量级,满足了精确自由变形的实时交互要求。·提出了基于GPU的精确自由变形进一步加速方法,变形结果为三角Bezier曲面片。在基于CPU的精确自由变形方法中,变形结果为裁剪Bezier曲面片的方法效率远高于变形结果为三角Bezier曲面片的方法。通过分析和发掘当代GPU的数据并行和计算并行潜力,我们设计了一个更为高效的精确自由变形方法,整个变形过程可以进一步抽象为两个矩阵乘法,而矩阵乘法可以通过GPU线性代数库cuBLAS高效完成。实验结果表明,新算法比前一个GPU算法的效率又进一步提升了30%。该项研究提示:采用GPU并行架构实现传统的数据密集和计算密集的几何算法时,有可能获得更高的加速比。·提出了基于GPU、特征敏感的光滑自由变形方法。该方法将多边形模型的几何和法向分别进行近似变形,即将三角形及其线性法向量场分别近似变形为两个三次三角Bezier曲面片。为了克服面片分割引起的不光顺现象,算法根据变形法向量场对变形几何进行巧妙的局部调整,最终在模型的光滑部分,获得视觉上近似G1的变形几何、G0的变形法向场;而在尖锐特征部分,则保持了G0的变形几何、G-1的变形法向场。由于所有计算都是局部的,所以该算法可以使用GPU高效并行实现,保证了算法的实时性。·提出了基于光滑自由变形的隐式曲面编辑方法。由于自由变形方法独立于物体的表示形式,我们将上述光滑自由变形算法引入隐式曲面的外形编辑。该方法首先将对隐式曲面进行自适应多边形化,同时记录每一个顶点的精确法向,多边形化的分辨率由隐式曲面和变形空间自适应决定;然后采用光滑自由变形算法对多边形化的隐式曲面进行自由变形编辑。实验结果表明,基于光滑自由变形的隐式曲面外形编辑方法效率高,即使采用较低分辨率的多边形化结果也可以实现光滑的高质量外形编辑结果。