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

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

Info

Publication number
CN105096371A
CN105096371A CN201510425208.2A CN201510425208A CN105096371A CN 105096371 A CN105096371 A CN 105096371A CN 201510425208 A CN201510425208 A CN 201510425208A CN 105096371 A CN105096371 A CN 105096371A
Authority
CN
China
Prior art keywords
light
variable
variables
step001
intersection point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510425208.2A
Other languages
English (en)
Other versions
CN105096371B (zh
Inventor
陈纯毅
杨华民
李华
蒋振刚
曲福恒
李岩芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changchun University of Science and Technology
Original Assignee
Changchun University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Changchun University of Science and Technology filed Critical Changchun University of Science and Technology
Priority to CN201510425208.2A priority Critical patent/CN105096371B/zh
Publication of CN105096371A publication Critical patent/CN105096371A/zh
Application granted granted Critical
Publication of CN105096371B publication Critical patent/CN105096371B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开一种三维场景中由透明几何对象产生的面焦散效果的近似绘制方法。本方法将三维场景中的几何对象分为透明几何对象和非透明几何对象,分别用不同的场景图进行组织;通过先测试光源采样光线是否与透明几何对象相交,来减少对光源采样光线进行处理操作的计算量。对于由透明几何对象被点光源直接照射而产生的面焦散效果,利用本方法可以明显提高三维场景面焦散效果的绘制速度。

Description

三维场景中由透明几何对象产生的面焦散效果的近似绘制方法
技术领域
本发明属于三维图形绘制技术领域,涉及一种三维场景中由透明几何对象产生的面焦散效果的近似绘制方法。
背景技术
在三维场景中,光源发出的光线被光滑透明几何对象折射后,再传播到漫反射材质的几何对象上,会在这些几何对象表面上形成明显的焦散效果。例如,桌上的蜡烛发出的光,经放在桌上的装满水的透明玻璃杯折射后,再传播到桌面上,会在桌面上形成焦散斑。在进行三维场景建模时,经常需要快速预览所建模型的视觉效果。如果建立的三维场景模型包含面焦散效果,则在预览时也希望将焦散效果绘制出来。常见的光线跟踪技术,通过发射一系列穿过虚拟相机各屏幕像素中心点的光线,并对这些光线进行跟踪操作,来计算虚拟相机的每个像素对应的入射光亮度,从而实现对三维场景的绘制。对于包含焦散效果的三维场景,基本的光线跟踪技术难以高效地绘制出焦散效果,通常用光子映射来绘制焦散效果。然而,常见的基于光子映射的面焦散效果绘制技术的绘制时间比较长,利用该技术来实现三维场景模型的面焦散效果预览,会产生显著的时间开销,影响建模工作进度。对于大多数包含透明几何对象产生的面焦散效果的三维场景来说,面焦散效果都是由光源直接照射产生的,换句话说,经其他非透明几何对象反射后照射到透明几何对象上的间接光照对面焦散的贡献可以忽略。针对此种情况,本发明提供一种三维场景中由透明几何对象产生的面焦散效果的近似绘制方法,可以明显提高透明几何对象产生的面焦散效果的绘制速度。
发明内容
本方法的目的在于,提供一种三维场景中由透明几何对象产生的面焦散效果的近似绘制方法。
本方法涉及一种数据结构PHOTON,数据结构PHOTON包括位置P0、法向量nv、入射向量Vi、亮度Φi共四个成员变量。
本方法涉及一种数据结构SPOINT,数据结构SPOINT包括位置P0、法向量nv、漫反射系数kd共三个成员变量。
本方法的技术解决方案:将三维场景中的所有几何对象分为透明几何对象和非透明几何对象;透明几何对象就是光可以透过的几何对象,非透明几何对象就是光完全不能透过的几何对象;将所有透明几何对象用一个场景图SGT来进行组织,将所有非透明几何对象用一个场景图SGF来进行组织;将场景图SGT和场景图SGF都保存在计算机系统的内存中;在计算机系统中执行如下操作:
Step001:设置列表LPHOTON为空;根据点光源PS的光照发射强度的空间角度分布,对点光源的光照发射方向进行重要性采样,得到N个采样方向,每个采样方向对应一条从点光源PS发射的光线,如图1所示,从而得到N条从点光源PS发射的光线,对其中的每条光线A001,做如下操作:
Step001-1:判断光线A001是否与场景图SGT中的几何对象相交,如果不相交则转步骤Step001-9;
Step001-2:计算光线A001与场景图SGT中的几何对象的离点光源PS最近的交点A002;
Step001-3:判断光线A001是否与场景图SGF中的几何对象相交,如果不相交则转步骤Step001-6;
Step001-4:计算光线A001与场景图SGF中的几何对象的离点光源PS最近的交点A003;
Step001-5:如果交点A002到点光源PS的距离大于交点A003到点光源PS的距离,则转步骤Step001-9;
Step001-6:基于光线跟踪原理,对光线A001在由场景图SGT和场景图SGF中的所有几何对象组成的三维场景中的传播过程进行跟踪,依次计算光线A001对应的传播路径与三维场景中的几何对象的交点A004,只要发现交点A004所在的几何对象的表面的材质为非透明材质,就立即停止光线跟踪计算,并转步骤Step001-7;如果对光线A001对应的传播路径跟踪完毕后,未发现所在表面的材质为非透明材质的交点,则转步骤Step001-9;
Step001-7:如果交点A004所在的几何对象的表面为非漫反射材质,则转步骤Step001-9;
Step001-8:在计算机系统的内存中创建一个数据结构PHOTON类型的变量A005;把变量A005的位置P0成员变量赋值为交点A004所在的位置;把变量A005的法向量nv成员变量赋值为交点A004所在的位置的表面法向量;把变量A005的入射向量Vi成员变量赋值为光线A001对应的传播路径在交点A004处的单位化后的入射方向向量;根据点光源PS的光照发射功率及光照发射空间角度范围,计算点光源PS发射的光照经光线A001对应的传播路径传输后,入射到交点A004所在的位置的光亮度A006,把变量A005的亮度Φi成员变量赋值为光亮度A006;把变量A005加入到列表LPHOTON中;
Step001-9:针对光线A001的操作结束;
Step002:创建一个Nr行、Nc列的二维数组Arr,用于存放数据结构SPOINT类型的变量,Nr是虚拟相机的总像素行数,Nc是虚拟相机的总像素列数,数组Arr的元素与虚拟相机的像素一一对应;创建一个Nr行、Nc列的二维数组IMAG,用于存放虚拟相机的每个像素对应的入射光亮度值,Nr是虚拟相机的总像素行数,Nc是虚拟相机的总像素列数,数组IMAG的元素与虚拟相机的像素一一对应;把场景图SGT和场景图SGF合并为一个场景图SGA;在计算机系统中,利用光线跟踪技术绘制由场景图SGA中的所有几何对象组成的三维场景A007,得到虚拟相机的每个像素A008对应的入射光亮度值Lrt,将每个像素A008对应的数组IMAG的元素赋值为光亮度值Lrt;在光线跟踪过程中,对每条相机光线A009,即从虚拟相机位置出发穿过像素A008的中心位置的光线,除正常的光线跟踪操作外,额外做如下操作:
Step002-1:如果光线A009与三维场景A007中的几何对象不相交,则转步骤Step002-3;
Step002-2.计算光线A009与三维场景A007中的几何对象的离虚拟相机位置最近的交点A010;创建一个数据结构SPOINT类型的变量A011;将变量A011的位置P0成员变量赋值为交点A010所在的位置,将变量A011的法向量nv成员变量赋值为交点A010所在的位置的表面法向量;如果交点A010所在的位置对应的表面为漫反射材质,则将该表面的漫反射系数赋值给变量A011的漫反射系数kd成员变量,否则将变量A011的漫反射系数kd成员变量赋值为-1;将光线A009对应的像素A008对应的数组Arr的元素赋值为变量A011的值;转步骤Step002-4;
Step002-3:创建一个数据结构SPOINT类型的变量A012,将变量A012的位置P0成员变量赋值为位置(0,0,0),将变量A012的法向量nv成员变量赋值为向量(1,0,0),将变量A012的漫反射系数kd成员变量赋值为-1;将光线A009对应的像素A008对应的数组Arr的元素赋值为变量A012的值;
Step002-4:针对光线A009的操作结束;
Step003:对列表LPHOTON中的每个数据结构PHOTON类型的变量B001,做如下操作:
Step003-1:以变量B001的位置P0成员变量表示的位置为球心,确定一个半径为R的球B002;判断数组Arr中是否存在满足如下条件的元素B003:
条件COND1:元素B003对应的数据结构SPOINT类型的变量的漫反射系数kd成员变量的值不等于-1,且元素B003对应的数据结构SPOINT类型的变量的位置P0成员变量表示的位置处于球B002内;
如果数组Arr中不存在满足条件COND1的元素,转步骤Step003-2,否则对数组Arr中满足条件COND1的每个元素B005,做如下操作:
①令D等于从元素B005对应的数据结构SPOINT类型的变量的位置P0成员变量表示的位置到变量B001的位置P0成员变量表示的位置的距离;如果R等于0,则令t=2,否则令t=D/R;
C κ = exp ( - 3 t 2 ) , 0 ≤ t ≤ 1 0 , t > 1 ;
令Φp等于变量B001的亮度Φi成员变量的值;令ωi等于变量B001的入射向量Vi成员变量的值;令np等于元素B005对应的数据结构SPOINT类型的变量的法向量nv成员变量的值;令ωo为从元素B005对应的数据结构SPOINT类型的变量的位置P0成员变量表示的位置指向虚拟相机位置的单位向量;令ρ等于元素B005对应的数据结构SPOINT类型的变量的漫反射系数kd成员变量的值;根据漫反射定律计算从ωi表示的方向入射的、亮度为Φp的光经漫反射系数为ρ的漫反射表面反射后,沿ωo表示的方向入射到虚拟相机中的光亮度Lc;令LW等于光亮度Lc与Cκ之乘积;
②把元素B005对应的虚拟相机像素对应的数组IMAG的元素赋值为元素B005对应的虚拟相机像素对应的数组IMAG的元素的值与LW之和;
③针对元素B005的操作结束;
Step003-2:针对变量B001的操作结束;
Step004:把数组IMAG中保存的光亮度值转换成虚拟相机像素的颜色值,并以图像文件的形式输出到计算机系统的磁盘中。
有益效果
本发明提供了一种三维场景中由透明几何对象产生的面焦散效果的近似绘制方法。本方法将三维场景中的几何对象分为透明几何对象和非透明几何对象,分别用不同的场景图进行组织;对每条光源采样光线,只有在与透明几何对象相交的情况下,才进一步地判断是否与非透明几何对象相交;只有在光源采样光线不与非透明几何对象相交或者光源采样光线与非透明几何对象的交点到光源的距离大于光源采样光线与透明几何对象的交点到光源的距离时,才对光源采样光线作进一步处理;对于只包含少量透明几何对象的三维场景,这可以显著减少对光源采样光线的操作处理时间,因此提高了三维场景中的透明几何对象产生的面焦散效果的绘制效率。
附图说明
图1为点光源的光照发射方向采样示意图。
具体实施方式
为了使本方法的特征和优点更加清楚明白,下面结合具体实施例对本方法作进一步的描述。在本实施例中,考虑如下三维场景:三维场景包含一张铺了桌布的桌子,桌面上放着一份报纸,报纸上放着一个玻璃小雕像,雕像放在报纸中间,雕像占据的桌面面积远比报纸占据的桌面面积小;一个点光源PS从玻璃雕像的右侧上方照射三维场景,光线穿过玻璃雕像后在玻璃雕像左侧的报纸上形成面焦散效果;玻璃雕像的材质是镜面透明材质;三维场景中除了玻璃雕像外,其他几何对象都是漫反射非透明材质。计算机系统的CPU选择Intel(R)Xeon(R)CPUE3-1225v33.20GHz,内存选择金士顿8GBDDR31333,硬盘选择BuffaloHD-CE1.5TU2;计算机操作系统选用Windows7,软件编程工具选用VC++2010。
本方法涉及一种数据结构PHOTON,数据结构PHOTON包括位置P0、法向量nv、入射向量Vi、亮度Φi共四个成员变量。
本方法涉及一种数据结构SPOINT,数据结构SPOINT包括位置P0、法向量nv、漫反射系数kd共三个成员变量。
本方法的技术解决方案:将三维场景中的所有几何对象分为透明几何对象和非透明几何对象;透明几何对象就是光可以透过的几何对象,非透明几何对象就是光完全不能透过的几何对象;将所有透明几何对象用一个场景图SGT来进行组织,将所有非透明几何对象用一个场景图SGF来进行组织;将场景图SGT和场景图SGF都保存在计算机系统的内存中;在计算机系统中执行如下操作:
Step001:设置列表LPHOTON为空;根据点光源PS的光照发射强度的空间角度分布,对点光源的光照发射方向进行重要性采样,得到N个采样方向,每个采样方向对应一条从点光源PS发射的光线,从而得到N条从点光源PS发射的光线,对其中的每条光线A001,做如下操作:
Step001-1:判断光线A001是否与场景图SGT中的几何对象相交,如果不相交则转步骤Step001-9;
Step001-2:计算光线A001与场景图SGT中的几何对象的离点光源PS最近的交点A002;
Step001-3:判断光线A001是否与场景图SGF中的几何对象相交,如果不相交则转步骤Step001-6;
Step001-4:计算光线A001与场景图SGF中的几何对象的离点光源PS最近的交点A003;
Step001-5:如果交点A002到点光源PS的距离大于交点A003到点光源PS的距离,则转步骤Step001-9;
Step001-6:基于光线跟踪原理,对光线A001在由场景图SGT和场景图SGF中的所有几何对象组成的三维场景中的传播过程进行跟踪,依次计算光线A001对应的传播路径与三维场景中的几何对象的交点A004,只要发现交点A004所在的几何对象的表面的材质为非透明材质,就立即停止光线跟踪计算,并转步骤Step001-7;如果对光线A001对应的传播路径跟踪完毕后,未发现所在表面的材质为非透明材质的交点,则转步骤Step001-9;
Step001-7:如果交点A004所在的几何对象的表面为非漫反射材质,则转步骤Step001-9;
Step001-8:在计算机系统的内存中创建一个数据结构PHOTON类型的变量A005;把变量A005的位置P0成员变量赋值为交点A004所在的位置;把变量A005的法向量nv成员变量赋值为交点A004所在的位置的表面法向量;把变量A005的入射向量Vi成员变量赋值为光线A001对应的传播路径在交点A004处的单位化后的入射方向向量;根据点光源PS的光照发射功率及光照发射空间角度范围,计算点光源PS发射的光照经光线A001对应的传播路径传输后,入射到交点A004所在的位置的光亮度A006,把变量A005的亮度Φi成员变量赋值为光亮度A006;把变量A005加入到列表LPHOTON中;
Step001-9:针对光线A001的操作结束;
Step002:创建一个Nr行、Nc列的二维数组Arr,用于存放数据结构SPOINT类型的变量,Nr是虚拟相机的总像素行数,Nc是虚拟相机的总像素列数,数组Arr的元素与虚拟相机的像素一一对应;创建一个Nr行、Nc列的二维数组IMAG,用于存放虚拟相机的每个像素对应的入射光亮度值,Nr是虚拟相机的总像素行数,Nc是虚拟相机的总像素列数,数组IMAG的元素与虚拟相机的像素一一对应;把场景图SGT和场景图SGF合并为一个场景图SGA;在计算机系统中,利用光线跟踪技术绘制由场景图SGA中的所有几何对象组成的三维场景A007,得到虚拟相机的每个像素A008对应的入射光亮度值Lrt,将每个像素A008对应的数组IMAG的元素赋值为光亮度值Lrt;在光线跟踪过程中,对每条相机光线A009,即从虚拟相机位置出发穿过像素A008的中心位置的光线,除正常的光线跟踪操作外,额外做如下操作:
Step002-1:如果光线A009与三维场景A007中的几何对象不相交,则转步骤Step002-3;
Step002-2:计算光线A009与三维场景A007中的几何对象的离虚拟相机位置最近的交点A010;创建一个数据结构SPOINT类型的变量A011;将变量A011的位置P0成员变量赋值为交点A010所在的位置,将变量A011的法向量nv成员变量赋值为交点A010所在的位置的表面法向量;如果交点A010所在的位置对应的表面为漫反射材质,则将该表面的漫反射系数赋值给变量A011的漫反射系数kd成员变量,否则将变量A011的漫反射系数kd成员变量赋值为-1;将光线A009对应的像素A008对应的数组Arr的元素赋值为变量A011的值;转步骤Step002-4;
Step002-3:创建一个数据结构SPOINT类型的变量A012,将变量A012的位置P0成员变量赋值为位置(0,0,0),将变量A012的法向量nv成员变量赋值为向量(1,0,0),将变量A012的漫反射系数kd成员变量赋值为-1;将光线A009对应的像素A008对应的数组Arr的元素赋值为变量A012的值;
Step002-4:针对光线A009的操作结束;
Step003:对列表LPHOTON中的每个数据结构PHOTON类型的变量B001,做如下操作:
Step003-1:以变量B001的位置P0成员变量表示的位置为球心,确定一个半径为R的球B002;判断数组Arr中是否存在满足如下条件的元素B003:
条件COND1:元素B003对应的数据结构SPOINT类型的变量的漫反射系数kd成员变量的值不等于-1,且元素B003对应的数据结构SPOINT类型的变量的位置P0成员变量表示的位置处于球B002内;
如果数组Arr中不存在满足条件COND1的元素,转步骤Step003-2,否则对数组Arr中满足条件COND1的每个元素B005,做如下操作:
①令D等于从元素B005对应的数据结构SPOINT类型的变量的位置P0成员变量表示的位置到变量B001的位置P0成员变量表示的位置的距离;如果R等于0,则令t=2,否则令t=D/R;
C κ = exp ( - 3 t 2 ) , 0 ≤ t ≤ 1 0 , t > 1 ;
令Φp等于变量B001的亮度Φi成员变量的值;令ωi等于变量B001的入射向量Vi成员变量的值;令np等于元素B005对应的数据结构SPOINT类型的变量的法向量nv成员变量的值;令ωo为从元素B005对应的数据结构SPOINT类型的变量的位置P0成员变量表示的位置指向虚拟相机位置的单位向量;令ρ等于元素B005对应的数据结构SPOINT类型的变量的漫反射系数kd成员变量的值;根据漫反射定律计算从ωi表示的方向入射的、亮度为Φp的光经漫反射系数为ρ的漫反射表面反射后,沿ωo表示的方向入射到虚拟相机中的光亮度Lc;令LW等于光亮度Lc与Cκ之乘积;
②把元素B005对应的虚拟相机像素对应的数组IMAG的元素赋值为元素B005对应的虚拟相机像素对应的数组IMAG的元素的值与LW之和;
③针对元素B005的操作结束;
Step003-2:针对变量B001的操作结束;
Step004:把数组IMAG中保存的光亮度值转换成虚拟相机像素的颜色值,并以图像文件的形式输出到计算机系统的磁盘中。
在本实施例中,步骤Step001中的采样方向数N设置为102400;步骤Step003-1中的半径R设置为4×dis;其中dis通过以下方法确定:在执行完步骤Step002及其子步骤Step002-1至Step002-4之后,在执行步骤Step003之前,执行如下操作:
Step101:令SUM=0,Counter=0;对二维数组Arr中的每个元素C001,做如下操作:
如果元素C001对应的数据结构SPOINT类型的变量的漫反射系数kd成员变量的值不等于-1,则计算元素C001对应的数据结构SPOINT类型的变量的位置P0成员变量表示的位置到点光源PS的距离DPS,将距离DPS与SUM之和赋值给SUM,令Counter=Counter+1;
Step102:如果Counter等于0,则令dis=0,否则令dis=(SUM/Counter)×tan(θh/Nc),其中θh表示虚拟相机的水平视场角,Nc表示虚拟相机的总像素列数。

Claims (1)

1.三维场景中由透明几何对象产生的面焦散效果的近似绘制方法,其特征在于,技术解决方案和所需的实现步骤如下:
本方法涉及一种数据结构PHOTON,数据结构PHOTON包括位置P0、法向量nv、入射向量Vi、亮度Φi共四个成员变量;本方法涉及一种数据结构SPOINT,数据结构SPOINT包括位置P0、法向量nv、漫反射系数kd共三个成员变量;本方法的技术解决方案:将三维场景中的所有几何对象分为透明几何对象和非透明几何对象;透明几何对象就是光可以透过的几何对象,非透明几何对象就是光完全不能透过的几何对象;将所有透明几何对象用一个场景图SGT来进行组织,将所有非透明几何对象用一个场景图SGF来进行组织;将场景图SGT和场景图SGF都保存在计算机系统的内存中;在计算机系统中执行如下操作:
Step001:设置列表LPHOTON为空;根据点光源PS的光照发射强度的空间角度分布,对点光源的光照发射方向进行重要性采样,得到N个采样方向,每个采样方向对应一条从点光源PS发射的光线,从而得到N条从点光源PS发射的光线,对其中的每条光线A001,做如下操作:
Step001-1:判断光线A001是否与场景图SGT中的几何对象相交,如果不相交则转步骤Step001-9;
Step001-2:计算光线A001与场景图SGT中的几何对象的离点光源PS最近的交点A002;
Step001-3:判断光线A001是否与场景图SGF中的几何对象相交,如果不相交则转步骤Step001-6;
Step001-4:计算光线A001与场景图SGF中的几何对象的离点光源PS最近的交点A003;
Step001-5:如果交点A002到点光源PS的距离大于交点A003到点光源PS的距离,则转步骤Step001-9;
Step001-6:基于光线跟踪原理,对光线A001在由场景图SGT和场景图SGF中的所有几何对象组成的三维场景中的传播过程进行跟踪,依次计算光线A001对应的传播路径与三维场景中的几何对象的交点A004,只要发现交点A004所在的几何对象的表面的材质为非透明材质,就立即停止光线跟踪计算,并转步骤Step001-7;如果对光线A001对应的传播路径跟踪完毕后,未发现所在表面的材质为非透明材质的交点,则转步骤Step001-9;
Step001-7:如果交点A004所在的几何对象的表面为非漫反射材质,则转步骤Step001-9;
Step001-8:在计算机系统的内存中创建一个数据结构PHOTON类型的变量A005;把变量A005的位置P0成员变量赋值为交点A004所在的位置;把变量A005的法向量nv成员变量赋值为交点A004所在的位置的表面法向量;把变量A005的入射向量Vi成员变量赋值为光线A001对应的传播路径在交点A004处的单位化后的入射方向向量;根据点光源PS的光照发射功率及光照发射空间角度范围,计算点光源PS发射的光照经光线A001对应的传播路径传输后,入射到交点A004所在的位置的光亮度A006,把变量A005的亮度Φi成员变量赋值为光亮度A006;把变量A005加入到列表LPHOTON中;
Step001-9:针对光线A001的操作结束;
Step002:创建一个Nr行、Nc列的二维数组Arr,用于存放数据结构SPOINT类型的变量,Nr是虚拟相机的总像素行数,Nc是虚拟相机的总像素列数,数组Arr的元素与虚拟相机的像素一一对应;创建一个Nr行、Nc列的二维数组IMAG,用于存放虚拟相机的每个像素对应的入射光亮度值,Nr是虚拟相机的总像素行数,Nc是虚拟相机的总像素列数,数组IMAG的元素与虚拟相机的像素一一对应;把场景图SGT和场景图SGF合并为一个场景图SGA;在计算机系统中,利用光线跟踪技术绘制由场景图SGA中的所有几何对象组成的三维场景A007,得到虚拟相机的每个像素A008对应的入射光亮度值Lrt,将每个像素A008对应的数组IMAG的元素赋值为光亮度值Lrt;在光线跟踪过程中,对每条相机光线A009,即从虚拟相机位置出发穿过像素A008的中心位置的光线,除正常的光线跟踪操作外,额外做如下操作:
Step002-1:如果光线A009与三维场景A007中的几何对象不相交,则转步骤Step002-3;
Step002-2:计算光线A009与三维场景A007中的几何对象的离虚拟相机位置最近的交点A010;创建一个数据结构SPOINT类型的变量A011;将变量A011的位置P0成员变量赋值为交点A010所在的位置,将变量A011的法向量nv成员变量赋值为交点A010所在的位置的表面法向量;如果交点A010所在的位置对应的表面为漫反射材质,则将该表面的漫反射系数赋值给变量A011的漫反射系数kd成员变量,否则将变量A011的漫反射系数kd成员变量赋值为-1;将光线A009对应的像素A008对应的数组Arr的元素赋值为变量A011的值;转步骤Step002-4;
Step002-3:创建一个数据结构SPOINT类型的变量A012,将变量A012的位置P0成员变量赋值为位置(0,0,0),将变量A012的法向量nv成员变量赋值为向量(1,0,0),将变量A012的漫反射系数kd成员变量赋值为-1;将光线A009对应的像素A008对应的数组Arr的元素赋值为变量A012的值;
Step002-4:针对光线A009的操作结束;
Step003:对列表LPHOTON中的每个数据结构PHOTON类型的变量B001,做如下操作:
Step003-1:以变量B001的位置P0成员变量表示的位置为球心,确定一个半径为R的球B002;判断数组Arr中是否存在满足如下条件的元素B003:
条件COND1:元素B003对应的数据结构SPOINT类型的变量的漫反射系数kd成员变量的值不等于-1,且元素B003对应的数据结构SPOINT类型的变量的位置P0成员变量表示的位置处于球B002内;
如果数组Arr中不存在满足条件COND1的元素,转步骤Step003-2,否则对数组Arr中满足条件COND1的每个元素B005,做如下操作:
①令D等于从元素B005对应的数据结构SPOINT类型的变量的位置P0成员变量表示的位置到变量B001的位置P0成员变量表示的位置的距离;如果R等于0,则令t=2,否则令t=D/R;
C κ = exp ( - 3 t 2 ) , 0 ≤ t ≤ 1 0 , t > 1 ;
令Φp等于变量B001的亮度Φi成员变量的值;令ωi等于变量B001的入射向量Vi成员变量的值;令np等于元素B005对应的数据结构SPOINT类型的变量的法向量nv成员变量的值;令ωo为从元素B005对应的数据结构SPOINT类型的变量的位置P0成员变量表示的位置指向虚拟相机位置的单位向量;令ρ等于元素B005对应的数据结构SPOINT类型的变量的漫反射系数kd成员变量的值;根据漫反射定律计算从ωi表示的方向入射的、亮度为Φp的光经漫反射系数为ρ的漫反射表面反射后,沿ωo表示的方向入射到虚拟相机中的光亮度Lc;令LW等于光亮度Lc与Cκ之乘积;
②把元素B005对应的虚拟相机像素对应的数组IMAG的元素赋值为元素B005对应的虚拟相机像素对应的数组IMAG的元素的值与LW之和;
③针对元素B005的操作结束;
Step003-2:针对变量B001的操作结束;
Step004:把数组IMAG中保存的光亮度值转换成虚拟相机像素的颜色值,并以图像文件的形式输出到计算机系统的磁盘中。
CN201510425208.2A 2015-07-14 2015-07-14 三维场景中由透明几何对象产生的面焦散效果的近似绘制方法 Active CN105096371B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510425208.2A CN105096371B (zh) 2015-07-14 2015-07-14 三维场景中由透明几何对象产生的面焦散效果的近似绘制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510425208.2A CN105096371B (zh) 2015-07-14 2015-07-14 三维场景中由透明几何对象产生的面焦散效果的近似绘制方法

Publications (2)

Publication Number Publication Date
CN105096371A true CN105096371A (zh) 2015-11-25
CN105096371B CN105096371B (zh) 2017-08-22

Family

ID=54576705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510425208.2A Active CN105096371B (zh) 2015-07-14 2015-07-14 三维场景中由透明几何对象产生的面焦散效果的近似绘制方法

Country Status (1)

Country Link
CN (1) CN105096371B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106447759A (zh) * 2016-10-19 2017-02-22 长春理工大学 利用可见性插值实现三维场景间接光照效果近似绘制的方法
CN106991717A (zh) * 2017-03-16 2017-07-28 珠海市魅族科技有限公司 一种应用于三维场景下的图像处理方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102074041A (zh) * 2010-12-21 2011-05-25 长春理工大学 一种由镜面反射产生的3d虚拟场景面焦散效果的绘制方法
CN102074038A (zh) * 2010-12-28 2011-05-25 长春理工大学 一种由光滑表面折射产生的3d虚拟场景面焦散效果的绘制方法
CN102243768A (zh) * 2011-06-17 2011-11-16 长春理工大学 一种三维虚拟场景立体画面的绘制方法
CN102298792A (zh) * 2011-08-08 2011-12-28 长春理工大学 包含由镜面反射产生的面焦散效果的3d虚拟场景的近似绘制方法
CN104008563A (zh) * 2014-06-07 2014-08-27 长春理工大学 利用虚拟点光源实现动画三维场景的全局光照绘制的方法
US9007372B2 (en) * 2012-12-26 2015-04-14 Adshir Ltd. System for primary ray shooting having geometrical stencils

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102074041A (zh) * 2010-12-21 2011-05-25 长春理工大学 一种由镜面反射产生的3d虚拟场景面焦散效果的绘制方法
CN102074038A (zh) * 2010-12-28 2011-05-25 长春理工大学 一种由光滑表面折射产生的3d虚拟场景面焦散效果的绘制方法
CN102243768A (zh) * 2011-06-17 2011-11-16 长春理工大学 一种三维虚拟场景立体画面的绘制方法
CN102298792A (zh) * 2011-08-08 2011-12-28 长春理工大学 包含由镜面反射产生的面焦散效果的3d虚拟场景的近似绘制方法
US9007372B2 (en) * 2012-12-26 2015-04-14 Adshir Ltd. System for primary ray shooting having geometrical stencils
CN104008563A (zh) * 2014-06-07 2014-08-27 长春理工大学 利用虚拟点光源实现动画三维场景的全局光照绘制的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BIAGIO COSENZA 等: "GPU Cost Estimation for Load Balancing in Parallel Ray Tracing", 《8TH INTERNATIONAL CONFERENCE ON COMPUTER GRAPHICS THEORY AND APPLICATIONS》 *
BIAGIO COSENZA 等: "On Estimating the Effectiveness of Temporal and Spatial Coherence in Parallel Ray Tracing", 《EUROGRAPHICS ITALIAN CHAPTER CONFERENCE》 *
李华 等: "动态3D虚拟场景并行化光线跟踪加速结构设计", 《长春理工大学学报(自然科学版)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106447759A (zh) * 2016-10-19 2017-02-22 长春理工大学 利用可见性插值实现三维场景间接光照效果近似绘制的方法
CN106447759B (zh) * 2016-10-19 2018-10-12 长春理工大学 利用可见性插值实现三维场景间接光照效果近似绘制的方法
CN106991717A (zh) * 2017-03-16 2017-07-28 珠海市魅族科技有限公司 一种应用于三维场景下的图像处理方法和系统

Also Published As

Publication number Publication date
CN105096371B (zh) 2017-08-22

Similar Documents

Publication Publication Date Title
CN105223212B (zh) 安检ct系统及其方法
JP5476138B2 (ja) 変化する視野に基づいてフレーム間の光線追跡のアクセラレーション・データ構造体を更新する方法
DE102019101873A1 (de) Abfragespezifische Verhaltensmodifizierung von Baumtraversierung
US20160292908A1 (en) Efficient hierarchy traversal in ray tracing applications
CN108174184A (zh) 快速集成图像生成方法及与用户交互的裸眼三维显示系统
CN103337093B (zh) 一种基于Unity3D着色器实现三维机房实时温场效果的方法
CN103500463B (zh) 一种gpu上多层形状特征融合的可视化方法
US7990380B2 (en) Diffuse photon map decomposition for parallelization of global illumination algorithm
CN107886563A (zh) 基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法
CN106776028A (zh) 一种基于gpu的光线跟踪方法
CN108205819A (zh) 用于通过复杂照明下路径追踪进行场景渲染的设备及方法
CN102074041B (zh) 一种由镜面反射产生的3d虚拟场景面焦散效果的绘制方法
CN105096371A (zh) 三维场景中由透明几何对象产生的面焦散效果的近似绘制方法
CN105447905B (zh) 基于可见性平滑滤波的三维场景近似柔和阴影绘制方法
CN110490961A (zh) 一种毛发笔刷工具及绘制毛发的方法
CN101398936A (zh) 一种双向纹理函数的压缩和合成方法
Haindl et al. BTF roller
CN103559357A (zh) 一种用于3d图学渲染加速的fpga芯片
Medici et al. Valcamonica 3.0: A new dimension in rock art recording. From tracing to Structure from Motion and Post-processing
CN106447759B (zh) 利用可见性插值实现三维场景间接光照效果近似绘制的方法
CN102074038A (zh) 一种由光滑表面折射产生的3d虚拟场景面焦散效果的绘制方法
CN103679794A (zh) 模拟三维素描铅笔画的绘制方法
CN105787493B (zh) 一种基于bim智能提取放样特征点的方法
Staderini et al. Surface sampling for optimal viewpoint generation
CN109493412A (zh) 复用场景点光源可见性的超采样光线跟踪方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant