中国科技论文在线
CUDA光线跟踪渲染器的实现和优化
黄鑫,戴志涛5 (北京邮电大学计算机学院体系结构中心,北京 100876) 摘要:光线跟踪渲染器能够生成非常接近于现实的图像,然而由于其庞大的计算量,在个人电脑的实时渲染领域应用非常有限。 NVIDIA推出的CUDA平台使得在个人电脑上基于NVIDIA的GPU进行大规模并行计算成为可能。由于光线跟踪算法具有很高的并行特征,本文对传统的光线跟踪渲染器在CUDA上的实现进行了探索,给出了一种完全在GPU端运行的面向对象的实现方案,并对其在CUDA平台上的运行性能进行了优化。
关键词:计算机图形学;光线跟踪;CUDA;面向对象;内存对齐访问
中图分类号:TP391.9
10
15 The Implementation and Optimization of a CUDA-based Ray Tracing Renderer
Huang Xin, Dai Zhitao
(Architecture Center, Computer Science School, Beijing University of Posts and
Telecommunications, Beijing 100876)
Abstract: Ray tracing renderer can generate images that are very close to the reality. However, due to its large amount of computation, real-time rendering in the field of PC applications is very limited. NVIDIA's CUDA platform makes large-scale parallel computing possible on PC based on NVIDIA's GPU. As the ray tracing algorithm has high parallel features, the implementation of traditional ray-tracing renderer on CUDA platform is explored in this paper. An object-oriented implementation that runs entirely on GPU is given, and it's performance on the CUDA platform is optimized.
Key words: Computer Graphics; Ray Tracing; Object-oriented; Coalesced Memeory Access 20 25
0 引言
光线跟踪算法[1] [2]具有非常高的并行特征。对于图像中每个像素点发射的光线的跟踪过30 程,本质上是完全能够独立进行的,不会依赖于其他像素点的计算结果。而光线跟踪的计算
量与生成图像的像素数量成正比。因此,只要能够将光线跟踪算法完全的并行化,就可以大大的提高光线跟踪渲染的速度。例如在3D电影渲染领域,常常使用数百台电脑同时进行渲染。而在个人电脑领域,由于CPU是串行执行指令的,难以实现物理上的并行计算。而如果采用增加CPU的数量方式,CPU之间的协作会变得更加复杂,对软件的要求也会更高。 35 与CPU不同,GPU从一出现开始就以并行计算为核心任务,因此GPU比CPU具有更
强的并行处理性能。但GPU的逻辑控制功能较弱,这就使得GPU长期以来只能进行图形显示的计算。随着个人电脑并行运算需求的增加,显卡厂商开始推出GPGPU的概念,即使用GPU来进行通用计算。但是初期的一些用于通用计算的描述语言需要使用者对GPU的图形渲染管线非常了解[3],这就大大抬高了GPU通用计算的门槛。
40 NVIDIA推出的CUDA平台[4]使得情况有了改观。基于CUDA可以很方便的开发出使
用GPU进行通用计算的程序,并且不需要开发者对显卡的工作原理作过于深入的了解。CUDA提供了对C/C++语言的支持,使得开发过程与基于CPU的开发非常类似,大大简化作者简介:黄鑫(1985-),男,研究生,嵌入式系统与网络通信
通信联系人:戴志涛(1969-),男,教授,嵌入式系统与网络通信. E-mail: daizt@
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科CUDA光线跟踪渲染器的实现和优化全文阅读和word下载服务。
相关推荐: