基于微分几何曲面论的高精度曲面模拟(high accuracy surface modeling, HASM)需要大量的复杂密集计算,在CPU上模拟极为耗时,使得在现有的硬件条件下,实时动态模拟曲面并实时可视化极具挑战性。论文提出了GPU加速的HASM方法,充分利用现代显示适配器(graphic processor unit, GPU)技术,运用GPU最新发展起来的并行计算能力,使用并行化的预处理共轭梯度方法解算曲面,完成曲面模拟,并同时利用GPU的高速缓存架构,对渲染操作进行充分优化,以实现高效实时可视化。HASM需要的有限差分离散和高速解算操作,均充分利用现代GPU架构,所具有的多处理器和众多的流处理器所产生的强大并行计算能力,可视化也用GPU高速缓存技术和三角条带方法进行充分优化。数值实验和实际项目区高程模拟实验均表明, 在GPU为NVIDIA quadro 2000和CPU为DualCore Intel Core 2 Duo E8400的硬件配置下,GPU并行化的曲面模拟方法比普通方法速度提高了约10倍,使得动态模拟与可视化算法可以达到交互式的帧速及实时可视化的要求。
High accuracy surface modeling (HASM) is a method for building surface with high accuracy in terms of sampled points, which is based on the fundamental theorem of surfaces and gives a solution to error problem in geographic information system (GIS). Previous studies show this method can model surface with much higher accuracy than other classical methods widely used in GIS, while its speed is limited because of its huge computational cost. In order to accelerate its computational speed, a novel parallel and interactive method of HASM for real-time rendering on GPU using compute unified development architecture (CUDA) is presented, which allows for efficient and high quality visualization. The computational task of HASM is parallelized and run simultaneously on many cores of modern GPUs which have multiprocessors and many stream processors, which can improve the performance significantly. Coupled with an efficient rendering method, dynamic surface simulation and real-time rendering is done concurrently on GPU. Preconditioned conjugate gradients methods are used to solve the huge linear systems arising from HASM. Fully harnessing the processing power of modern GPUs with a highly parallel architecture and multiprocessors and many stream processors, we can simulate the surface dynamically and post it to rendering pipeline simultaneously. Making use of state-of-the-art GPU techniques such as vertex buffer object, texture buffer, the rendering can be carried out with a very high efficiency. A few experiments were carried out including some digital elevation model constructions and the tests results showed that our method can construct surface dynamically and visualize it at very high frame rates.
[1] Yue T X. Surface modeling: High accuracy and high speed methods[M]. Boca Raton,FL: CRC Press, 2011.
[2] Toponogov V A. Differential geometry of curves and surfaces: a concise guide[M].New York: Birkhauser, 2006.
[3] Stone J E, Hardy D J, et al. GPU-accelerated molecular modeling coming of age[J]. Journal of Molecular Graphics and Modelling, 2010, 29(2): 116-125.
[4] Goswami P, Schlegel P, et al. Interactive SPH simulation and rendering on the GPU.// Proceedings of the 2010 ACM SIGGRAPH/Eurographics symposium on Computer animation, 2010, In SCA '10: Eurographics Association.
[5] Kalyanapu A J, Shankar S, et al. Assessment of GPU computational enhancement to a 2D flood model[J]. Environmental Modelling & Software, 2011, 26(8): 1009-1016.
[6] Hawick K A and Playne D P. Numerical simulation of the complex Ginzburg-Landau equation on GPUs with CUDA.// IASTED International Conference on Parallel and Distributed Computing and Networks (PDCN), Innsbruck, Austria: ACTA Press,2011.
[7] Helfenstein R and Koko J. Parallel preconditioned conjugate gradient algorithm on GPU[J]. Journal of Computational and Applied Mathematics, In Press, Corrected Proof, 2011.
[8] Lee H and Han S. Solving the shallow water equations using 2D SPH particles for interactive applications[J]. The Visual Computer, 2010, 26(6): 865-872.
[9] Ji X, Cheng T and Wang Q. CUDA-based solver for large-scale groundwater flow simulation[J]. Engineering with Computers, 2011, 28(1): 13-19.
[10] Manavski S A. CUDA compatible GPU as an efficient hardware accelerator for AES cryptography.// IEEE Signal Processing and Communications(ICSPC), Dubai: IEEE. 2007.
[11] Jung Y, Graf H, et al. Mesh deformations in X3D via CUDA with freeform deformation lattices[M].// Virtual and Mixed Reality-Systems and Applications, R. Shumaker, Editor Springer Berlin / Heidelberg. 2011, 343-351.
[12] Wei W and Huang Y. Real-time flame rendering with GPU and CUDA[J]. International Journal of Information Technology and Computer Science, 2011, 3(1): 40-46.
[13] Nilsson M. Constraint fluids on GPU (2009). Available from: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.160.2134&rep=rep1&type=pdf.
[14] Singh B, Pardyjak E R, et al. Accelerating urban fast response Lagrangian dispersion simulations using inexpensive graphics processor parallelism[J]. Environmental Modelling & Software, 2011, 26(6): 739-750.
[15] Neal J C, Fewtrell T J, et al. A comparison of three parallelisation methods for 2D flood inundation models[J]. Environmental Modelling & Software, 2010, 25(4): 398-411.
[16] Kalivarapu V and Winer E. A multi-fidelity software framework for interactive modeling of advective and diffusive contaminant transport in groundwater[J]. Environmental Modelling & Software, 2008, 23(12): 1370-1383.
[17] 刘二永, 汪云甲.基于CUDA的IDW并行算法及其实验分析[J]. 地球信息科学学报, 2011,13(5): 707-710.
[18] 王强,檀结庆,胡敏.基于有理样条的图像缩放算法[J].计算机辅助设计与图形学学,2007,19(10):1348-1351.
[19] 桂叶晨, 冯前进, 刘磊, 陈武凡,基于CUDA的双三次B样条缩放方法[J]. 计算机工程与应用,2009,(01): 183-185,194.
[20] NVIDIA. NVIDIA CUDA C Programming Guide[M].Santa Clara, CA,USA: NVIDIA Corporation, v4 ed 2011.
[21] Kirk D B and Hwu W W. Programming massively parallel processors: A Hands-on approach[M]. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 2010.
[22] NVIDIA. CUBLAS Library[M].Santa Clara, California,USA: NVIDIA Corporation, 2011.
[23] NVIDIA. CUSPARSE Library[M]. Santa Clara, California,USA: NVIDIA Corporation, 2011.
[24] Yue T X, Du Z P, et al. A new method of surface modeling and its application to DEM construction[J]. Geomorphology, 2007, 91(1-2): 161-172.
[25] Quarteroni A, Sacco R and Saleri F. Numerical mathematics[M]. New York: Springer, 2000.
[26] Yue T X, Song D J, et al. High-accuracy surface modelling and its application to DEM generation[J]. International Journal of Remote Sensing, 2010, 31(8): 2205-2226.
[27] Shreiner D. OpenGL programming guide: the official guide to learning OpenGL, versions 3.0 and 3.1[M]. Boston, MA, USA: Addison-Wesley Professional, 2009.
[28] Sanders J and Kandrot E. CUDA by example: an introduction to general-purpose GPU programming[M]. Ann Arbor, Michigan: Addison-Wesley Professional, 2010.