电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

光线跟踪论文范文

来源:开心麻花作者:开心麻花2025-09-181

光线跟踪论文范文(精选3篇)

光线跟踪论文 第1篇

关键词:离散点,光照模型,光线跟踪,求交

0 引 言

在真实感图形学中, 为了模拟现实世界中的场景, 我们一般需要知道这个场景的光照明效果的物理模型, 然后我们用一个数学模型来表示它, 通过计算这种数学模型可以得到计算机模拟出来的真实感效果。局部光照模型[1]仅考虑光源照射在景物表面产生的反射光 (漫反射光和镜面反射光) , 不考虑周围景物对当前景物表面的光照明影响, 忽略了光能在环境景物之间的传递, 仅仅用一个适当值来表示环境反射分量, 所生成的图形可以模拟出不透明物体表面的明暗过渡, 具有一定的真实感效果。它的计算不涉及环境中的其它物体, 较为简单。复杂光照模型除了考虑由光源照射到景物表面引起的漫反射光和镜面反射光外, 还要考虑周围环境的光对景物表面的影响, 即要考虑环境的漫射光、镜面反射光和规则透射光对景物表面产生的整体光照明效果, 这类光照明模型称为整体光照模型[1]。目前实用的整体光照明模型一般采用光线跟踪方法和热辐射工程中的辐射度方法来实现。

1 光线跟踪的基本原理

光线跟踪[2]是一种更精确的真实感图形绘制的方法, 该方法由Appel在1968年提出。光线跟踪方法是基于几何光学的原理, 通过模拟光的传播路径来确定反射、折射和阴影等。屏幕上每个像素都单独计算, 能够更好地表现曲面细节。

在光线跟踪系统中, 物体空间中一点被取作视点, 一个与视点位置适当的平面矩形区域被取作投影屏幕, 图像生成是通过对每个像素分别计算光亮度值来进行的。首先, 从视点出发, 引一条视线穿过取样点, 向物体空间延伸, 通过计算求得与它相交的物体。视线可能与多个物体相交, 存在多个交点。可以通过比较各点与视点的距离, 求得离视点最近的交点。该点称为在视线方向上, 相对于视点的可见点。在求得可见点之后, 还必须沿着视线在该点处的反射线方向和折射线方向继续跟踪, 判断在反射线或折射线方向上是否有物体存在。这种视线称为间接视线。当间接视线与物体相交时, 确定离可见点最近的交点, 称为间接可见点, 接着在间接可见点处继续沿反射线和折射线方向跟踪, 直到再没有交点。这实际上是一个递归过程。图1给出了一个例子。联接观察点和屏幕上的一个像素, 即形成一条视线。

2 光线跟踪的特点

(1) 高质量绘制效果

它不仅考虑到光源的光照, 而且考虑到场景中各物体之间彼此反射的影响, 因此显示效果十分逼真。

(2) 有消隐功能

采用光线跟踪方法, 在显示的同时, 自然完成消隐功能。而且, 事先消隐的做法也不适用光线跟踪, 因为那些背面和被遮挡的面, 虽然看不见, 但仍然能通过反射或透射影响着看得见的面上的光强。

(3) 有阴影效果

光线跟踪能完成阴影的显示, 方法是从P0处向光源发射一根阴影探测光线。如果该光线在到达光源之前与场景中任意一个不透明的面相交, 则P0处于阴影之中, 否则, P0处于阴影之外。

(4) 该算法具有并行性质

每条光线的处理过程相同, 结果彼此独立, 因此可地大并行处理的硬件上快速实现光线跟踪算法。

不过光线跟踪算法也有缺点, 它们是计算量非常大, 绘制速度慢, 效率低。

3 基于离散点的光线跟踪

传统真实感图形绘制所采用的造型都是基于多边形网格的表示方法, 该方法不仅记录了点的信息, 而且记录了点和点之间的连接关系, 这种数据结构不易操作, 对多边形的增删、修改要涉及大量的数据结构改变, 存在着绘制精度依赖于网格的细密程度、计算复杂、数据结构不易操作等不足。在数据量的急剧增大和对网络传输要求越来越高的情况下, 基于离散点的造型和绘制在图形学中成为一个新的研究热点。这种基于离散点的表示方法[3]的基本思想是使用场景中所有的离散点取代传统的多边形网格存储, 不使用点之间的任何连接信息, 在整个图形绘制过程中, 只有点的概念, 没有面的概念。每个点连同相关属性一起被存储在计算机内, 并且增加对景物信息 (如材质、表面情况、几何特点、物理特点等等) 的描述, 使得数据结构简单, 操作灵活。

为了在基于点的造型和绘制中应用全局光照模型, 不需要进行可见性判别和图像重构就可以直接绘制出高质量的图形, 我们探讨在只有物体的离散采样点集合而没有点之间的连接信息的情况下, 如何进行光线与物体求交的具体过程。在基于点的造型和绘制中使用光线跟踪的主要问题是我们如何判断一条光线是否与离散采样点所代表的曲面相交以及如何计算交点[4]。在基于点的造型中光线跟踪通常有两种做法, 一种是用离散采样点集计算出一个替代的曲面, 把光线与点所代表的曲面求交转化为光线与替代曲面求交;另一种是不用替代曲面, 直接用光线与点集求交。

3.1 直接求交

求交过程分为两个阶段:第一阶段判别是否相交;第二阶段计算实际的交点以及交点处的法向量。

这里假定景物空间中每个采样的离散点代表一个小的区域 (通常选为圆形区域) , 这些小圆形区域覆盖了整个物体表面。这个小圆形区域以该离散点为中心, 小圆形的法线方向与该离散点法向量相同。圆的半径r的选取要依赖采样点的密度, 半径r取值通常略大于采样点密度的一半, 使得这些圆形能够覆盖整个物体表面。如果一条光线与点所代表的圆面相交, 就认为检测到了光线与物体的一个交点。为了加速求交过程, 可以使用八叉树。求交时只有树中那些与以光线为中心轴且半径为r的圆柱相交的结点才被考虑。

图2显示了这个过程, 黑色的离散点为检测到的交点, 灰色的离散点为从交点处开始包含在圆柱内的离散点。

当检测到一个交点之后, 所有被包含在从交点处起始的短圆柱内的点被记录下来, 光线与物体的真正交点的所有特性将从这些点插值得到。比如, 交点的法线将根据这些点的法线的加权平均得到, 其中第i个点的权值为这个点到光线的距离di, 具体计算公式如下:

交点的属性=i (i) * (r-di) i (r-di)

光线的参数方程为 X + tD, 这里 XD 分别为光线的起点和方向。图3显示了一个二维空间下的求交的方法。灰色的点为要求的交点, p1、p2、p3和p4分别为从交点处开始被包含在圆柱内的点, d1、d2、d3和d4分别为p1、p2、p3和p4到光线的距离。注意这里限制参与求交的点必须被包含在圆柱内, 也就是只有那些与光线距离小于半径r的点才会被考虑到。

3.2 间接求交

这里假定景物空间中每个采样的离散点代表一个半径为r的小球, 这个小球以该离散点为中心, 球的半径r的选取要依赖采样点的密度, 半径r取值通常略大于采样点密度的一半。为了求得交点, 首先要计算出近似代表曲面的局部多项式, 把光线与离散点所表示的面的求交转化为与近似多项式的求交。这种光线跟踪的迭代过程如下:

(1) 对于一条光线, 检测并记录所有与光线相交的小球。

(2) 对所有与光线相交的小球, 按照它们与视点的距离由小到大进行排序。

(3) 从有序球的队列中取出第一个 (即距离视点最近的球) , 执行下面的过程:

a) 检测是否初始的近似代表曲面的局部多项式的系数已经计算出来, 若是, 接着执行下一步;否则, 投影球心并计算出相应的信息。

b) 计算光线和近似多项式的交点ri, 如果ri和它的投影ri′的距离小到所需的精度, 那么停止这个过程, ri即为所求得的交点;否则, 投影转步骤3b。

图4显示了这个过程, 其中r0为光线与球的交点, r0′为r0的投影, r1为光线与近似多项式的交点, r1′为r1的投影。

4 应用实例

5 结 论

本文研究了基于离散点造型的光线跟踪方法, 基于离散点的光线跟踪技术关键在于求交过程。采用直接求交的方法不会引起可见性错误, 但是绘制结果依赖视点。在以前的方法中, 圆的半径由用户确定, 对绘制结果具有很大影响。为了获得高质量的效果, 圆的半径不由用户确定, 对于每一个点, 都通过计算得到一个最优半径[5]。判断是否最优的原则有两个, 一是以此为半径的圆是否完全覆盖了点集所代表的面, 二是该半径是否是最小的。这既保证了不会在表面留有空隙, 也保证了某个采样点所对应的圆不会覆盖太大而遮挡住其他的面, 从而提高了绘制质量。

采用间接求交方法, 迭代求取交点的过程不依赖于视点, 但是计算量非常大, 绘制需要花费很长时间完成, 影响性能的主要因素是迭代过程中的投影操作。为了提高性能, 当某一光线与小球的外壳相交时, 可以首先对球心进行投影, 这个投影信息保存下来, 可以被与该球相交的光线重复使用, 从而提高绘制速度[4]。

在以后的研究中, 应着眼于如何根据采样点的特征筛选离散点所对应的小区域, 以便进一步加快处理速度。

参考文献

[1]孙家广.计算机图形学[M].北京:清华大学出版社, 1998.

[2]David F Rogers.计算机图形学的算法基础[M].石教英, 彭群生, 等译.北京:机械工业出版社, 2002.

[3]Marc Alexa, Behr J, Cohen Or D.Computing and rendering point set surfaces[J].IEEE Transactions on Computer Graphics and Visualiza-tion, 2002, 8 (4) .

[4]Anders Adamson, Marc Alexa.Ray tracing point set surfaces[J].In Proceedings of Shape Modeling International, 2003.

光线跟踪论文 第2篇

太阳能作为一种可再生无污染的一次能源,能有效解决我们日益增长的能源需求问题。研究太阳光线跟踪系统,能提高太阳能的利用效率,促进太阳能的普及应用,改善能源利用的结构。本文根据太阳光线跟踪装置的工作原理及性能分析对其机械系统进行了详细设计。

1 太阳光线智能跟踪装置工作原理及性能分析

太阳光线智能跟踪系统采用基于天文学参数的闭环控制系统。系统跟踪原理是:先根据太阳运行规律计算出一天内某时刻太阳高度角α和方位角β的理论值,驱动器根据理论值和跟踪检测的误差补偿值驱动电机,电机带动执行机构工作,从而调整太阳能电池板的角度,完成对太阳的跟踪。跟踪装置工作原理如图1所示[1,2]。

太阳光线智能控制跟踪装置需要满足以下要求:

(1)方位角跟踪范围:0~200o;高度角跟踪范围:0~90o。同时要避免极限位置锁死,不跟踪时装置具有锁紧功能。

(2)为防止跟踪角加速度过大,引起附加载荷过大,取平均跟踪角速度为0.2o/s。

(3)跟踪精度为±1o。太阳的平均角速度为0.25o/min,即每隔4 min太阳能电池板与太阳光线就有1o的偏差。因此,最多每隔4 min就要调整一次太阳能电池板的角度。

(4)跟踪能耗不能超过1 W。

(5)装置的刚度和强度能满足该装置最大抗风150 km/h的要求,可实现9级风自动放平功能。

(6)在满足以上性能的同时,尽量简化结构和加工工艺,进一步提高技术经济性,降低成本[3]。

2 跟踪装置机械系统设计

2.1 传动方案与双轴系统方案

传动机构通常有蜗轮蜗杆传动机构、普通齿轮传动机构、行星齿轮传动机构和谐波减速机构等。行星齿轮传动具有重量轻、体积小、传动效率高、传动比大、传动功率范围大等优点,但其价格比较贵,成本上不合算。谐波传动具有结构简单、重量轻、体积小、传动比范围大、承载能力高、损耗小、效率高、运动平稳无冲击等优点,但不能自锁。蜗轮蜗杆传动具有传动比大、降速快、能自锁的优点。齿轮传动具有传动比准确、传递扭矩大的优点。所以本装置选择蜗轮蜗杆和普通齿轮二级传动方案,如图2所示。

该跟踪装置设有两根轴,具有两个转动自由度,竖直轴(垂直于地平面的传动轴)可实现方位角跟踪,水平轴(平行于地平面的传动轴)可实现高度角跟踪。该装置采用无刷直流电机驱动的智能控制,不需手动调整,而且能够根据太阳的运动轨迹发出跟踪信号对跟踪装置进行自动控制。通过双轴跟踪,使太阳能电池板保持与太阳光线垂直,最大效率地使用太阳能[4,5]。

2.2 太阳能电池板托架结构设计

太阳能跟踪装置所受的风载荷需根据太阳能电池板的布置来确定,太阳能电池板布置的方式有很多,如直板式、叠加式等,综合考虑其高抗风能力和结构紧凑性,本文采用直板式。太阳能电池板结构参数见表1。在对该装置机械结构设计以前,先对太阳能电池板托架进行结构设计。

1太阳能电池板框架;2水平轴;3水平轴承;4水平齿轮传动;5水平蜗轮蜗杆减速器;6水平无刷直流电机;7支架;8竖直齿轮传动;9竖直蜗轮蜗杆减速器;10竖直无刷直流电机;11竖直轴;12竖直轴承;13整体支座

首先根据经验公式计算风压[6],再根据风压大小确定太阳能电池板装置框架选材及其结构外形。根据最大抗风150 km/h的要求,计算得到的风压q=1 064.4 N/m2。 该装置要求太阳能电池板托架具有较大的刚度和强度,而可供选择的材料有角钢、方钢和槽钢等。根据太阳能电池板厚度为46 mm,综合考虑其成本,托架材料选用60303.0冷弯等边槽钢[7]。

托架采用桁架设计,考虑到托架与水平空心轴的连接稳定性,在与水平空心轴的连接处采用钢板结构,通过增加与水平轴相交处局部钢板厚度和在4个角落焊接4个三角钢板支撑块,可降低局部应力,提高整体强度[8,9],从而提高抗风能力。电池板安装托架整体三维结构如图3所示。

2.3 机械系统参数设计

2.3.1 传动比的确定

本装置高度角和方位角的跟踪机构拟采用同样的传动原理,其传动机构简图见图4。

由于太阳能电池板相对太阳光线转动角度很小,跟踪装置的平均跟踪角速度为0.2o/s,要求电机转速不能太大,所以选取电机工作转速n′=200 r/min,则总传动比为i=6 000。取齿轮传动比为i1=z4/z3=2(受结构尺寸所限不易取大),则蜗轮蜗杆减速器的传动比为i2=z2/z1=3 000。所选传动齿轮齿数分别为z3=14,z4=28,模数m=5,齿宽b=40 mm。选RV30/40型双级蜗轮蜗杆减速器,具体参数见表2。

根据蜗轮蜗杆减速器的输入功率,选无刷直流电机的功率为P=60 W,转速为n=500 r/min,转动惯量为JM=1.010-5 kgm2。

2.3.2 电机轴上等效负载转动惯量计算

各传动件的转动惯量计算时,忽略蜗轮蜗杆减速器的转动惯量。根据齿轮结构可计算得到大、小齿轮的转动惯量分别为:Jz4=757.210-5 kgm2,Jz3=74.310-5 kgm2。

单块太阳能电池板宽度h1=810 mm,太阳能电池板托架总宽度h=3h1,取h=2.5 m;单块太阳能电池长度l1=1 580mm,太阳能电池板托架总长度L=2l1,取L=3.2 m。结构充实率c=1.0,太阳能电池板托架轮廓面积A1=hL,则太阳能电池板托架迎风面积A=cA1。太阳能电池板及托架总质量m=240 kg,太阳能电池板及托架相对于竖直轴的转动惯量Jt=330 kgm2。

将各传动件转动惯量、太阳能电池板及托架转动惯量折算到电动机轴上,其中,蜗轮减速器传动效率为0.336 3,轴承和齿轮传动效率为0.98,总传动效率η=0.336 30.98≈0.329 6,则等效负载转动惯量JL为:

JL=Jz3i22η+Jz4+Jti2η

代入已知数据计算,得JL=2.7810-5 kgm2。电动机的转动惯量为JM=1.010-5 kgm2,则:13<JΜJL=1.010-52.7810-5=0.3597<1[10],所以惯量匹配比较合理。

2.3.3 载荷计算

跟踪装置主要受风载荷、摩擦力、加减速时的惯性力及自身重力等作用。

(1)风载荷计算:根据风垂直作用在太阳能电池板及其托架上计算其风载荷。取风力系数C=1.3,风压高度变化系数Kh=1, 风压q=1 064.4 N/m2,则风载荷F=CKhqA=11 069.76 N。其风扭矩Μf=FL16=2213.952Νm

(2)摩擦力矩计算:太阳能电池板及其托架所受风载荷F=11 069.76 N,轴承摩擦系数μ=0.05,轴承内径(以直径最大的轴承作为参考对象)d=10010-3 m,竖直轴上轴承摩擦力矩ΜF=μFd227.67Νm,取MF=28 Nm。

(3)角加速度的计算:本文设定每次驱动的初始角速度为ω0=0,运行角速度为ω,为保证平均角速度ω¯=0.2o/s,设置每次运动时间为5 s,其中,加速时间t1=2 s,匀速运动时间t2=1 s,减速到停止时间t3=2 s,每次驱动的实际转角θ=1o。由公式θ=0.5θ¨t12+t1θ¨t2+0.5θ¨t32,得竖直轴角加速度θ¨为:

θ¨=θt1t2+0.5t12+0.5t32π180

代入已知数据计算,得θ¨=0.00291rad/s2

2.3.4 无刷直流电动机负载能力校验

无刷直流电动机轴上的总惯量J=JM+JL=1.010-5+2.7810-5=3.7810-5kgm2。启动时,电机轴上的惯性转矩ΤD=Jθ¨i=3.7810-50.002916000=0.00066Νm。电机轴上等效摩擦转矩Τf=ΜFiη=2860000.3296=0.0142Νm。有风时,太阳能电池板产生的反扭矩折算到电机轴上为ΤL=Μfiη=2213.95260000.3296=1.1195Νm。无风工作时,电动机轴上的总负载转矩为Tamin=TD+Tf=0.000 66+0.014 2=0.014 86 Nm;在最大风载荷下工作时,电动机轴上的总负载转矩为Tamax=TD+Tf+TL=0.000 66+0.014 2+1.119 5=1.134 36 Nm。电机额定转矩为Τ=9550Ρn=95500.06500=1.146Νm>Τamax,所以电机能正常工作。

2.3.5 能耗计算

跟踪装置按每天工作12 h计算,电机功率为60 W。记方位角和高度角平均每天调整次数为120次,每次调整所耗时间为5 s,日平均跟踪能耗约为0.83 W,跟踪能耗小于1 W。

各机械系统参数校验计算结果表明,太阳光线双轴跟踪装置可以满足各项设计要求,跟踪装置结构模型如图5所示。

3 结束语

本文根据跟踪装置的工作原理,进行了太阳光线智能控制跟踪装置的性能分析及参数计算,设计了太阳光线双轴跟踪系统的结构,对系统关键部件进行了计算和选型。所设计的跟踪装置考虑了经济性及适用性,提高了性价比,便于太阳能跟踪装置的推广应用。

参考文献

[1]徐东亮,任超.太阳自动跟踪装置控制系统的研究[J].机械工程与自动化,2008(2):148-150.

[2]王志辉,史红霞,任超.太阳自动跟踪装置计算机控制系统[J].机械制造,2008,46(11):20-22.

[3]孙茵茵.自适应复精度太阳跟踪平台[D].武汉:华中科技大学,2005:39-50.

[4]李建英,吕文华,贺晓雷,等.一种智能型全自动太阳跟踪装置的机械设计[J].太阳能学报,2003,24(4):330-333.

[5]万里瑞.太阳能电池自动跟踪系统的设计[J].机械工程与自动化,2008(3):161-163.

[6]成大先.机械设计手册[M].北京:化学工业出版社,2008.

[7]刘树民,宏伟.太阳能光伏发电系统的设计与施工[M].北京:科学出版社,2007.

[8]赵汝嘉.机械结构有限元分析[M].西安:西安交通大学出版社,1990.

[9]王建江,胡仁喜,刘英林,等.ANSYS 11.0结构与热力学有限元分析实例指导教程[M].北京:机械工业出版社,2008.

光线跟踪论文 第3篇

关键词:CUDA,光线跟踪,纹理内存,优化

1 引言

光线跟踪是一种图像合成技术, 利用光路可逆原理, 通过跟踪光线, 生成图像[1]。因其原理简单、实现方便, 能生成各种逼真的图像, 得到了广泛的应用。由于需要跟踪每一条从视点发出的光线, 因此涉及到大量的光线与三角片求交计算。目前的一些交互式光线跟踪都是基于超级计算机和PC机集群的。这类系统因为价格昂贵而难以推广。近年来, 随着GPU (图像处理单元) 在并行计算能力、存储容量和可编程能力方面的发展, 使得单PC机实现交互式光线跟踪成为可能[2]。

2 CUDA开发环境[3]

近年来, GPU正在以大大超过摩尔定律的速度高速发展, 其浮点计算性能强劲, 灵活性高。如图1所示, GPU专门为计算密集、高度并行的计算而设计, 因而更多晶体管被设计专用于数据计算, 而不是数据缓存和流控制, 极大地提高了计算机图形处理的速度和质量。

NVIDIA公司针对GPU的通用运算提出了CUDA (Compute Unified Device Architecture, 计算统一设备体系结构) , 可以通过片上的上百个处理器同步协作, 从而快速地解决复杂的运算问题。其基本思想是尽量开发线程级并行, 这些线程能够在硬件中被动态的调度和执行。所以, GPU只有在计算高度数据并行任务时才能发挥作用。在CUDA编程模型中, CPU作为终端, 而GPU作为协处理器或设备, 从而让GPU来运行一些能够被高度线程化的程序。在这类任务中, 需要处理大量的数据, 数据的储存形式类似于规则的网格, 对写数据的处理则基本相同。找到算法中的计算并行度后, 就能将一部分程序移植到GPU上。运行在GPU上的程序被称为核函数, 它们是整个程序中的若干基本的关键数据并行计算步骤。

3 基于CUDA的光线跟踪

3.1 KD树加速结构

KD树被认为是静态场景的最佳加速结构。本次实现中, KD树的构建在CPU上完成, 是一个自顶向下的递归的过程:先输入场景的图元集合及包围盒;然后计算每个三角片的AABB;接着使用SAH方法选择最佳分割平面进行空间分割;最后将图元对象分配给左、右子节点。这个递归过程不断进行, 直至达到规定的最大深度值, 或者在一个节点中的三角形的数量小于给定的阀值。实现中KD树遍历采用了标准的遍历方法。

3.2 光线跟踪实现过程及优化

在光线跟踪中计算光线与三角片求交时, 每条光线的运算过程相对独立, 具有天然的可并行性。Wald提出[4]:原则上, 随着执行首次光线计算的处理器的增加, 速度将随着所使用的CPU的数量呈线性增长。因此, 可利用GPU上包含多个并行处理器的特性, 大幅度提高光线跟踪运算速度。算法实现分为五步:首先生成初始光线并计算光线与场景中物体是否相交;接着判断交点对光源的可见性;然后计算该交点对象素色彩的贡献;最后计算反射光线;如不满足终止条件, 继续上述过程。

在GPU上实现的光线跟踪渲染引擎时, 由于需要大量的内存用于存储场景的三角片面空间信息数据、纹理数据和空间加速结构数据, 必须使用全局内存。考虑到纹理内存经硬件优化, 可实现高速并行访问, 且便于实现访问延迟的掩盖, 在实现中通过纹理内存的优化应用, 大幅提高核函数执行效率, 提高接近三倍, 如表1所示。

4 纹理内存优化及参数设置

4.1 纹理内存的优化使用

GPU中有全局内存、常量内存、纹理内存和共享内存。全局内存不会被缓存, 访问成本很高。灵活合理地使用内存, 可大大提高渲染的性能。

4.1.1 纹理内存优化

从纹理存储器而非全局存储器读取数据可带来多方面的性能收益, 纹理不受制于存储器访问模式的限制, 寻址计算的延迟得到很好的隐藏, 且纹理有缓存, 能改进执行随机数据访问的应用程序的性能。纹理存储器空间会被缓存, 因此纹理拾取仅需在缓存丢失时读取一次设备存储器, 否则只需读取纹理缓存即可。纹理缓存已为二维空间位置优化, 因此读取相邻纹理地址的同一个线程块的线程将实现最高性能。纹理内存访问以固定的延迟执行流式拾取, 且纹理打包的数据可通过一次操作广播给不同的变量。

纹理可以是线性存储器或CUDA数组的任意区域。在线性存储器内分配的纹理: (1) 维度仅能为1, (2) 不支持纹理过滤, (3) 仅可使用非归一化整型纹理坐标寻址。

程序中使用的场景较复杂, 数据量很大, 因此需要把很多数据放到全局内存空间里, 但全局内存访问速度较慢, 因此可以用纹理来绑定全局内存, 利用纹理内存的缓存来达到加速的目的。由光线跟踪过程可以看出, 在渲染过程中需要KD树节点, 三角片顶点和三角片索引等信息, 但是对于较为复杂的场景来说, 这些数据量巨大, 难以存储到常量内存和共享内存中。经分析, 实现中先将这些数据存放到全局内存的一维数组中, 然后通过线性纹理绑定, 把对应的存储位置绑定到纹理参考上, 最后通过纹理来读取全局内存的数据。由于纹理内存具有二级缓存, 因此对这些数据的读取数据将会大大加快。考虑到GPU内存对齐, 程序中数组元素都使用基本类型的1, 2, 4分量。在GPU上我们用int4型数组来存放KD树节点, float4型数组存放三角片顶点, int型数组存放三角片索引。表1显示了使用纹理后渲染时间大大缩短。

4.1.2 其他内存的使用

常量内存是只读内存, 光源位置、图像分辨率、纹理图片分辨率等数据在整个渲染过程中都不会改变, 存放在常量内存中。寄存器是访问速度最快, 但容量较小, 主要用于计算过程中的临时变量存储, 以便快速读取。共享内存位于芯片上, 只要访问不存在存储体冲突, 访问共享内存速度与访问寄存器一样快。实现中将程序里频繁使用的数组元素一次性读入共享内存, 然后在共享内存中进行运算。在遍历KD树时所需的栈较大, 不宜放在寄存器中, 因此, 将栈放在全局内存中。

4.2 运行参数设置

基于CUDA的光线跟踪中, 用一个线程来实现一条光线的求交计算, 如图像的分辨率为m*m, 则在一个核中就包括使用m*m个线程。每个线程块中的线程数目设置为256, 则一个核中线程块的数目为m*m/256。

5 实验结果及分析

本实验对场景Robots和Kitchen进行了渲染, 如图2所示。实验环境为:GPU卡采用Nivida公司的Geforce GTX 260, 计算能力1.3;光线遍历深度为4;图像分辨率1024*1024, 每个block中有256个线程。

6结束语

本文在实现基于CUDA的光线跟踪时, 通过利用光线跟踪的可并行性在GPU上进行了并行优化;同时通过纹理内存的优化使用, 显著提高了程序的运行效率。目前, CUDA的使用仍然有很多局限, 在一些方面仍然不如CPU上灵活, 随着GPU的快速发展, 相信CUDA的应用范围将更加广阔。

参考文献

[1]Turner Whitted.An improved illumination model for shaded display.Commun.ACM, 23 (6) :343-349, 1980

[2]Steven Parker, Michael Parker.Interactive Ray Tracing for Large Volume Visualization.IEEE transactions on computer graphics and visualization.pp:1-13.2003

[3]Cuda Programming Guide Version2.0[M], NVIDIA Corporation, 2008.6.7.

[4]Ingo Wald, Carsten Benthin, et.Interactive rendering with coherent ray tracing.Computer Graphics Forum, 20 (3) :153-164, 2001.

光线跟踪论文范文

光线跟踪论文范文(精选3篇)光线跟踪论文 第1篇关键词:离散点,光照模型,光线跟踪,求交0 引 言 在真实感图形学中, 为了模拟现实世界...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部