基于GPU加速的光线跟踪渲染算法研究_陈昱
计算机形学中的渲染算法

计算机形学中的渲染算法在计算机图形学领域中,渲染算法是一种用于生成逼真图像的关键技术。
通过模拟光线传播、表面材质以及光影效果等,渲染算法可以呈现出具有细节和真实感的图像。
本文将介绍计算机形学中常用的渲染算法,并分析它们的原理和应用。
一、光线追踪算法光线追踪算法是一种基于物理光线传播模型的渲染方法。
其核心思想是通过跟踪光线在场景中的传播路径,计算光线与物体的交点,并考虑光线在交点处的反射、折射等光线行为,从而生成图像。
光线追踪算法具有较高的真实感和逼真程度,在电影、游戏等领域有广泛应用。
光线追踪算法的基本流程如下:1. 发射光线:从相机位置发射光线。
2. 检测交点:判断光线与场景中的物体是否相交,若相交则计算交点位置。
3. 计算光照:根据交点处物体的材质属性,计算光照强度和颜色。
4. 反射和折射:根据交点处的表面属性,计算反射光线和折射光线。
5. 递归追踪:依次对反射光线和折射光线进行光线追踪。
6. 合成颜色:将得到的各个光线的贡献累加起来,得到最终的像素颜色。
光线追踪算法能够模拟光线的真实传播,因此能够产生较为逼真的阴影效果和光影效果。
然而,由于计算量较大,其渲染速度较慢,对硬件要求较高。
二、光栅化算法光栅化算法是一种将连续的几何形状转化为离散像素的渲染方法。
其主要思想是将场景中的几何形状划分为多个像素,然后根据像素的属性进行颜色填充,最终生成图像。
光栅化算法是当前大多数实时渲染技术的基础。
光栅化算法的基本流程如下:1. 几何形状定义:通过数学方程或三角网格等方式将几何形状表达出来。
2. 光栅化:将几何形状划分为像素,并确定每个像素对应的屏幕位置。
3. 顶点属性插值:对于每个像素,根据顶点的属性值进行插值,得到该像素的属性值。
4. 片元处理:对于每个像素,根据其属性值计算颜色值。
5. 像素输出:将计算得到的颜色值输出到图像缓存中。
光栅化算法具有高效的渲染速度和较低的硬件需求,适用于实时图形渲染,如电子游戏、虚拟现实等。
基于GPU加速的光线跟踪渲染算法研究

光线 跟踪 算 法需 要跟 踪 每一 条 光线 , 将 其 与 场 景 中几何 对象 执行 相交 测试 , 计算 量很 大 。因此 , 目前光
线 跟 踪主 要应 用 于离线 渲 染 , 在实 时 渲染 中 的应用 还 处 于试 验 阶段 。如果 光线跟 踪算 法 的性 能可 以达 到实 时交 互 ,必 然 可 以极 大地 提高该 算 法 的应 用 领 域 , 对
算法 ( 如研 究 提 高 求 交计 算 的效 率 , 采 用 加 速结 构 减 少 求交 的次 数等 ) , 另一 种则 是从 硬件 体系 出发 。光线
跟 踪渲 染 中每 条光 线独 立计 算 , 十 分适 合并 行 体 系结 构 。近 年来 , 集成 大 量处 理核 心 的 G P U( 图形 处理 器 ) 在计 算 能力 方 面增 长迅 速 , 在 特 定类 型 计算 中已远 超
C P U实现 相 比加 速 比达 到 5倍 以上 ;与 采 用 K d — t r e e
收 稿 日期 : 2 0 1 2 — 1 0 - 0 8
作 为加 速 结构 的实现 相 比 , 在 同等 复 杂度 的 场 景下
性 能更 好 。
基金项 目: 福 建 省 教 育 厅 科 技 项 目( 项 目编 号 : J B 0 9 0 1 7 ) 。 作者 简介 : 陈昱 ( 1 9 8 1 一 ) , 男, 汉族 , 讲师, 主要 研究 方 向: 并 行 计 算 与 图形 学 方 面 。 江 兰 帆 ( 1 9 8 1 一 ) , 女, 汉族 , 讲师 , 主要 研究 方 向 : 操 作 系 统 与 系 统 结
中心到 每个像 素 的主光线 的参数 方 程 。在 G P U中, 每
个 线程 计算 一条 光线 在场 景 中 的反 射光 强 度 , 即像 素 的颜 色值 。 每个线 程块 ( B l o c k ) 分配 的光 线数 用 以下公 式 计算 : ( S I Z E X 木 S I z E Y +T H R E A D S _ P E R _ B L O C K一 1 ) / T H R E AD s _ P E R _ B L O C K。其 中 S I Z E X和 S I Z E Y 为
GPU光线跟踪算法加速结构研究

2 基 于GP . U的 光线 跟 踪
21 相 关 工 作 .
图2 1 基 于 GP . U的 光 线 跟踪 的模 型
在P re 的论 文中 , ucl l 它将光线一三角形 求交 , 以及遍 历过 程分离成两个独立 的遍历内核和求交 内核 。本文的实现中 , 也
W a gs y a W e u i g n hiu n, n l y n i
fo p t c neClg,otw sPt l m nvri, hnd iha, 150 C m ueSi c oeeSuh et eoe U i sy C eguScun6 00) r e l r u e t
援 隶 醉 赣
T C N L G N R E E H 0 o YA DMA K T
GP 光线跟踪算 法加速结构 研究 U
王世元 温柳 英
西 南石 油 大学计 算机科 学 学院 成都 6 00 150
摘 要: 基 fG U ̄ 光 线跟 踪 算 法是 当前 图 形 学研 究 的 一 个 热 点 , 是 将 来 用 于 广告 、 -P 也 电影 、 戏 等 娱 乐 产 业 的 关键 游 技 术 。本 文 论 述 了如 何 对 基 于G U的 光 线跟 踪 算 法 进 行 实现 , P r , 用 各 种 加 速 结 构 , 速 算 法 实 现 , 高 算 法执 行 效 a ̄ l , l 加 提
将传统 的C U P 上执行 的光线跟踪算法 , 映射成为一个G U P
协助 的, 或者基于G U P 的光线跟踪器有众 多方法 。下面重点介 绍P re 提出的映射模型 , ucl l 以及在本文 的实现 中提 出的一个基 于G U P 的Whtd ie模型的光线 跟踪器 。 t 该光线跟踪器的布局如 图
基于GPU加速的光线跟踪体绘制算法研究

中 图分 类 号 :T 3 P9
文献 标 识 码 :A
文章 编 号 : 17 6 2—9 7 2 1 O O4 — 3 8 0( 0 0) 卜 l4 0
Re e r h o heAc ee a e Ra a i o s a c n t c lr t d y Tr cng f r Vo um e n r n ̄ba e n GPU l _ .e de i r a do s 0
ቤተ መጻሕፍቲ ባይዱ
V0 .3 No 1 1 3 . M a. O 0 r2 l
基于 G U加速 的光线跟踪体绘制算 法研究 P
陈 占芳 ,张国玉,师为礼 ,任 涛
( 春 理 工 大学 ,长 春 长 102 3 0 2)
摘
要 :光线跟踪算法是真 实感 图形学中体绘制的主要 算法之一 ,本文分析 了基 于 GP 的光线跟踪技 术的实现原 U
K e o ds: G PU ; ry a ig; a c lr t v um er nd rng yw r a t cn r c ee ae; ol ・e e i
光线跟踪体绘制算法是体绘制技术中的一种经 典算法 , 传统算法中所有的计算都在 C U上进行, P 重建速度较 慢 ,无法 达到实 时效果 。本 文使用 GP U
.
o t et a g es ra e e h e x e me t c n s e l e eag r h o U n U s l t n . i e e f h in l f c si t r ee p r n e e ,r ai dt lo i m nGP a dCP i t r ou i s W t t - r u nht i s z h t n wo e o h hr s i,I sf u d t a e lo tm nGP i b t r h no U, e p c al b iu emo ec mp iae c n . ut t wa n t h g r h o U et a nCP o h t a i s et s e i l o v o si t r o l td s e e y nh c
基于GPU的光线跟踪算法的分析

SIN.eEOY zEr&CL 一 o Ca I 0 CETN3 oro
基 于
—
—
高,技术
GPU 的
光 线 跟 踪 算 法 的 分 析
王璐 彼
‘ 华中师范大学计算机科学系) 摘 要: 光线眼踪算法是真实感图形学中的主要算法之一 , 本文设计了 一种适合于GP U 处理的类二叉树空间剖分结构, 并采用图像空间 的自 适应分创算法, 提高了 在G P U 上实施光线遍历的计算效串。 关钮词 真实感图 形 光线跟踪算法 二叉空间划分 GP U 中圈分类号,TP 39 文献标识码: A 文章编号: 1672- 379 1(2007)08(b卜0006- 01 借鉴基子流的光线跟踪来利用GP U 进行 储空间的限制 。 成为了算法实现中遇到的挑 光线跟踪计算 可以设计一种类二叉树结构。 战. 为此, 必须设计合适的迫历加速结构来组 由于在 GP U 中进行显式的表面重建并不合 织场景中的几何墓元数据。在经典的加速结 适, 我们将直接从点模型数据中计算出交点。 构中, 有两种主要的组织方式. 一种以场景的 几何基元为中心, 一种以场景的空间为中心. 1 算法框架 这里使用后一种, 构建类 BSP 的算法, 并且为 由于是利用GP U 进行光线跟踪, 算法将 了提高效率, 采取一组光线并行入栈的方式。 被分解为两大部分。一部分由CP U 端来完 成, 主要负责整体计算的控制和平衡。另一郊 2 空间剖分结构 分I l 在 G U 中.主要负责光线跟踪的计算 , i P 这 为了 加速光线与场景求交的过程, 这里应 部分主要由五个类型的计算内核来完成. 用空间剖分结构。光线与场景求交的过程可 , G .1 PU端 以分解为两个大的步骤: 迫历和求交. 利用G P U 进行光线眼踪计算, 使用一种 遍历和求交在 GP U 中是两个计算内核。 墓于流的光线跟踪算法。 。整个框架由五部分 对于每根光线, 需要维护其所处的计算内核。 组成 光线生成、场景遍历、模型求交、光照 这将由G U 来控制。 P 已经计算完成的光线, 则 计算和光线衍生。每一种对应子 GP U 中一个 有绘制和完成两种不同的状态。我们在光线 路径 的计 算。 上标志四个状态:迫历、 求交、 谊染和完成。 光 ( 1) 光线生成 生成初始光线的起点和方 线起始时, 或者处于迫历状态, 或者处于完成 向。 状态。光线在四个状态间的切换由一个有限 (2)场景迫历:利用光线的信息在整体场景 自动机来控制。 切换的各个条件如下: 的空间剖分结构中寻找可能需要进行光线求 文的模型表面蔫元. 我们使用类二叉树结构 遍历一 完成: 光线不再有下一个叶结点 > 来 组织 场景 。 需要追历, 在当前叶结点也没有交点。 (3 )模型求交:主要完成:交点的探测和求 迫历一 迫历: 光线遍历的当前叶结点中 > 文 计算 。 不存在表面基元. (4)光照计算:利用光照明模型来进行光照 遍历一 求交: 光线遍历的当前叶结点中 > 计算, 并将获得值男加到帧缓存相关象素中. 存在表面签元. (5)光线衍生:如果光线有交, 就利用交点 求交一 求交 光线与当前表面墓元无交, > 信息生成相应的反射或折射光线. 必要时, 也 但当前叶结点中还存在未求交表面基元。 会生成阴影测试光线。 求交一 迫历:光线与当前表面基元无交. > ,2 CPU端 且当前叶结点中不存在未求交表面基元。 CP U 用来进行算法的整体控制和计算平 求交一 谊染:光线与当前表面基元有交。 > 衡. 各个状态的任务如下: 因为, 在GP U 上进行光线衍生技术时 遍历: 负责利用光线的信息寻找下一个需 会获得反射和折射两组光线, 是一个多路径计 要遍历的叶结点。 求交:负责光线与当前的表面Y 元进行求 l 算的过程, 在多个路径之间进行切换需要CP U 的控制. GPU 无法同时对这些光线进行计算, 交计算。 这需要 CP U 控制计算资源的分配, 即当光线 谊染: 负责计算当前光线的光照明贡献. 完成 : 无 。 生成和光线衍生产生光线时, 将生成的光线压 入栈 , CP U 来分配GP U 计算资源. 由 渲染和完成的任务较为简单, 下面将集中 另一方面, 光线的退历 和求交由于访问存 分析遍历 和求交中的问晒和解决方案。 变硅溶胶的表面电性 , 当达到一定浓度( 0 . 151 )时, 会使胶体颗粒带正电, 硅溶胶产生絮 凝沉降。因此, 加人阳离子表面活性剂是改变 硅溶胶负电性的有效途径. 利用水热晶化法合成超微 p 沸石. 以S B 粉为铝源. 体系中不引入钠离子时, 所得到的 沸石产品的粒径明显减小, 可达到或接近纳米
基于GPU的计算机视觉算法加速研究

基于GPU的计算机视觉算法加速研究随着科技的不断发展,计算机视觉技术的应用范围正在不断拓展,从物体检测到人脸识别,再到自动驾驶和机器人导航等等,每个领域都需要高效、准确的图像处理与分析方法。
但这些图像处理算法通常会消耗大量的计算资源,导致实时性和准确性的矛盾,不得不对性能进行优化和加速。
目前,基于GPU的计算机视觉算法加速研究已经成为了一种重要的解决方案。
一、GPU在计算机视觉加速中的应用近年来,GPU(图形处理器)的迅速发展使得其在计算机视觉领域中得以广泛应用。
GPU具有大量的计算核心和高速内存带宽,能够支持高效的并行计算。
GPU的并发线程数远远超过了CPU,能够更加快速地处理大量数据,因此GPU通常被用来进行数据密集型的计算,如图像处理。
基于GPU的计算机视觉算法加速研究中一个重要的应用便是卷积神经网络(CNN)的训练和推理加速。
CNN是深度学习中最为常用的一种网络结构,可以用于图像分类、目标检测和语义分割等任务,但是训练一个复杂的CNN模型是非常耗时的,甚至需要数周或数月时间。
而GPU可以提供高效的并行计算能力,加速CNN模型的训练和推理过程。
此外,GPU也被广泛应用于图像处理和特征提取等方面。
像SIFT、SURF、HOG等特征提取算法,其计算量都非常大,难以在CPU上实现实时处理。
而使用GPU加速后,这些算法的处理速度大幅提升,使得实时处理成为可能。
二、基于GPU的计算机视觉加速技术1. CUDA技术CUDA技术是基于NVIDIA GPU开发的并行计算框架,提供了一套API和基本工具,使得程序员可以方便地利用GPU进行并行计算。
CUDA技术支持C/C++语言编程,在编写程序时,可以利用CUDA提供的CUDA C/C++扩展语法来实现块级并行和线程级并行,从而充分发挥GPU并行计算的能力。
2. OpenCL技术OpenCL是一种开放的跨平台计算机视觉算法加速技术,也是一种GPU加速技术。
与CUDA不同的是,OpenCL技术支持多种GPU和CPU设备,并且可以运行在多个操作系统上。
用GPU加速求解线性方程组的高斯消元法

用GPU加速求解线性方程组的高斯消元法
夏健明;魏德敏
【期刊名称】《计算机工程与设计》
【年(卷),期】2009(030)019
【摘要】提出了应用图形处理器(GPU)加速求解线性方程组的高斯消元法,用二维四通道纹理表示系数矩阵与常数向量构成的矩阵,在该矩阵内完成归一化、消元等操作.提出了新的纹理缩减算法,该算法不要求纹理的边长是2的幂,把该纹理算法应用于高斯消元法的列主元搜索和确定主元行号.根据这些算法,使用OpenGL着色语言编程,用图形处理器实现加速求解线性方程组的高斯消元法,运算时间与基于CPU 的算法比较,随着方程组未知量数量增多,基于GPU的算法具有较快的运算速度,证实图形处理器能加速线性方程组的求解.
【总页数】4页(P4447-4450)
【作者】夏健明;魏德敏
【作者单位】华南理工大学土木工程系,广东广州510640;广东水利电力职业技术学院土木工程系,广东广州510635;华南理工大学土木工程系,广东广州510640【正文语种】中文
【中图分类】TP311.11
【相关文献】
1.对称高斯消元法的快速求解及其应用 [J], 庄广宇;张洁;戴雨心;陈恳
2.GPU加速的航迹关联改进蚁群求解算法 [J], 高颖;陈旭;王永庭;武梦洁
3.中科大实现线性方程组量子算法量子计算机成功求解线性方程组 [J], 马伟;
4.基于消息传递接口的线性方程组并行计算研究——以改进的高斯消元法为例 [J], 刘成军
5.龙格库塔间断有限元方法求解二维欧拉方程的多GPU加速实现 [J], 周星宇;刘铁钢;
因版权原因,仅展示原文概要,查看原文内容请购买。
基于GPU加速的光线跟踪体绘制算法研究

基于GPU 加速的光线跟踪体绘制算法研究摘要:光线跟踪算法是真实感图形学中体绘制的主要算法之一,本文分析了基于GPU 的光线跟踪技术的实现原理,设计了基于流的GPU 光线跟踪体绘制方法。
根据设计的三个实验场景所包含的三角形面片数,在2种不同分辨率下,分别实现GPU 和CPU 的光线跟踪绘制。
通过实验结果比较、分析,发现随着场景复杂度的增加,基于GPU 加速的光线跟踪算法将明显优于CPU 上的算法。
关键词:GPU ;光线跟踪;加速;体绘制中图分类号:TP39文献标识码:A文章编号:1672-9870(2010)01-0144-03收稿日期:2009-11-27作者简介::陈占芳(1980-),男,博士研究生,主要从事在线检测与无损检测的研究,E-mail :chenzhanfang@ 。
陈占芳,张国玉,师为礼,任涛(长春理工大学,长春130022)Research on the Accelerated Ray Tracing forV olume-rendering based on GPUCHEN Zhanfang ,ZHANG Guoyu ,SHI Weili ,REN Tao(Changchun University of Science and Technology ,Changchun 130022)Abstract :Ray Tracing Algorithm is a main algorithm for volume-rendering in photorealistic rendering.In the paper ,the prin-ciple of the ray tracing based on GPU are analyzed and designs the algorithm based on stream for GPU.according to the count of the triangle surfaces in the three experiment scenes ,realized the algorithm on GPU and CPU in two resolutions.With the re-sult ,It was found that the algorithm on GPU is better than on CPU ,especially obvious in the more complicated scene.Key words :GPU ;ray tracing ;accelerate ;volume-rendering光线跟踪体绘制算法是体绘制技术中的一种经典算法,传统算法中所有的计算都在CPU 上进行,重建速度较慢,无法达到实时效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 引言
光线跟踪是一种基于物理的图形渲染算法, 相比 于实时流水线光栅化算法, 更方便实现真实环境中的 反射、 折射、 透明、 阴影等全局光照效果。 光线跟踪算 法产生的画面真实感强, 被广泛应用于电影后期制作 等领域。
渲染程序使用。 3 .3 生成光线
根据观察方向和视平面分辨率, 可以计算得到每 个像素的坐标; 结合照相机位置, 就可以得到从投影 中心到每个像素的主光线的参数方程。 在 G P U 中, 每 个线程计算一条光线在场景中的反射光强度, 即像素 的颜色值。 每个线程块( B lo c k ) 分配的光线数用以下公 式计算: (S IZ E X * S IZ E Y + T H R E A D S _ P E R _ B L O C K 1 )/T H R E A D S _ P E R _ B L O C K 。 其中 S I Z E X 和 S I Z E Y 为 屏幕窗口长宽方向上的像素数, T H R E A D S _ P E R _ B L O C K 为 C U D A 中每个 b lo c k 的线 程数。 3 .4 B V H 的构建与遍历
3 基于 G P U 的光线跟踪渲染
3 .1 渲染算法流程
·84·
武夷学院学报 2013 年第 2 期
渲染算法的流程和阶段如图 1 所示。 整个渲染分 成两个工作阶段:
图 1 基于 G P U 的光线跟踪渲染流程
1、 C P U 准备阶段是在 C P U 上运算完成的, 负责 读取场景数据和创建 B V H 。 在得到这些数据之后, 将 其复制到显卡的显存中, 供 G P U 渲染时使用。
光线跟踪算法需要跟踪每一条光线, 将其与场景 中几何对象执行相交测试, 计算量很大。 因此, 目前光 线跟踪主要应用于离线渲染, 在实时渲染中的应用还 处于试验阶段。 如果光线跟踪算法的性能可以达到实 时交互, 必然可以极大地提高该算法的应用领域, 对 计算机图形学相关应用( 如游戏, 电影等) 将产生重大 影响。
lig h ts o u rc e
C U D A 支持 flo a t4 数据类型, 十分方便进行上述
公式中向量的计算。 其中镜面反射分量计算时需要交
点处的法向量 n , 通过三角形三个顶点处的法向量( 从
模型文件中读取) 结合交点处的质心坐标( B a r y c e n tr ic
C o o rd in a te s ) 插值计算得到, 实现 P h o n g 插值着色, 这
陈 昱 江兰帆: 基于 G P U 加速的光线跟踪渲染算法研究
·8 5·
表面积, 再应用 S A H 代价模型估算当前划分方式的 代价, 选取代价最小的分割方式划分当前节点;
( 4 ) 以同样的方式递归生成孩子节点, 一直到三 角形数量小于设定的阈值为止, 即可完成 B V H 的创 建。
在 C P U 中完成 B V H 的构建后, 将其数据结构拷 贝到显存中, 供 G P U 渲染程序用于遍历。
在生成光线后, 渲染程序需要将光线与场景进行 相交检测, 获取距离视点最近的物体交点。 一种简单 的做法是将光线与场景中的所有几何对象进行碰撞 检测, 通过比较获取最近的碰撞点。 这种做法易于实 现, 但所需的计算量也是极为庞大, 时间复杂性为 O (N ) , N 为场景中对象的数量, 而使用 B V H 和 K d - tr e e 等加速结构的时间复杂性为 O (lo g N ) , 判断效率提高明 显[4 ]。
本文采用 N V ID IA 公司的 C U D A 作为 G P U 编程 平台, 采用 B V H 作为加速结构, 对三角形网格模型进 行渲染, 针对 C U D A 体系结构进行了算法的重新设计 与优化。 实验结果表明 1 0 万三角形的场景在目前主 流型号 G P U 上算法已可以达到实时交互的性能, 与 C P U 实现相比加速比达到 5 倍以上; 与采用 K d - tr e e 作为加速结构的实现相比[2,3], 在同等复杂度的场景下 性能更好。
收稿日期: 2 0 1 2 - 1 0 - 0 8 基金项目: 福建省教育厅科技项目( 项目编号: J B 0 9 0 1 7 ) 。 作者简介: 陈昱( 1 9 8 1 - ) , 男, 汉族, 讲师, 主要研究方向:
并行计算与图形学方面。 江兰帆( 1 9 8 1 - ) , 女, 汉族, 讲师, 主要研究方向: 操作系统与系统结 构方面。
2、 G P U 渲染阶段是通过 C U D A 的 k e r n e l 函数实 现光线跟踪渲染算法, 编译后运行于 G P U 上。 首先从 视平面的像素点向场景空间中投射光线, 获取光线与 场景中对象的最近碰撞点, 利用 B V H 加速结构进行 快速相交测试。 接着判断该碰撞点是否处在阴影区 域, 如果不在则利用光照模型计算该位置的直接光照 强度。 如果考虑间接反射情况, 则应继续跟踪光线, 计 算碰撞点的间接光照强度。 将直接光照和间接光照叠 加起来, 即可计算出视平面的像素点的颜色值。 在 G P U 中每一个线程计算一条光线方向, 计算出像素颜 色后写入 O p e n G L P B O 缓存区域, 最终显示在窗口 中。 3 .2 场景初始化
E n d W h ile 3 .5 阴影计算
当确定光线和场景中三角形的最近交点后, 下一 步需计算交点处的反射光强度( 即颜色值) 。 首先要判 断的就是在交点和光源之间是否有物体遮挡, 如有遮 挡则光源对该像素点的颜色无直接贡献; 否则在计算 像素颜色时需要考虑该光源的贡献。 当确定光线和场 景中三角形的最近交点后, 可以在光ห้องสมุดไป่ตู้与交点之间生 成阴影检测光线, 并利用 3 .4 节中基于 B V H 的相交测 试算法进行遮挡测试。 3 .6 光照模型计算
第32 卷 第2 期 2013 年4月
武夷学院学报
JOURNAL OF WUYI UNIVERSITY
Vol.3 2 No.2 A P R.2 0 1 3
基于 G P U 加速的光线跟踪渲染算法研究
陈 昱 江兰帆
( 福州大学 数学与计算机科学学院, 福建 福州 3 5 0 1 0 8 )
摘 要: 分析了光线跟踪渲染算法在 G P U 上实现的流程; 设计了 C U D A 平台上基于 B V H 加速结构的光线跟踪渲 染引擎, 针对 C U D A 架构的特点重新设计了 B V H 遍历算法和间接反射计算算法; 并在四个场景和两种分辨率下针对 G P U 和 C P U 实现进行了详细对比测试。 通过分析实验结果, 基于 G P U 加速的光线跟踪算法在不同复杂度的场景下相比 其 C P U 实现都有较高的性能提升。
1 、 B V H 的构建 B V H ( 层次包围盒) 的基本思想是按照某一空间 维度将原包围盒分成两部分, 每部分再接着往下分, 直到满足结束条件, 其过程与二叉树类似。 B V H 中内 部节点不包含三角形, 但包含两个子节点的索引, 而 叶子节点包含一个三角形列表。 创建过程是一个递归 地划分包围盒的过程, 每次包围盒划分位置的确定将 影响 B V H 的生成结果, 并影响整个加速结构的遍历 性能。 比较常用的方法是划分时采用表面积启发式 ( S u r fa c e A r e a H e u r is tic ) 代价模型, 估算光线穿越包围 盒的期望代价, 求得近似最优解。 基于 S A H 评估的 B V H 创建过程如下[4]: ( 1) 将当前节点包围盒的最长轴的方向作为分 割方向; ( 2 ) 将三角形列表按照包围盒的中心点在分割 方向上的位置 N 等分, 产生 N - 1 种备选划分方式: 左 边 1 份, 右边 N - 1 份, … , 左边 N - 1 份, 右边 1 份; ( 3) 对每种分割方式分别计算两部分包围盒的
A n d 光线与包围盒的进入交点 b o x _ t m i n < m i n _ t I f 当前节点是叶子节点
遍历当前节点中的三角形, 对于每个三 角形
If 光线与三角形相交 A n d 相交距 离 cu rren t_ t < m in _ t
m in _ t = cu rren t_ t 记录信息 E nd If E n d 遍历 E lse 将当前节点的两个孩子节点根据分割 轴的方向, 远的先入节点列表, 近的后入节点列表 E nd If E nd If
间接反射颜色的累加。
上述间接反射过程是一个递归的计算, 实现中为
了函数在有限时间内返回, 需定义递归的深度( 即跟
踪的反射次数) , 可以表示成以下的伪代码:
C o lo r R a y T ra c e(in t d e p th , V e c to r3 ra y, V e c to r o rig in ...) {
样计算得到的物体表面的反射光颜色过渡较为自然。
3 .7 间接反射计算
在光线跟踪渲染中, 光线与场景第一次相交后通
常还需计算间接反射情况。 像素的颜色除了包含光源
的反射光颜色之外, 还需其他表面产生的间接反射光
颜色。 光线每反射一次便需计算一次交点处的颜色
值, 这样经过多次反射后, 像素点最终色彩便是多个
2 光线跟踪算法加速分析
为了提高光线跟踪算法的速度, 一种思路是改进 算法( 如研究提高求交计算的效率, 采用加速结构减 少求交的次数等) , 另一种则是从硬件体系出发。 光线 跟踪渲染中每条光线独立计算, 十分适合并行体系结 构。 近年来, 集成大量处理核心的 G P U ( 图形处理器) 在计算能力方面增长迅速, 在特定类型计算中已远超 C P U [1]。 光线跟踪算法理论上可以利用 G P U 架构的数 据并行性获得较高的性能, 利用 G P U 实现光线跟踪 的实时交互成为了一个新的思路。