三维场景中由透明几何对象产生的面焦散效果的近似绘制方法

文档序号:9376903阅读:403来源:国知局
三维场景中由透明几何对象产生的面焦散效果的近似绘制方法
【技术领域】
[0001] 本发明属于三维图形绘制技术领域,涉及一种三维场景中由透明几何对象产生的 面焦散效果的近似绘制方法。
【背景技术】
[0002] 在三维场景中,光源发出的光线被光滑透明几何对象折射后,再传播到漫反射材 质的几何对象上,会在这些几何对象表面上形成明显的焦散效果。例如,桌上的蜡烛发出的 光,经放在桌上的装满水的透明玻璃杯折射后,再传播到桌面上,会在桌面上形成焦散斑。 在进行三维场景建模时,经常需要快速预览所建模型的视觉效果。如果建立的三维场景模 型包含面焦散效果,则在预览时也希望将焦散效果绘制出来。常见的光线跟踪技术,通过发 射一系列穿过虚拟相机各屏幕像素中心点的光线,并对这些光线进行跟踪操作,来计算虚 拟相机的每个像素对应的入射光亮度,从而实现对三维场景的绘制。对于包含焦散效果的 三维场景,基本的光线跟踪技术难以高效地绘制出焦散效果,通常用光子映射来绘制焦散 效果。然而,常见的基于光子映射的面焦散效果绘制技术的绘制时间比较长,利用该技术来 实现三维场景模型的面焦散效果预览,会产生显著的时间开销,影响建模工作进度。对于 大多数包含透明几何对象产生的面焦散效果的三维场景来说,面焦散效果都是由光源直接 照射产生的,换句话说,经其他非透明几何对象反射后照射到透明几何对象上的间接光照 对面焦散的贡献可以忽略。针对此种情况,本发明提供一种三维场景中由透明几何对象产 生的面焦散效果的近似绘制方法,可以明显提高透明几何对象产生的面焦散效果的绘制速 度。

【发明内容】

[0003] 本方法的目的在于,提供一种三维场景中由透明几何对象产生的面焦散效果的近 似绘制方法。
[0004] 本方法涉及一种数据结构PHOTON,数据结构PHOTON包括位置PO、法向量nv、入射 向量Vi、亮度Φ?共四个成员变量。
[0005] 本方法涉及一种数据结构SP0INT,数据结构SPOINT包括位置PO、法向量ην、漫反 射系数kd共三个成员变量。
[0006] 本方法的技术解决方案:将三维场景中的所有几何对象分为透明几何对象和非透 明几何对象;透明几何对象就是光可以透过的几何对象,非透明几何对象就是光完全不能 透过的几何对象;将所有透明几何对象用一个场景图SGT来进行组织,将所有非透明几何 对象用一个场景图SGF来进行组织;将场景图SGT和场景图SGF都保存在计算机系统的内 存中;在计算机系统中执行如下操作:
[0007] St印001 :设置列表LPH0T0N为空;根据点光源PS的光照发射强度的空间角度分 布,对点光源的光照发射方向进行重要性采样,得到N个采样方向,每个采样方向对应一条 从点光源PS发射的光线,如图1所示,从而得到N条从点光源PS发射的光线,对其中的每 条光线AOOl,做如下操作:
[0008] StepOOl-I :判断光线AOOl是否与场景图SGT中的几何对象相交,如果不相交则转 步骤St印001-9 ;
[0009] Step001-2 :计算光线AOOl与场景图SGT中的几何对象的离点光源PS最近的交点 A002 ;
[0010] Step001-3 :判断光线AOOl是否与场景图SGF中的几何对象相交,如果不相交则转 步骤St印001-6 ;
[0011] StepOOl-4 :计算光线AOOl与场景图SGF中的几何对象的离点光源PS最近的交点 A003 ;
[0012] Step001-5 :如果交点A002到点光源PS的距离大于交点A003到点光源PS的距 离,则转步骤Step001-9 ;
[0013] Step001-6 :基于光线跟踪原理,对光线AOOl在由场景图SGT和场景图SGF中的所 有几何对象组成的三维场景中的传播过程进行跟踪,依次计算光线AOOl对应的传播路径 与三维场景中的几何对象的交点A004,只要发现交点A004所在的几何对象的表面的材质 为非透明材质,就立即停止光线跟踪计算,并转步骤Step001-7 ;如果对光线AOOl对应的传 播路径跟踪完毕后,未发现所在表面的材质为非透明材质的交点,则转步骤StepOOl-9 ;
[0014] StepOOl-7 :如果交点A004所在的几何对象的表面为非漫反射材质,则转步骤 Step001-9 ;
[0015] Step001-8 :在计算机系统的内存中创建一个数据结构PHOTON类型的变量A005 ; 把变量A005的位置PO成员变量赋值为交点A004所在的位置;把变量A005的法向量nv成 员变量赋值为交点A004所在的位置的表面法向量;把变量A005的入射向量Vi成员变量赋 值为光线AOOl对应的传播路径在交点A004处的单位化后的入射方向向量;根据点光源PS 的光照发射功率及光照发射空间角度范围,计算点光源PS发射的光照经光线AOOl对应的 传播路径传输后,入射到交点A004所在的位置的光亮度A006,把变量A005的亮度Φ i成员 变量赋值为光亮度A006 ;把变量A005加入到列表LPH0T0N中;
[0016] Step001-9 :针对光线AOOl的操作结束;
[0017] St印002 :创建一个Nr行、Nc列的二维数组Arr,用于存放数据结构SPOINT类型 的变量,Nr是虚拟相机的总像素行数,Nc是虚拟相机的总像素列数,数组Arr的元素与虚 拟相机的像素--对应;创建一个Nr行、Nc列的二维数组IMAG,用于存放虚拟相机的每个 像素对应的入射光亮度值,Nr是虚拟相机的总像素行数,Nc是虚拟相机的总像素列数,数 组IMG的元素与虚拟相机的像素一一对应;把场景图SGT和场景图SGF合并为一个场景图 SGA ;在计算机系统中,利用光线跟踪技术绘制由场景图SGA中的所有几何对象组成的三维 场景A007,得到虚拟相机的每个像素 A008对应的入射光亮度值Lrt,将每个像素 A008对应 的数组IMAG的元素赋值为光亮度值Lrt ;在光线跟踪过程中,对每条相机光线A009,即从虚 拟相机位置出发穿过像素 A008的中心位置的光线,除正常的光线跟踪操作外,额外做如下 操作:
[0018] Step002-1 :如果光线A009与三维场景A007中的几何对象不相交,则转步骤 Step002-3 ;
[0019] Step002-2.计算光线A009与三维场景A007中的几何对象的离虚拟相机位置最近 的交点AOlO ;创建一个数据结构SPOINT类型的变量AOll ;将变量AOll的位置PO成员变量 赋值为交点AOlO所在的位置,将变量AOll的法向量nv成员变量赋值为交点AOlO所在的 位置的表面法向量;如果交点AOlO所在的位置对应的表面为漫反射材质,则将该表面的漫 反射系数赋值给变量AOll的漫反射系数kd成员变量,否则将变量AOll的漫反射系数kd 成员变量赋值为-1 ;将光线A009对应的像素 A008对应的数组Arr的元素赋值为变量AOll 的值;转步骤St印002-4 ;
[0020] St印002-3 :创建一个数据结构SPOINT类型的变量A012,将变量A012的位置PO 成员变量赋值为位置(〇,〇,〇),将变量A012的法向量nv成员变量赋值为向量(1,0,0),将 变量A012的漫反射系数kd成员变量赋值为-1 ;将光线A009对应的像素 A008对应的数组 Arr的元素赋值为变量A012的值;
[0021] Step002-4 :针对光线A009的操作结束;
[0022] Step003 :对列表LPH0T0N中的每个数据结构PHOTON类型的变量BOOl,做如下操 作:
[0023] Step003-1 :以变量BOOl的位置PO成员变量表示的位置为球心,确定一个半径为 R的球B002 ;判断数组Arr中是否存在满足如下条件的元素 B003 :
[0024] 条件C0ND1 :元素 B003对应的数据结构SPOINT类型的变量的漫反射系数kd成员 变量的值不等于-1,且元素 B003对应的数据结构SPOINT类型的变量的位置PO成员变量表 示的位置处于球B002内;
[0025] 如果数组Arr中不存在满足条件C0ND1的元素,转步骤Step003-2,否则对数组 Arr中满足条件C0ND1的每个元素 B005,做如下操作:
[0026] ①令D等于从元素 B005对应的数据结构SPOINT类型的变量的位置PO成员变量 表示的位置到变量B001的位置PO成员变量表示的位置的距离;如果R等于0,则令t = 2, 否则令t = D/R ;
[0027]
[0028] 令Φρ等于变量B001的亮度Φ?成员变量的值;令ω濘于变量B001的入射向量 Vi成员变量的值;令ηρ等于元素 Β005对应的数据结构SPOINT类型的变量的法向量nv成 员变量的值;令ω。为从元素 B005对应的数据结构SPOINT类型的变量的位置PO成员变量 表示的位置指向虚拟相机位置的单位向量;令P等于元素 B005对应的数据结构SPOINT类 型的变量的漫反射系数kd成员变量的值;根据漫反射定律计算从ω i表示的方向入射的、 亮度为Φρ的光经漫反射系数为P的漫反射表面反射后,沿ω ^表示的方向入射到虚拟相 机中的光亮度Lc ;令LW等于光亮度Lc与Ck之乘积;
[0029] ②把元素 Β005对应的虚拟相机像素对应的数组IMAG的元素赋值为元素 Β005对 应的虚拟相机像素对应的数组IMG的元素的值与LW之和;
[0030] ③针对元素 Β005的操作结束;
[0031] St印003-2 :针对变量Β001的操作结束;
[0032] St
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1