【技术实现步骤摘要】
本专利技术属于真实感3D虚拟场景绘制
,涉及一种加速被面光源照射的3D 虚拟场景的光线跟踪的方法。
技术介绍
真实感3D虚拟场景绘制技术在数字娱乐、影视特效、建筑CAD、广告动画等领域受 到人们的广泛关注。目前3D虚拟场景绘制技术虽然已经得到深入的研究,但是如何快速绘 制具有高度真实感的3D虚拟场景画面仍然是一个有待进一步解决的难题。传统的光栅化 技术不支持全局光照计算,使用其绘制的3D虚拟场景画面往往缺乏真实感。光线跟踪方法 能够绘制出反射、折射、阴影等效果,是一种全局光照算法。使用光线跟踪绘制得到的3D虚 拟场景画面比使用光栅化技术绘制得到的3D虚拟场景画面的真实感更强。因此光线跟踪 方法在真实感3D虚拟场景绘制中得到了广泛应用。当要求高度的真实感时,3D虚拟场景通常使用面光源而非理想的点光源进行照 射。通常使用蒙特卡洛光线跟踪方法绘制被面光源照射的3D虚拟场景。蒙特卡洛光线跟踪 方法通过对面光源进行重要性采样实现全局光照计算。对每个需要计算光照值的场景点, 该方法都需要计算大量的光源采样点的可见性,即判断场景点与光源采样点之间是否存在 遮挡。在计算每个光源采样点的可见性时,需要产生一条从场景点出发,射向该光源采样点 的可见性测试光线,并用此可见性测试光线遍历场景加速结构,以便确定是否有几何图元 与此可见性测试光线相交,进而判断场景点与光源采样点之间是否存在遮挡。由于光线跟 踪需要跟踪大量光线的多次反射(或折射)过程,并且需要计算每个反射(或折射)点的 光照值,因此上述光源采样点的可见性计算量非常大。这使得蒙特卡洛光线跟踪的计算效 率并不高,导 ...
【技术保护点】
一种加速被面光源照射的3D虚拟场景的光线跟踪的方法,其特征在于,所需的设备及实现步骤如下:所需设备:主机系统(101)和GPU计算集群(102);主机系统(101)包括CPU(103)、内存(104)和磁盘(105);实现步骤:本方法(010)部分,得到面光源照射到的几何面片的深度数据,具体步骤如下:步骤(S011):将3D虚拟场景模型数据(A001)从磁盘(105)加载到内存(104)中;步骤(S012):在CPU(103)上计算面光源轮廓线(201)的外切矩形(202);步骤(S013):在外切矩形(202)内均匀地选取m行、n列光源采样点,得到一个二维采样点阵列(A002),将其存放在内存(104)中;步骤(S014):在内存(104)中创建一个m行、n列的掩模矩阵M(A003),掩模矩阵M(A003)中的各个元素与二维采样点阵列(A002)中的各个光源采样点一一对应;掩模矩阵M(A003)的每个元素包含一个标识变量(301)(变量名为tag)、一个深度图指针变量(302)(变量名为depthMapPtr)和一个坐标系变换矩阵变量(303)(变量名为transformMatrix ...
【技术特征摘要】
一种加速被面光源照射的3D虚拟场景的光线跟踪的方法,其特征在于,所需的设备及实现步骤如下所需设备主机系统(101)和GPU计算集群(102);主机系统(101)包括CPU(103)、内存(104)和磁盘(105);实现步骤本方法(010)部分,得到面光源照射到的几何面片的深度数据,具体步骤如下步骤(S011)将3D虚拟场景模型数据(A001)从磁盘(105)加载到内存(104)中;步骤(S012)在CPU(103)上计算面光源轮廓线(201)的外切矩形(202);步骤(S013)在外切矩形(202)内均匀地选取m行、n列光源采样点,得到一个二维采样点阵列(A002),将其存放在内存(104)中;步骤(S014)在内存(104)中创建一个m行、n列的掩模矩阵M(A003),掩模矩阵M(A003)中的各个元素与二维采样点阵列(A002)中的各个光源采样点一一对应;掩模矩阵M(A003)的每个元素包含一个标识变量(301)(变量名为tag)、一个深度图指针变量(302)(变量名为depthMapPtr)和一个坐标系变换矩阵变量(303)(变量名为transformMatrix);将掩模矩阵M(A003)的每个元素包含的标识变量(301)设置为0;步骤(S015)任意选取一个与面光源平面平行的向量作为U方向向量(A004);步骤(S016)把3D虚拟场景模型数据(A001)送入GPU计算集群(102)的Global Memory中;步骤(S017)对二维采样点阵列(A002)中的每个光源采样点Sij(下标i为光源采样点Sij在二维采样点阵列(A002)中的行号,下标j为光源采样点Sij在二维采样点阵列(A002)中的列号),判断光源采样点Sij是否在面光源轮廓线(201)之内,如果光源采样点Sij在面光源轮廓线(201)之内,则第一,将掩模矩阵M(A003)的第i行、j列的元素的标识变量(301)设置为1;第二,以光源采样点Sij为虚拟相机视点,以面光源平面法向量为虚拟相机视轴正方向(面光源平面法向量与面光源的朝向相同),以U方向向量(A004)为虚拟相机向上方向向量,根据3D虚拟场景与面光源的位置关系设置合适的虚拟相机视场角(A005),根据3D虚拟场景的复杂程度设置合适的虚拟相机分辨率(A006),读取存储于GPU计算集群(102)的Global Memory中的3D虚拟场景模型数据(A001),调用光栅化图形API在GPU计算集群(102)上绘制3D虚拟场景,记录每个像素的深度值,从而得到以光源采样点Sij为虚拟相机视点的深度图(A007);第三,把深度图(A007)传回内存(104),并将深度图(A007)的内存首地址赋值给掩模矩阵M(A003)的第i行、j列的元素的深度图指针变量(302);本方法的(020)部分,根据二维采样点阵列(A002)中的每个光源采样点的位置及面光源平面法向量,计算从世界坐标系到以各光源采样点为原点的光源采样点坐标系(B001)的变换矩阵,具体步骤如下步骤(S021)选取面光源平面法向量作为N方向向量(B002),定义V方向向量(B003)为N方向向量(B002)与U方向向量(A004)的叉乘;步骤(S022)将U方向向量(A004)、N方向向量(B002)和V方向向量(B003)进行归一化,得到归一化的U方向向量(B004)、归一化的N方向向量(B005)和归一化的V方向向量(B006);步骤(S023)对于掩模矩阵M(A003)中的每个元素(B007),判断元素(B007)的标识变量(301)是否为1,如果为1,则先计算元素(B007)所在的行号i和列号j,再计算二维采样点阵列(A002)中第i行、j列光源采样点Sij在世界坐标系下的坐标Wij(B008),然后按如下公式计算变换矩阵Tij其中Ux、Uy、Uz分别为归一化的U方向向量(B004)的三个分量,Vx、Vy、Vz分别为归一化的N方向向量(B005)的三个分量,Nx、Ny、Nz分别为归一化的V方向向量(B006)的三个分量,最后将Tij赋值给元素(B007)的坐标系变换矩阵变量(303);本方法的(030)部分,在光线跟踪中利用本方法(010)部分计算出的深度图(A007)来加速绘制被面...
【专利技术属性】
技术研发人员:陈纯毅,杨华民,范静涛,丁莹,冯欣,底晓强,韩成,陈占芳,张育力,曲福恒,权巍,从立钢,
申请(专利权)人:长春理工大学,
类型:发明
国别省市:82[]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。