CN104346831A - 用于近似绘制三维场景柔和阴影的方法 - Google Patents
用于近似绘制三维场景柔和阴影的方法 Download PDFInfo
- Publication number
- CN104346831A CN104346831A CN201410636705.2A CN201410636705A CN104346831A CN 104346831 A CN104346831 A CN 104346831A CN 201410636705 A CN201410636705 A CN 201410636705A CN 104346831 A CN104346831 A CN 104346831A
- Authority
- CN
- China
- Prior art keywords
- row
- array
- step002
- value
- pixel
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种用于近似绘制三维场景柔和阴影的方法。本方法通过对平面面光源的随机采样来估计可视场景区域内的平面面光源可见性,并利用空间卷积平滑去噪滤波来减小随机采样引入的平面面光源可见性噪声;利用光线投射技术,根据获得的可视场景点的平面面光源可见性数据,计算出平面面光源对可视场景点的光照贡献,以此为依据最终计算出可视场景点的颜色值,绘制出包含柔和阴影的三维场景画面。本方法能在保证三维场景画面绘制质量的同时,提高绘制速度。
Description
技术领域
本发明属于计算机三维图形绘制技术领域,涉及一种用于近似绘制三维场景柔和阴影的方法。
背景技术
阴影对三维场景画面的真实感具有重要影响。它是人们理解三维场景中几何对象之间的空间关系的重要线索。用理想的点光源照射三维场景时,几何对象之间的空间遮挡会在被遮挡的几何对象表面上形成边界清晰的硬阴影,即阴影区域和非阴影区域之间有明显的分界线。然而,现实生活中并不存在理想的点光源,大多数光源都具有一定的空间尺寸。用一个面光源照射三维场景时,几何对象之间的空间遮挡会在被遮挡的几何对象表面上形成边界模糊的柔和阴影,即阴影区域和非阴影区域之间是平滑过渡的,没有清晰的分界线。Elmar Eisemann、Ulf Assarsson、Michael Schwarz和Michael Wimmer共同编写的SiggraphAsia 2009课程讲义《Casting Shadows in Real time》对柔和阴影的绘制问题进行了讨论;通过引入一定的近似,在假设所有几何对象表面都是郎伯漫反射面的条件下,在数学上可将绘制方程中的着色计算和阴影计算进行解耦,即将绘制方程简化成着色项和阴影项之积的形式。根据Elmar Eisemann等的绘制方程简化表述,可以设计不同的技术方案来近似绘制三维场景柔和阴影;已有的基于卷积的方案和基于阴影体的方案绘制出的柔和阴影效果都很逼真。
柔和阴影绘制问题的关键在于计算三维场景的可视场景点的光源可见性。如果光源对可视场景点完全可见,则该可视场景点不在阴影区;如果光源对可视场景点完全不可见,则该可视场景点在本影区;如果光源对可视场景点部分可见,则该可视场景点在半影区。分析实际三维场景的柔和阴影可以发现,在可视场景区域内,光源可见性往往是平滑变化的,即相邻可视场景点的光源可见性存在较强的相关性。本发明将充分利用这种相关性,基于Elmar Eisemann等的绘制方程简化表述,提供一种快速近似绘制三维场景柔和阴影的方法。
对于大多数实际三维场景来说,只绘制直接光照产生的柔和阴影就可以得到足够真实的画面。事实上,间接光照产生的柔和阴影相比于直接光照产生的柔和阴影在大多数情况下都可忽略。因此,本发明将针对直接光照产生的柔和阴影绘制问题设计技术解决方案。
发明内容
本发明的目的在于提供一种用于近似绘制三维场景柔和阴影的方法。本方法要求三维场景的所有几何对象的表面都是郎伯漫反射类型的表面。如图1所示,三维场景受到一个平面面光源的照射,p1和p2是两个相邻的可视场景点,p1和p2与平面面光源之间存在部分遮挡,因此p1和p2都在半影区;如图2所示,平面面光源上的任意一点ps向平面面光源所在平面的法向量指向的半空间内的各个方向均匀地发射光照,平面面光源上的各点的发光特性相同。三维场景柔和阴影绘制的关键是,高效地计算每个可视场景点的平面面光源可见性。本方法的总体技术方案:使用光线投射技术,从视点向虚拟屏幕中的各个像素发射光线A001,判断光线A001是否与三维场景中的几何对象相交,如果光线A001与三维场景中的几何对象相交,则利用计算机系统求解交点A002处的平面面光源可见性,并计算平面面光源对交点A002的光照贡献A003,再根据光照贡献A003计算与光线A001相对应的像素的颜色值,否则将与光线A001相对应的像素的颜色值设置为背景颜色值。在光线投射过程中,平面面光源不作为几何对象处理。
本方法的第一部分在计算机系统中计算三维场景可视区域内的各个可视场景点的平面面光源可见性,并将计算结果保存在计算机系统的内存中,具体实现步骤如下:
Step001:在计算机系统的内存中创建一个M行N列的数组V,其中M为虚拟屏幕的像素总行数,N为虚拟屏幕的像素总列数;
Step002:对虚拟屏幕中的每个像素B001,做如下操作:
Step002-1:从视点发射一条穿过像素B001中心的光线B002;
Step002-2:判断光线B002是否与三维场景中的几何对象相交,如果不相交,则令vis=-1,转步骤Step002-8;
Step002-3:计算光线B002与三维场景中的几何对象之间的离视点最近的交点B003;
Step002-4:在平面面光源上任选一点ps,创建一个从点ps指向交点B003的向量Vec1;如果向量Vec1和平面面光源所在平面的法向量的夹角大于或者等于90度,令vis=0,转步骤Step002-8;
Step002-5:令SUM=0;
Step002-6:在平面面光源上,按均匀分布随机地选取NUM个采样点,NUM≥1,对每个采样点B004,做如下操作:
Step002-6-1:连接交点B003和采样点B004,得到一条线段B005;判断线段B005与三维场景中的几何对象之间是否还有除线段B005的端点外的交点,如果有,则转步骤Step002-6-3;
Step002-6-2:SUM=SUM+1;
Step002-6-3:针对采样点B004的操作结束;
Step002-7:令vis=SL×SUM/NUM,SL表示平面面光源的面积;
Step002-8:计算像素B001在虚拟屏幕中所处的行序号i和列序号j;
Step002-9:将数组V的第i行、第j列元素赋值为vis。
本方法的第二部分对本方法的第一部分产生的数组V中的数据进行滤波处理,降低随机采样引入的噪声,具体实现步骤如下:
Step101:在计算机系统的内存中创建一个M行N列的数组V2,其中M为虚拟屏幕的像素总行数,N为虚拟屏幕的像素总列数;令i=1;
Step102:令j=1;
Step103:如果i+1>M或者i-1<1或者j+1>N或者j-1<1,则将数组V2的第i行、第j列元素赋值为数组V的第i行、第j列元素的值,转步骤Step106;
Step104:如果数组V的从第i-1到i+1行、从第j-1到j+1列的9个元素中的某个元素的值为-1,则将数组V2的第i行、第j列元素赋值为数组V的第i行、第j列元素的值,转步骤Step106;
Step105:用图3所示的空间卷积模板与数组V的从第i-1到i+1行、从第j-1到j+1列的9个元素做空间卷积,即:将数组V的第i-1行、第j-1列的元素的值与c11之积赋值给S11,将数组V的第i-1行、第j列的元素的值与c12之积赋值给S12,将数组V的第i-1行、第j+1列的元素的值与c13之积赋值给S13,将数组V的第i行、第j-1列的元素的值与c21之积赋值给S21,将数组V的第i行、第j列的元素的值与c22之积赋值给S22,将数组V的第i行、第j+1列的元素的值与c23之积赋值给S23,将数组V的第i+1行、第j-1列的元素的值与c31之积赋值给S31,将数组V的第i+1行、第j列的元素的值与c32之积赋值给S32,将数组V的第i+1行、第j+1列的元素的值与c33之积赋值给S33,将数组V2的第i行、第j列元素赋值为S11+S12+S13+S21+S22+S23+S31+S32+S33;
Step106:j=j+1;如果j≤N,转步骤Step103;
Step107:i=i+1;如果i≤M,转步骤Step102;
在步骤Step105中需要用到空间卷积模板,其用来实现平滑去噪,以减小随机采样引入的噪声;图像处理技术领域中有许多不同的平滑去噪空间卷积模板可以应用在本方法中;例如,可以使用平滑去噪空间卷积模板SF,空间卷积模板SF的各个元素取值为:c11=c12=c13=c21=c22=c23=c31=c32=c33=1/9。
本方法的第三部分在本方法的前两部分产生的结果基础上,绘制包含柔和阴影的三维场景画面,具体实现步骤如下:
Step201:对虚拟屏幕中的每个像素C001,做如下操作:
Step201-1:从视点发射一条穿过像素C001中心的光线C002;
Step201-2:判断光线C002是否与三维场景中的几何对象相交,如果不相交,转步骤Step201-7;
Step201-3:计算光线C002与三维场景中的几何对象之间的离视点最近的交点C003;
Step201-4:将∫LG(po,q)dq赋值给MG,其中po表示交点C003对应的位置向量,q为平面面光源上的某点对应的位置向量,G(po,q)=cos(θ1)·cos(θ2)·|po-q|-2,θ1表示交点C003处的法向量与由交点C003指向q对应的点的向量之间的夹角,θ2表示q对应的点的法向量与由q对应的点指向交点C003的向量之间的夹角,|po-q|表示交点C003到q对应的点的距离,L表示平面面光源;可用蒙特卡洛方法计算∫LG(po,q)dq,也可用和Hanrahan发表在1993年的Siggraph会议论文集上的方法计算∫LG(po,q)dq;
Step201-5:计算像素C001在虚拟屏幕中所处的行序号i和列序号j;将MV赋值为数组V2的第i行、第j列元素的值与之积,其中为平面面光源的发射光亮度;
Step201-6:将CP赋值为MG×MV×ρ/π,其中ρ为交点C003处的反射率;根据CP的值计算像素C001的颜色值;转步骤Step201-8;
Step201-7:将像素C001的颜色值赋值为背景色;
Step201-8:针对像素C001的操作结束;
Step202:将虚拟屏幕中的所有像素的颜色值保存为图片,存放到计算机系统的磁盘文件中。
有益效果
本发明提供了一种用于近似绘制三维场景柔和阴影的方法。本方法通过对平面面光源进行随机采样来估计可视场景点的平面面光源可见性;利用在可视场景区域内,平面面光源可见性通常平滑变化的特点,通过使用空间卷积平滑降噪滤波来减小随机采样引入的噪声。利用光线投射技术,根据获得的可视场景点的平面面光源可见性数据,计算出平面面光源对可视场景点的光照贡献,进而得到可视场景点对应的虚拟屏幕的像素的颜色值。光线跟踪是在光线投射基础上的扩展。因此,本方法可以很容易地与光线跟踪相结合。本方法通过引入对可视场景区域内的平面面光源可见性的平滑滤波操作,使得可以在用较少的平面面光源采样点的条件下,得到高质量的柔和阴影绘制结果。从而能在保证绘制质量的条件下,提高绘制速度。
附图说明
图1是用平面面光源照射三维场景的示意图。图2是平面面光源上的一点及对应的法向量指向的半空间示意图。图3是空间卷积模板示意图。
具体实施方式
为了使本发明的特征和优点更加清楚明白,下面结合具体实施例对本发明作进一步的描述。
在本实施例中,计算机系统的CPU选择Intel(R)Xeon(R)CPU E3-1225 v33.20GHz,内存选择金士顿8GB DDR3 1333,磁盘选择Buffalo HD-CE 1.5 TU2;计算机操作系统选用Windows 7,软件编程工具选用VC++2010。
本发明的目的在于提供一种用于近似绘制三维场景柔和阴影的方法。本方法要求三维场景的所有几何对象的表面都是郎伯漫反射类型的表面。如图1所示,三维场景受到一个平面面光源的照射,p1和p2是两个相邻的可视场景点,p1和p2与平面面光源之间存在部分遮挡,因此p1和p2都在半影区;如图2所示,平面面光源上的任意一点ps向平面面光源所在平面的法向量指向的半空间内的各个方向均匀地发射光照,平面面光源上的各点的发光特性相同。三维场景柔和阴影绘制的关键是,高效地计算每个可视场景点的平面面光源可见性。本方法的总体技术方案:使用光线投射技术,从视点向虚拟屏幕中的各个像素发射光线A001,判断光线A001是否与三维场景中的几何对象相交,如果光线A001与三维场景中的几何对象相交,则利用计算机系统求解交点A002处的平面面光源可见性,并计算平面面光源对交点A002的光照贡献A003,再根据光照贡献A003计算与光线A001相对应的像素的颜色值,否则将与光线A001相对应的像素的颜色值设置为背景颜色值。在光线投射过程中,平面面光源不作为几何对象处理。
本方法的第一部分在计算机系统中计算三维场景可视区域内的各个可视场景点的平面面光源可见性,并将计算结果保存在计算机系统的内存中,具体实现步骤如下:
Step001:在计算机系统的内存中创建一个M行N列的数组V,其中M为虚拟屏幕的像素总行数,N为虚拟屏幕的像素总列数;
Step002:对虚拟屏幕中的每个像素B001,做如下操作:
Step002-1:从视点发射一条穿过像素B001中心的光线B002;
Step002-2:判断光线B002是否与三维场景中的几何对象相交,如果不相交,则令vis=-1,转步骤Step002-8;
Step002-3:计算光线B002与三维场景中的几何对象之间的离视点最近的交点B003;
Step002-4:在平面面光源上任选一点ps,创建一个从点ps指向交点B003的向量Vec1;如果向量Vec1和平面面光源所在平面的法向量的夹角大于或者等于90度,令vis=0,转步骤Step002-8;
Step002-5:令SUM=0;
Step002-6:在平面面光源上,按均匀分布随机地选取NUM个采样点,NUM≥1,对每个采样点B004,做如下操作:
Step002-6-1:连接交点B003和采样点B004,得到一条线段B005;判断线段B005与三维场景中的几何对象之间是否还有除线段B005的端点外的交点,如果有,则转步骤Step002-6-3;
Step002-6-2:SUM=SUM+1;
Step002-6-3:针对采样点B004的操作结束;
Step002-7:令vis=SL×SUM/NUM,SL表示平面面光源的面积;
Step002-8:计算像素B001在虚拟屏幕中所处的行序号i和列序号j;
Step002-9:将数组V的第i行、第j列元素赋值为vis。
本方法的第二部分对本方法的第一部分产生的数组V中的数据进行滤波处理,降低随机采样引入的噪声,具体实现步骤如下:
Step101:在计算机系统的内存中创建一个M行N列的数组V2,其中M为虚拟屏幕的像素总行数,N为虚拟屏幕的像素总列数;令i=1;
Step102:令j=1;
Step103:如果i+1>M或者i-1<1或者j+1>N或者j-1<1,则将数组V2的第i行、第j列元素赋值为数组V的第i行、第j列元素的值,转步骤Step106;
Step104:如果数组V的从第i-1到i+1行、从第j-1到j+1列的9个元素中的某个元素的值为-1,则将数组V2的第i行、第j列元素赋值为数组V的第i行、第j列元素的值,转步骤Step106;
Step105:用图3所示的空间卷积模板与数组V的从第i-1到i+1行、从第j-1到j+1列的9个元素做空间卷积,即:将数组V的第i-1行、第j-1列的元素的值与c11之积赋值给S11,将数组V的第i-1行、第j列的元素的值与c12之积赋值给S12,将数组V的第i-1行、第j+1列的元素的值与c13之积赋值给S13,将数组V的第i行、第j-1列的元素的值与c21之积赋值给S21,将数组V的第i行、第j列的元素的值与c22之积赋值给S22,将数组V的第i行、第j+1列的元素的值与c23之积赋值给S23,将数组V的第i+1行、第j-1列的元素的值与c31之积赋值给S31,将数组V的第i+1行、第j列的元素的值与c32之积赋值给S32,将数组V的第i+1行、第j+1列的元素的值与c33之积赋值给S33,将数组V2的第i行、第j列元素赋值为S11+S12+S13+S21+S22+S23+S31+S32+S33;
Step106:j=j+1;如果j≤N,转步骤Step103;
Step107:i=i+1;如果i≤M,转步骤Step102;
在步骤Step105中需要用到空间卷积模板,其用来实现平滑去噪,以减小随机采样引入的噪声;图像处理技术领域中有许多不同的平滑去噪空间卷积模板可以应用在本方法中;例如,可以使用平滑去噪空间卷积模板SF,空间卷积模板SF的各个元素取值为:c11=c12=c13=c21=c22=c23=c31=c32=c33=1/9。
本方法的第三部分在本方法的前两部分产生的结果基础上,绘制包含柔和阴影的三维场景画面,具体实现步骤如下:
Step201:对虚拟屏幕中的每个像素C001,做如下操作:
Step201-1:从视点发射一条穿过像素C001中心的光线C002;
Step201-2:判断光线C002是否与三维场景中的几何对象相交,如果不相交,转步骤Step201-7;
Step201-3:计算光线C002与三维场景中的几何对象之间的离视点最近的交点C003;
Step201-4:将∫LG(po,q)dq赋值给MG,其中po表示交点C003对应的位置向量,q为平面面光源上的某点对应的位置向量,G(po,q)=cos(θ1)·cos(θ2)·|po-q|-2,θ1表示交点C003处的法向量与由交点C003指向q对应的点的向量之间的夹角,θ2表示q对应的点的法向量与由q对应的点指向交点C003的向量之间的夹角,|po-q|表示交点C003到q对应的点的距离,L表示平面面光源;可用蒙特卡洛方法计算∫LG(po,q)dq,也可用和Hanrahan发表在1993年的Siggraph会议论文集上的方法计算∫LG(po,q)dq;
Step201-5:计算像素C001在虚拟屏幕中所处的行序号i和列序号j;将MV赋值为数组V2的第i行、第j列元素的值与之积,其中为平面面光源的发射光亮度;
Step201-6:将CP赋值为MG×MV×ρ/π,其中ρ为交点C003处的反射率;根据CP的值计算像素C001的颜色值;转步骤Step201-8;
Step201-7:将像素C001的颜色值赋值为背景色;
Step201-8:针对像素C001的操作结束;
Step202:将虚拟屏幕中的所有像素的颜色值保存为图片,存放到计算机系统的磁盘文件中。
本方法中的平面面光源采样点个数NUM应当大于或者等于1,一般取3~5之间的整数可绘制出较好的柔和阴影效果。在本实施例中,NUM取值为4。
Claims (1)
1.用于近似绘制三维场景柔和阴影的方法,其特征在于,所需的设备、数据结构以及实现步骤如下:
提供一种用于近似绘制三维场景柔和阴影的方法;本方法要求三维场景的所有几何对象的表面都是郎伯漫反射类型的表面;平面面光源上的任意一点ps向平面面光源所在平面的法向量指向的半空间内的各个方向均匀地发射光照,平面面光源上的各点的发光特性相同;三维场景柔和阴影绘制的关键是,高效地计算每个可视场景点的平面面光源可见性;本方法使用光线投射技术,从视点向虚拟屏幕中的各个像素发射光线A001,判断光线A001是否与三维场景中的几何对象相交,如果光线A001与三维场景中的几何对象相交,则利用计算机系统求解交点A002处的平面面光源可见性,并计算平面面光源对交点A002的光照贡献A003,再根据光照贡献A003计算与光线A001相对应的像素的颜色值,否则将与光线A001相对应的像素的颜色值设置为背景颜色值;在光线投射过程中,平面面光源不作为几何对象处理;
本方法的第一部分在计算机系统中计算三维场景可视区域内的各个可视场景点的平面面光源可见性,并将计算结果保存在计算机系统的内存中,具体实现步骤如下:
Step001:在计算机系统的内存中创建一个M行N列的数组V,其中M为虚拟屏幕的像素总行数,N为虚拟屏幕的像素总列数;
Step002:对虚拟屏幕中的每个像素B001,做如下操作:
Step002-1:从视点发射一条穿过像素B001中心的光线B002;
Step002-2:判断光线B002是否与三维场景中的几何对象相交,如果不相交,则令vis=-1,转步骤Step002-8;
Step002-3:计算光线B002与三维场景中的几何对象之间的离视点最近的交点B003;
Step002-4:在平面面光源上任选一点ps,创建一个从点ps指向交点B003的向量Vec1;如果向量Vec1和平面面光源所在平面的法向量的夹角大于或者等于90度,令vis=0,转步骤Step002-8;
Step002-5:令SUM=0;
Step002-6:在平面面光源上,按均匀分布随机地选取NUM个采样点,NUM≥1,对每个采样点B004,做如下操作:
Step002-6-1:连接交点B003和采样点B004,得到一条线段B005;判断线段B005与三维场景中的几何对象之间是否还有除线段B005的端点外的交点,如果有,则转步骤Step002-6-3;
Step002-6-2:SUM=SUM+1;
Step002-6-3:针对采样点B004的操作结束;
Step002-7:令vis=SL×SUM/NUM,SL表示平面面光源的面积;
Step002-8:计算像素B001在虚拟屏幕中所处的行序号i和列序号j;
Step002-9:将数组V的第i行、第j列元素赋值为vis;
本方法的第二部分对本方法的第一部分产生的数组V中的数据进行滤波处理,降低随机采样引入的噪声,具体实现步骤如下:
Step101:在计算机系统的内存中创建一个M行N列的数组V2,其中M为虚拟屏幕的像素总行数,N为虚拟屏幕的像素总列数;令i=1;
Step102:令j=1;
Step103:如果i+1>M或者i-1<1或者j+1>N或者j-1<1,则将数组V2的第i行、第j列元素赋值为数组V的第i行、第j列元素的值,转步骤Step106;
Step104:如果数组V的从第i-1到i+1行、从第j-1到j+1列的9个元素中的某个元素的值为-1,则将数组V2的第i行、第j列元素赋值为数组V的第i行、第j列元素的值,转步骤Step106;
Step105:用3行3列的空间卷积模板与数组V的从第i-1到i+1行、从第j-1到j+1列的9个元素做空间卷积,cmn为空间卷积模板的第m行、第n列元素,即:将数组V的第i-1行、第j-1列的元素的值与c11之积赋值给S11,将数组V的第i-1行、第j列的元素的值与c12之积赋值给S12,将数组V的第i-1行、第j+1列的元素的值与c13之积赋值给S13,将数组V的第i行、第j-1列的元素的值与c21之积赋值给S21,将数组V的第i行、第j列的元素的值与c22之积赋值给S22,将数组V的第i行、第j+1列的元素的值与c23之积赋值给S23,将数组V的第i+1行、第j-1列的元素的值与c31之积赋值给S31,将数组V的第i+1行、第j列的元素的值与c32之积赋值给S32,将数组V的第i+1行、第j+1列的元素的值与c33之积赋值给S33,将数组V2的第i行、第j列元素赋值为S11+S12+S13+S21+S22+S23+S31+S32+S33;
Step106:j=j+1;如果j≤N,转步骤Step103;
Step107:i=i+1;如果i≤M,转步骤Step102;
在步骤Step105中需要用到空间卷积模板,其用来实现平滑去噪,以减小随机采样引入的噪声;图像处理技术领域中有许多不同的平滑去噪空间卷积模板可以应用在本方法中;例如,可以使用平滑去噪空间卷积模板SF,空间卷积模板SF的各个元素取值为:c11=c12=c13=c21=c22=c23=c31=c32=c33=1/9;
本方法的第三部分在本方法的前两部分产生的结果基础上,绘制包含柔和阴影的三维场景画面,具体实现步骤如下:
Step201:对虚拟屏幕中的每个像素C001,做如下操作:
Step201-1:从视点发射一条穿过像素C001中心的光线C002;
Step201-2:判断光线C002是否与三维场景中的几何对象相交,如果不相交,转步骤Step201-7;
Step201-3:计算光线C002与三维场景中的几何对象之间的离视点最近的交点C003;
Step201-4:将∫LG(po,q)dq赋值给MG,其中po表示交点C003对应的位置向量,q为平面面光源上的某点对应的位置向量,G(po,q)=cos(θ1)·cos(θ2)·|po-q|-2,θ1表示交点C003处的法向量与由交点C003指向q对应的点的向量之间的夹角,θ2表示q对应的点的法向量与由q对应的点指向交点C003的向量之间的夹角,|po-q|表示交点C003到q对应的点的距离,L表示平面面光源;可用蒙特卡洛方法计算∫LG(po,q)dq,也可用和Hanrahan发表在1993年的Siggraph会议论文集上的方法计算∫LG(po,q)dq;
Step201-5:计算像素C001在虚拟屏幕中所处的行序号i和列序号j;将MV赋值为数组V2的第i行、第j列元素的值与之积,其中为平面面光源的发射光亮度;
Step201-6:将CP赋值为MG×MV×ρ/π,其中ρ为交点C003处的反射率;根据CP的值计算像素C001的颜色值;转步骤Step201-8;
Step201-7:将像素C001的颜色值赋值为背景色;
Step201-8:针对像素C001的操作结束;
Step202:将虚拟屏幕中的所有像素的颜色值保存为图片,存放到计算机系统的磁盘文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410636705.2A CN104346831B (zh) | 2014-11-01 | 2014-11-01 | 用于近似绘制三维场景柔和阴影的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410636705.2A CN104346831B (zh) | 2014-11-01 | 2014-11-01 | 用于近似绘制三维场景柔和阴影的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104346831A true CN104346831A (zh) | 2015-02-11 |
CN104346831B CN104346831B (zh) | 2017-02-22 |
Family
ID=52502368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410636705.2A Active CN104346831B (zh) | 2014-11-01 | 2014-11-01 | 用于近似绘制三维场景柔和阴影的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104346831B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105447905A (zh) * | 2015-11-17 | 2016-03-30 | 长春理工大学 | 基于可见性平滑滤波的三维场景近似柔和阴影光线跟踪绘制方法 |
CN106228599A (zh) * | 2016-06-24 | 2016-12-14 | 长春理工大学 | 基于两级可见性平滑滤波的近似柔和阴影绘制方法 |
CN106485778A (zh) * | 2016-10-19 | 2017-03-08 | 长春理工大学 | 利用位置敏感可见性平滑滤波实现三维场景近似柔和阴影绘制的方法 |
CN107341853A (zh) * | 2017-07-13 | 2017-11-10 | 河北中科恒运软件科技股份有限公司 | 超大虚拟场景和动态摄屏的虚实融合方法及系统 |
CN107346558A (zh) * | 2017-07-03 | 2017-11-14 | 长春理工大学 | 利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法 |
CN107909639A (zh) * | 2017-11-10 | 2018-04-13 | 长春理工大学 | 根据位置自适应控制光源可见性复用范围的3d场景绘制方法 |
US10740954B2 (en) | 2018-03-17 | 2020-08-11 | Nvidia Corporation | Shadow denoising in ray-tracing applications |
CN112190941A (zh) * | 2020-10-22 | 2021-01-08 | 网易(杭州)网络有限公司 | 一种阴影处理方法和装置 |
US11113792B2 (en) | 2018-08-14 | 2021-09-07 | Nvidia Corporation | Temporal-spatial denoising in ray-tracing applications |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1074943A2 (en) * | 1999-08-06 | 2001-02-07 | Mixed Reality Systems Laboratory Inc. | Image processing method and apparatus |
CN102346918A (zh) * | 2011-09-30 | 2012-02-08 | 长春理工大学 | 一种只包含物体变化的三维动画场景的绘制方法 |
CN103679818A (zh) * | 2013-12-17 | 2014-03-26 | 南京大学 | 一种基于虚拟面光源的实时场景绘制方法 |
-
2014
- 2014-11-01 CN CN201410636705.2A patent/CN104346831B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1074943A2 (en) * | 1999-08-06 | 2001-02-07 | Mixed Reality Systems Laboratory Inc. | Image processing method and apparatus |
CN102346918A (zh) * | 2011-09-30 | 2012-02-08 | 长春理工大学 | 一种只包含物体变化的三维动画场景的绘制方法 |
CN103679818A (zh) * | 2013-12-17 | 2014-03-26 | 南京大学 | 一种基于虚拟面光源的实时场景绘制方法 |
Non-Patent Citations (3)
Title |
---|
吕伟伟等: "《基于圆盘近似的动态场景柔和阴影实时绘制》", 《计算机辅助设计与图形学学报》 * |
陈纯毅等: "《基于帧间虚拟点光源重用的动态场景》", 《吉林大学学报(工学版)》 * |
陈纯毅等: "《基于环境遮挡掩码的物理正确柔和阴影绘制算法》", 《吉林大学学报(工学版)》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105447905A (zh) * | 2015-11-17 | 2016-03-30 | 长春理工大学 | 基于可见性平滑滤波的三维场景近似柔和阴影光线跟踪绘制方法 |
CN105447905B (zh) * | 2015-11-17 | 2018-03-06 | 长春理工大学 | 基于可见性平滑滤波的三维场景近似柔和阴影绘制方法 |
CN106228599A (zh) * | 2016-06-24 | 2016-12-14 | 长春理工大学 | 基于两级可见性平滑滤波的近似柔和阴影绘制方法 |
CN106228599B (zh) * | 2016-06-24 | 2019-04-05 | 长春理工大学 | 基于两级可见性平滑滤波的近似柔和阴影绘制方法 |
CN106485778B (zh) * | 2016-10-19 | 2019-03-05 | 长春理工大学 | 利用位置敏感可见性平滑滤波实现三维场景近似柔和阴影绘制的方法 |
CN106485778A (zh) * | 2016-10-19 | 2017-03-08 | 长春理工大学 | 利用位置敏感可见性平滑滤波实现三维场景近似柔和阴影绘制的方法 |
CN107346558A (zh) * | 2017-07-03 | 2017-11-14 | 长春理工大学 | 利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法 |
CN107346558B (zh) * | 2017-07-03 | 2020-05-19 | 长春理工大学 | 利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法 |
CN107341853A (zh) * | 2017-07-13 | 2017-11-10 | 河北中科恒运软件科技股份有限公司 | 超大虚拟场景和动态摄屏的虚实融合方法及系统 |
CN107341853B (zh) * | 2017-07-13 | 2021-02-12 | 河北中科恒运软件科技股份有限公司 | 超大虚拟场景和动态摄屏的虚实融合方法及系统 |
CN107909639A (zh) * | 2017-11-10 | 2018-04-13 | 长春理工大学 | 根据位置自适应控制光源可见性复用范围的3d场景绘制方法 |
CN107909639B (zh) * | 2017-11-10 | 2021-02-19 | 长春理工大学 | 光源可见性复用范围的自适应3d场景绘制方法 |
US10740954B2 (en) | 2018-03-17 | 2020-08-11 | Nvidia Corporation | Shadow denoising in ray-tracing applications |
US10776985B2 (en) | 2018-03-17 | 2020-09-15 | Nvidia Corporation | Reflection denoising in ray-tracing applications |
US11367240B2 (en) | 2018-03-17 | 2022-06-21 | Nvidia Corporation | Shadow denoising in ray-tracing applications |
US11373359B2 (en) | 2018-03-17 | 2022-06-28 | Nvidia Corporation | Reflection denoising in ray-tracing applications |
US11113792B2 (en) | 2018-08-14 | 2021-09-07 | Nvidia Corporation | Temporal-spatial denoising in ray-tracing applications |
US11688042B2 (en) | 2018-08-14 | 2023-06-27 | Nvidia Corporation | Filtering render data using multiple iterations for a filter direction |
CN112190941A (zh) * | 2020-10-22 | 2021-01-08 | 网易(杭州)网络有限公司 | 一种阴影处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104346831B (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104346831A (zh) | 用于近似绘制三维场景柔和阴影的方法 | |
US10573058B2 (en) | Stable ray tracing | |
EP3308359B1 (en) | Rendering using ray tracing to generate a visibility stream | |
US10311628B2 (en) | Piecewise linear irregular rasterization | |
US10438314B2 (en) | Two-pass cache tile processing for visibility testing in a tile-based architecture | |
US20140118347A1 (en) | Two-pass cache tile processing for visibility testing in a tile-based architecture | |
US20150213638A1 (en) | Hierarchical tiled caching | |
CN110728741B (zh) | 基于多细节层次模型的面光源照射三维场景画面渲染方法 | |
US10078883B2 (en) | Writing graphics data from local memory to system memory | |
CN105913481B (zh) | 阴影渲染装置及其控制方法 | |
US20150193903A1 (en) | Efficient cache management in a tiled architecture | |
CN102243768A (zh) | 一种三维虚拟场景立体画面的绘制方法 | |
KR102174264B1 (ko) | 그림자 렌더링 방법 및 그림자 렌더링 장치 | |
CN105447905B (zh) | 基于可见性平滑滤波的三维场景近似柔和阴影绘制方法 | |
US20150193907A1 (en) | Efficient cache management in a tiled architecture | |
Kageyama et al. | IMMERSIVE VR VISUALIZATIONS BY VFIVE PART 1: DEVELOPMENT | |
KR101208826B1 (ko) | 깊이 텍스처의 등고선을 기반으로 한 실시간 다각형 앰비언트 오클루전 방법 | |
US11676326B2 (en) | Techniques for anisotropic texture filtering using ray cones | |
Kolivand et al. | Shadow mapping or shadow volume? | |
US11756258B2 (en) | Techniques for ray cone tracing and texture filtering | |
US11823319B2 (en) | Techniques for rendering signed distance functions | |
US20230063422A1 (en) | Techniques for rendering signed distance functions | |
Liu et al. | Multi-layer screen-space ambient occlusion using hybrid sampling | |
CN113628316A (zh) | 使用射线锥进行各向异性纹理滤波的技术 | |
Chen et al. | Use of Variance Shadow Map to Accelerate Ray Tracing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |