CN107346558A - 利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法 - Google Patents
利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法 Download PDFInfo
- Publication number
- CN107346558A CN107346558A CN201710534806.2A CN201710534806A CN107346558A CN 107346558 A CN107346558 A CN 107346558A CN 201710534806 A CN201710534806 A CN 201710534806A CN 107346558 A CN107346558 A CN 107346558A
- Authority
- CN
- China
- Prior art keywords
- point
- pixel
- light source
- visible scene
- sampled 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
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/06—Ray-tracing
-
- 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/506—Illumination models
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明涉及一种利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法,该方法利用同一个几何对象表面上的邻近可视场景点的面光源采样点可见性存在空间相关的特点,在计算可视场景点的直接光照近似值时,用该可视场景点及其周围在同一个几何对象表面上的邻近可视场景点的面光源采样点及可见性计算结果来完成蒙特卡洛直接光照值估计,以较小的代价来增加用于可视场景点直接光照贡献估计的面光源采样点数,从而提高绘制的图像画面质量。该方法增加了邻近像素对应的可视场景点是否在同一个几何对象表面上的测试操作,可显著减小在图像画面中不同几何对象交界处进行可见性重用导致的直接光照效果走样。
Description
技术领域
本发明涉及一种利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法,属于真实感三维场景绘制技术领域。
背景技术
在三维场景绘制中,为了方便实现,经常把光源建模为点光源。然而现实生活中很少有光源是真正意义上的点光源。面光源是一种常见的光源类型。在绘制三维场景时,如果照射三维场景的光源是面光源,则通常需要对面光源进行采样,获得一系列光源采样点,然后利用蒙特卡洛直接光照值估计技术来得到面光源对三维场景点的近似直接光照贡献值。发表在《ACM Transactions on Graphics》1996年15卷1期1~36页的论文详细介绍了蒙特卡洛直接光照值估计技术。为了确保利用蒙特卡洛直接光照值估计技术绘制的三维场景画面不存在明显的随机噪声,往往需要生成大量的光源采样点。这导致很大的绘制时间开销。如何在确保三维场景画面不存在明显随机噪声的条件下,减少绘制画面时所需的面光源采样点数目成为一个重要的研究方向。根据生活经验,通过分析可以发现,绘制的图像画面中的两个邻近像素对应的可视场景点如果在同一个几何对象表面上,则二者的面光源可见性通常存在很强的空间相关。如图1所示,可视场景点P2和P3在同一个平面上,这两个可视场景点的面光源可见性存在很强的空间相关。利用这种空间相关可以在确保三维场景画面不存在明显随机噪声的情况下,减小可视场景点的直接光照值蒙特卡洛估计所需的光源采样点数目,从而降低绘制三维场景直接光照效果的时间开销。申请号为201611114176.5的一件中国发明专利申请公开了一种基于可见性重用的三维场景直接光照效果近似绘制方法;与该发明专利申请不同,本发明只重用那些在同一个几何对象表面上的邻近可视场景点的光源采样点可见性计算结果,这可以显著减小因重用可见性导致的图像画面中不同几何对象交界处的直接光照效果走样。
发明内容
本发明的目的在于提供一种利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法,其通过对位于同一个几何对象表面上的邻近可视场景点的面光源采样点可见性计算结果进行重用,来提高绘制三维场景直接光照效果的效率,同时减小在图像画面中的不同几何对象交界处重用面光源采样点可见性计算结果导致的直接光照效果走样。
本发明的技术方案是这样实现的:利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法,其特征在于:把虚拟相机放在视点位置,根据虚拟相机拍摄参数,利用光线投射技术绘制三维场景;对于每条从视点出发穿过虚拟像素平面上的像素的光线A001,光线A001与虚拟像素平面上的像素一一对应,判断光线A001与三维场景的几何对象是否相交,如果相交则进一步计算光线A001与三维场景的几何对象的离视点最近的交点A002,交点A002就是一个可视场景点,可视场景点和光线A001一一对应;首先,针对每个可视场景点B001,按均匀分布在面光源上随机地产生n ls 个光源采样点,计算每个光源采样点与可视场景点B001之间的可见性并作记录;然后,对每个可视场景点B001,找到与之对应的虚拟像素平面上的像素B002,对于每个到像素B002的距离小于D pix 的虚拟像素平面上的像素B003,如果像素B003对应的可视场景点B004到视点的距离及其所在表面的法向量与可视场景点B001到视点的距离及其所在表面的法向量之间的差异小于给定阈值,则标记可视场景点B004与可视场景点B001为同一个几何对象表面上的邻近点;D pix > 0;像素B003到像素B002的距离定义为(ΔI 2+ΔJ 2)1/2,ΔI为像素B003在虚拟像素平面上的行号和像素B002在虚拟像素平面上的行号之差,ΔJ为像素B003在虚拟像素平面上的列号和像素B002在虚拟像素平面上的列号之差;对每个可视场景点B001,根据可视场景点B001及与其在同一个几何对象表面上的所有邻近可视场景点对应的光源采样点及相应的可见性来估计可视场景点B001的直接光照值;具体实现步骤如下:
提供一种数据结构LSPD,用于存储与面光源采样点相关的数据;数据结构LSPD包括光源采样点的空间位置P ls 和光源采样点的可见性V ls 两个成员变量。
1)为每个可视场景点按均匀分布在面光源上随机地产生n ls 个光源采样点,并计算光源采样点与对应的可视场景点之间的可见性,具体步骤如下:
步骤Step101:把虚拟相机放在视点位置,根据虚拟相机拍摄参数,利用光线投射技术绘制三维场景;对于每条从视点出发穿过虚拟像素平面上的像素的光线A001,光线A001与虚拟像素平面上的像素一一对应,判断光线A001与三维场景的几何对象是否相交,如果相交则进一步计算光线A001与三维场景的几何对象的离视点最近的交点A002,交点A002就是一个可视场景点,可视场景点对应了虚拟像素平面上的一个唯一的像素;
步骤Step102:创建一个包含M行、N列元素的数组LS,M为虚拟像素平面上的像素行数,N为虚拟像素平面上的像素列数;数组LS的每个元素存储一个列表C001,列表C001的每个元素存储一个数据结构LSPD类型的变量;令数组LS的每个元素存储的列表C001为空;数组LS的每个元素和虚拟像素平面上的像素一一对应;
步骤Step103:对每条与三维场景的几何对象相交的光线A001对应的可视场景点B001,执行如下操作:
按均匀分布在面光源上随机地产生n ls 个光源采样点C002;在计算机存储器中创建n ls 个数据结构LSPD类型的变量,其与n ls 个光源采样点C002一一对应;把每个光源采样点C002的空间位置赋值给与之对应的数据结构LSPD类型的变量的光源采样点的空间位置P ls 成员变量;对于每个光源采样点C002,判断从光源采样点C002的空间位置到可视场景点B001的线段是否与三维场景的几何对象相交,如果相交,则令与光源采样点C002对应的数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量为0,否则令与光源采样点C002对应的数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量为1;把n ls 个光源采样点C002对应的n ls 个数据结构LSPD类型的变量添加到可视场景点B001对应的虚拟像素平面上的像素对应的数组LS的元素存储的列表C001中。
2)估计每个可视场景点的直接光照值,并绘制出三维场景的直接光照效果,具体步骤如下:
步骤Step201:创建一个包含M行、N列元素的数组ILU,M为虚拟像素平面上的像素行数,N为虚拟像素平面上的像素列数;数组ILU的每个元素与虚拟像素平面上的像素一一对应,数组ILU的每个元素用于保存虚拟像素平面上的像素对应的可视场景点的直接光照值;令数组ILU的每个元素的值为背景色对应的光照值;
步骤Step202:对每个可视场景点B001,执行如下操作:
步骤Step202-1:找到可视场景点B001对应的虚拟像素平面上的像素B002;在虚拟像素平面上找出到像素B002的距离小于D pix 的所有像素B003并把它们保存到列表C003中,列表C003中不包括像素B002;
步骤Step202-2:在计算机存储器中创建一个列表LCS来存储一系列数据结构LSPD类型的变量,令列表LCS为空;把可视场景点B001对应的虚拟像素平面上的像素B002对应的数组LS的元素存储的列表C001中的所有变量添加到列表LCS中;对列表C003中的每个像素C004,执行如下操作:
如果从视点出发穿过像素C004的光线A001与三维场景的几何对象有交,则找到像素C004对应的可视场景点C005,可视场景点C005到视点的距离为d 1、可视场景点B001到视点的距离为d 2、可视场景点C005所在表面的归一化法向量为V1、可视场景点B001所在表面的归一化法向量为V2,如果|d 1− d 2| < T d 且V1∙V2 > T v ,则把可视场景点C005对应的虚拟像素平面上的像素C004对应的数组LS的元素存储的列表C001中的所有变量添加到列表LCS中,V1∙V2表示V1和V2的点乘;T d 表示距离差异阈值,T v 表示法向量方向差异阈值;
步骤Step202-3:令n s1为列表LCS中存储的数据结构LSPD类型的变量个数;如果n s1 ≥NUM,则转步骤Step202-4,否则按均匀分布在面光源上随机地产生NUM − n s1个光源采样点C006,在计算机存储器中创建NUM − n s1个数据结构LSPD类型的变量,其与NUM − n s1个光源采样点C006一一对应,把每个光源采样点C006的空间位置赋值给与之对应的数据结构LSPD类型的变量的光源采样点的空间位置P ls 成员变量;对于每个光源采样点C006,判断从光源采样点C006的空间位置到可视场景点B001的线段是否与三维场景的几何对象相交,如果相交,则令与光源采样点C006对应的数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量为0,否则令与光源采样点C006对应的数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量为1;把NUM − n s1个光源采样点C006对应的NUM − n s1个数据结构LSPD类型的变量添加到列表LCS中;
步骤Step202-4:根据列表LCS中存储的所有数据结构LSPD类型的变量的光源采样点的空间位置P ls 成员变量的值来确定可视场景点B001的蒙特卡洛直接光照值估计所需的光源采样点,用列表LCS中存储的所有数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量的值作为对应的光源采样点对可视场景点B001的可见性近似值,并使用蒙特卡洛直接光照值估计技术来计算可视场景点B001的直接光照近似值C007;
步骤Step202-5:计算可视场景点B001对应的虚拟像素平面上的像素B002在虚拟像素平面上所在的行号irow和列号jcol;把数组ILU的第irow行、第jcol列的元素赋值为直接光照近似值C007;
步骤Step203:把数组ILU的每个元素保存的直接光照值转换成三维场景画面图像像素颜色值,并把三维场景画面图像显示在显示器上。
本发明的积极效果是利用了同一个几何对象表面上的邻近可视场景点的光源采样点可见性存在空间相关的特点,在计算可视场景点的直接光照近似值时,用该可视场景点及其周围在同一个几何对象表面上的邻近可视场景点的光源采样点及可见性计算结果来完成蒙特卡洛直接光照值估计,以较小的代价来增加用于可视场景点直接光照贡献估计的面光源采样点数,从而提高绘制的图像画面质量。与已公开的相关技术相比,本发明增加了邻近像素对应的可视场景点是否在同一个几何对象表面上的测试操作,这可以显著减小在图像画面中不同几何对象交界处进行可见性重用导致的直接光照效果走样。
附图说明
图1为虚拟像素平面上邻近的像素对应的可视场景点示意图。
具体实施方式
为了使本方法的特征和优点更加清楚明白,下面结合具体实施例对本方法作进一步的描述。本实施例考虑包含一只兔子和一张桌子的房间三维模型,其中用一个平面矩形面光源照射三维场景。计算机系统的CPU选择Intel(R) Xeon(R) CPU E3-1225 v3 @3.20GHz,内存选择金士顿8GB DDR3 1333,磁盘选择Buffalo HD-CE 1.5 TU2,显卡选用NVidia Quadro K2000;计算机操作系统选用Windows 7,软件编程工具选用VC++ 2010。
本发明利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法,其特征在于:把虚拟相机放在视点位置,根据虚拟相机拍摄参数,利用光线投射技术绘制三维场景;对于每条从视点出发穿过虚拟像素平面上的像素的光线A001,光线A001与虚拟像素平面上的像素一一对应,判断光线A001与三维场景的几何对象是否相交,如果相交则进一步计算光线A001与三维场景的几何对象的离视点最近的交点A002,交点A002就是一个可视场景点,可视场景点和光线A001一一对应;首先,针对每个可视场景点B001,按均匀分布在面光源上随机地产生n ls 个光源采样点,计算每个光源采样点与可视场景点B001之间的可见性并作记录;然后,对每个可视场景点B001,找到与之对应的虚拟像素平面上的像素B002,对于每个到像素B002的距离小于D pix 的虚拟像素平面上的像素B003,如果像素B003对应的可视场景点B004到视点的距离及其所在表面的法向量与可视场景点B001到视点的距离及其所在表面的法向量之间的差异小于给定阈值,则标记可视场景点B004与可视场景点B001为同一个几何对象表面上的邻近点;D pix > 0;像素B003到像素B002的距离定义为(ΔI 2+ΔJ 2)1/2,ΔI为像素B003在虚拟像素平面上的行号和像素B002在虚拟像素平面上的行号之差,ΔJ为像素B003在虚拟像素平面上的列号和像素B002在虚拟像素平面上的列号之差;对每个可视场景点B001,根据可视场景点B001及与其在同一个几何对象表面上的所有邻近可视场景点对应的光源采样点及相应的可见性来估计可视场景点B001的直接光照值;具体实现步骤如下:
提供一种数据结构LSPD,用于存储与面光源采样点相关的数据;数据结构LSPD包括光源采样点的空间位置P ls 和光源采样点的可见性V ls 两个成员变量。
1)为每个可视场景点按均匀分布在面光源上随机地产生n ls 个光源采样点,并计算光源采样点与对应的可视场景点之间的可见性,具体步骤如下:
步骤Step101:把虚拟相机放在视点位置,根据虚拟相机拍摄参数,利用光线投射技术绘制三维场景;对于每条从视点出发穿过虚拟像素平面上的像素的光线A001,光线A001与虚拟像素平面上的像素一一对应,判断光线A001与三维场景的几何对象是否相交,如果相交则进一步计算光线A001与三维场景的几何对象的离视点最近的交点A002,交点A002就是一个可视场景点,可视场景点对应了虚拟像素平面上的一个唯一的像素;
步骤Step102:创建一个包含M行、N列元素的数组LS,M为虚拟像素平面上的像素行数,N为虚拟像素平面上的像素列数;数组LS的每个元素存储一个列表C001,列表C001的每个元素存储一个数据结构LSPD类型的变量;令数组LS的每个元素存储的列表C001为空;数组LS的每个元素和虚拟像素平面上的像素一一对应;
步骤Step103:对每条与三维场景的几何对象相交的光线A001对应的可视场景点B001,执行如下操作:
按均匀分布在面光源上随机地产生n ls 个光源采样点C002;在计算机存储器中创建n ls 个数据结构LSPD类型的变量,其与n ls 个光源采样点C002一一对应;把每个光源采样点C002的空间位置赋值给与之对应的数据结构LSPD类型的变量的光源采样点的空间位置P ls 成员变量;对于每个光源采样点C002,判断从光源采样点C002的空间位置到可视场景点B001的线段是否与三维场景的几何对象相交,如果相交,则令与光源采样点C002对应的数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量为0,否则令与光源采样点C002对应的数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量为1;把n ls 个光源采样点C002对应的n ls 个数据结构LSPD类型的变量添加到可视场景点B001对应的虚拟像素平面上的像素对应的数组LS的元素存储的列表C001中。
2)估计每个可视场景点的直接光照值,并绘制出三维场景的直接光照效果,具体步骤如下:
步骤Step201:创建一个包含M行、N列元素的数组ILU,M为虚拟像素平面上的像素行数,N为虚拟像素平面上的像素列数;数组ILU的每个元素与虚拟像素平面上的像素一一对应,数组ILU的每个元素用于保存虚拟像素平面上的像素对应的可视场景点的直接光照值;令数组ILU的每个元素的值为背景色对应的光照值;
步骤Step202:对每个可视场景点B001,执行如下操作:
步骤Step202-1:找到可视场景点B001对应的虚拟像素平面上的像素B002;在虚拟像素平面上找出到像素B002的距离小于D pix 的所有像素B003并把它们保存到列表C003中,列表C003中不包括像素B002;
步骤Step202-2:在计算机存储器中创建一个列表LCS来存储一系列数据结构LSPD类型的变量,令列表LCS为空;把可视场景点B001对应的虚拟像素平面上的像素B002对应的数组LS的元素存储的列表C001中的所有变量添加到列表LCS中;对列表C003中的每个像素C004,执行如下操作:
如果从视点出发穿过像素C004的光线A001与三维场景的几何对象有交,则找到像素C004对应的可视场景点C005,可视场景点C005到视点的距离为d 1、可视场景点B001到视点的距离为d 2、可视场景点C005所在表面的归一化法向量为V1、可视场景点B001所在表面的归一化法向量为V2,如果|d 1− d 2| < T d 且V1∙V2 > T v ,则把可视场景点C005对应的虚拟像素平面上的像素C004对应的数组LS的元素存储的列表C001中的所有变量添加到列表LCS中,V1∙V2表示V1和V2的点乘;T d 表示距离差异阈值,T v 表示法向量方向差异阈值;
步骤Step202-3:令n s1为列表LCS中存储的数据结构LSPD类型的变量个数;如果n s1 ≥NUM,则转步骤Step202-4,否则按均匀分布在面光源上随机地产生NUM − n s1个光源采样点C006,在计算机存储器中创建NUM − n s1个数据结构LSPD类型的变量,其与NUM − n s1个光源采样点C006一一对应,把每个光源采样点C006的空间位置赋值给与之对应的数据结构LSPD类型的变量的光源采样点的空间位置P ls 成员变量;对于每个光源采样点C006,判断从光源采样点C006的空间位置到可视场景点B001的线段是否与三维场景的几何对象相交,如果相交,则令与光源采样点C006对应的数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量为0,否则令与光源采样点C006对应的数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量为1;把NUM − n s1个光源采样点C006对应的NUM − n s1个数据结构LSPD类型的变量添加到列表LCS中;
步骤Step202-4:根据列表LCS中存储的所有数据结构LSPD类型的变量的光源采样点的空间位置P ls 成员变量的值来确定可视场景点B001的蒙特卡洛直接光照值估计所需的光源采样点,用列表LCS中存储的所有数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量的值作为对应的光源采样点对可视场景点B001的可见性近似值,并使用蒙特卡洛直接光照值估计技术来计算可视场景点B001的直接光照近似值C007;
步骤Step202-5:计算可视场景点B001对应的虚拟像素平面上的像素B002在虚拟像素平面上所在的行号irow和列号jcol;把数组ILU的第irow行、第jcol列的元素赋值为直接光照近似值C007;
步骤Step203:把数组ILU的每个元素保存的直接光照值转换成三维场景画面图像像素颜色值,并把三维场景画面图像显示在显示器上。
在本实施例中,D pix 取值为2.9,n ls 取值为5,M取值为768,N取值为1024,NUM取值为30,T d 取值为0.001,T v 取值为0.9。
Claims (1)
1.利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法,其特征在于:把虚拟相机放在视点位置,根据虚拟相机拍摄参数,利用光线投射技术绘制三维场景;对于每条从视点出发穿过虚拟像素平面上的像素的光线A001,光线A001与虚拟像素平面上的像素一一对应,判断光线A001与三维场景的几何对象是否相交,如果相交则进一步计算光线A001与三维场景的几何对象的离视点最近的交点A002,交点A002就是一个可视场景点,可视场景点和光线A001一一对应;首先,针对每个可视场景点B001,按均匀分布在面光源上随机地产生n ls 个光源采样点,计算每个光源采样点与可视场景点B001之间的可见性并作记录;然后,对每个可视场景点B001,找到与之对应的虚拟像素平面上的像素B002,对于每个到像素B002的距离小于D pix 的虚拟像素平面上的像素B003,如果像素B003对应的可视场景点B004到视点的距离及其所在表面的法向量与可视场景点B001到视点的距离及其所在表面的法向量之间的差异小于给定阈值,则标记可视场景点B004与可视场景点B001为同一个几何对象表面上的邻近点;D pix > 0;像素B003到像素B002的距离定义为(ΔI 2+ΔJ 2)1/2,ΔI为像素B003在虚拟像素平面上的行号和像素B002在虚拟像素平面上的行号之差,ΔJ为像素B003在虚拟像素平面上的列号和像素B002在虚拟像素平面上的列号之差;对每个可视场景点B001,根据可视场景点B001及与其在同一个几何对象表面上的所有邻近可视场景点对应的光源采样点及相应的可见性来估计可视场景点B001的直接光照值;具体实现步骤如下:
提供一种数据结构LSPD,用于存储与面光源采样点相关的数据;数据结构LSPD包括光源采样点的空间位置P ls 和光源采样点的可见性V ls 两个成员变量;
1)为每个可视场景点按均匀分布在面光源上随机地产生n ls 个光源采样点,并计算光源采样点与对应的可视场景点之间的可见性,具体步骤如下:
步骤Step101:把虚拟相机放在视点位置,根据虚拟相机拍摄参数,利用光线投射技术绘制三维场景;对于每条从视点出发穿过虚拟像素平面上的像素的光线A001,光线A001与虚拟像素平面上的像素一一对应,判断光线A001与三维场景的几何对象是否相交,如果相交则进一步计算光线A001与三维场景的几何对象的离视点最近的交点A002,交点A002就是一个可视场景点,可视场景点对应了虚拟像素平面上的一个唯一的像素;
步骤Step102:创建一个包含M行、N列元素的数组LS,M为虚拟像素平面上的像素行数,N为虚拟像素平面上的像素列数;数组LS的每个元素存储一个列表C001,列表C001的每个元素存储一个数据结构LSPD类型的变量;令数组LS的每个元素存储的列表C001为空;数组LS的每个元素和虚拟像素平面上的像素一一对应;
步骤Step103:对每条与三维场景的几何对象相交的光线A001对应的可视场景点B001,执行如下操作:
按均匀分布在面光源上随机地产生n ls 个光源采样点C002;在计算机存储器中创建n ls 个数据结构LSPD类型的变量,其与n ls 个光源采样点C002一一对应;把每个光源采样点C002的空间位置赋值给与之对应的数据结构LSPD类型的变量的光源采样点的空间位置P ls 成员变量;对于每个光源采样点C002,判断从光源采样点C002的空间位置到可视场景点B001的线段是否与三维场景的几何对象相交,如果相交,则令与光源采样点C002对应的数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量为0,否则令与光源采样点C002对应的数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量为1;把n ls 个光源采样点C002对应的n ls 个数据结构LSPD类型的变量添加到可视场景点B001对应的虚拟像素平面上的像素对应的数组LS的元素存储的列表C001中;
2)估计每个可视场景点的直接光照值,并绘制出三维场景的直接光照效果,具体步骤如下:
步骤Step201:创建一个包含M行、N列元素的数组ILU,M为虚拟像素平面上的像素行数,N为虚拟像素平面上的像素列数;数组ILU的每个元素与虚拟像素平面上的像素一一对应,数组ILU的每个元素用于保存虚拟像素平面上的像素对应的可视场景点的直接光照值;令数组ILU的每个元素的值为背景色对应的光照值;
步骤Step202:对每个可视场景点B001,执行如下操作:
步骤Step202-1:找到可视场景点B001对应的虚拟像素平面上的像素B002;在虚拟像素平面上找出到像素B002的距离小于D pix 的所有像素B003并把它们保存到列表C003中,列表C003中不包括像素B002;
步骤Step202-2:在计算机存储器中创建一个列表LCS来存储一系列数据结构LSPD类型的变量,令列表LCS为空;把可视场景点B001对应的虚拟像素平面上的像素B002对应的数组LS的元素存储的列表C001中的所有变量添加到列表LCS中;对列表C003中的每个像素C004,执行如下操作:
如果从视点出发穿过像素C004的光线A001与三维场景的几何对象有交,则找到像素C004对应的可视场景点C005,可视场景点C005到视点的距离为d 1、可视场景点B001到视点的距离为d 2、可视场景点C005所在表面的归一化法向量为V1、可视场景点B001所在表面的归一化法向量为V2,如果|d 1− d 2| < T d 且V1∙V2 > T v ,则把可视场景点C005对应的虚拟像素平面上的像素C004对应的数组LS的元素存储的列表C001中的所有变量添加到列表LCS中,V1∙V2表示V1和V2的点乘;T d 表示距离差异阈值,T v 表示法向量方向差异阈值;
步骤Step202-3:令n s1为列表LCS中存储的数据结构LSPD类型的变量个数;如果n s1 ≥NUM,则转步骤Step202-4,否则按均匀分布在面光源上随机地产生NUM − n s1个光源采样点C006,在计算机存储器中创建NUM − n s1个数据结构LSPD类型的变量,其与NUM − n s1个光源采样点C006一一对应,把每个光源采样点C006的空间位置赋值给与之对应的数据结构LSPD类型的变量的光源采样点的空间位置P ls 成员变量;对于每个光源采样点C006,判断从光源采样点C006的空间位置到可视场景点B001的线段是否与三维场景的几何对象相交,如果相交,则令与光源采样点C006对应的数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量为0,否则令与光源采样点C006对应的数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量为1;把NUM − n s1个光源采样点C006对应的NUM − n s1个数据结构LSPD类型的变量添加到列表LCS中;
步骤Step202-4:根据列表LCS中存储的所有数据结构LSPD类型的变量的光源采样点的空间位置P ls 成员变量的值来确定可视场景点B001的蒙特卡洛直接光照值估计所需的光源采样点,用列表LCS中存储的所有数据结构LSPD类型的变量的光源采样点的可见性V ls 成员变量的值作为对应的光源采样点对可视场景点B001的可见性近似值,并使用蒙特卡洛直接光照值估计技术来计算可视场景点B001的直接光照近似值C007;
步骤Step202-5:计算可视场景点B001对应的虚拟像素平面上的像素B002在虚拟像素平面上所在的行号irow和列号jcol;把数组ILU的第irow行、第jcol列的元素赋值为直接光照近似值C007;
步骤Step203:把数组ILU的每个元素保存的直接光照值转换成三维场景画面图像像素颜色值,并把三维场景画面图像显示在显示器上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710534806.2A CN107346558B (zh) | 2017-07-03 | 2017-07-03 | 利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710534806.2A CN107346558B (zh) | 2017-07-03 | 2017-07-03 | 利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107346558A true CN107346558A (zh) | 2017-11-14 |
CN107346558B CN107346558B (zh) | 2020-05-19 |
Family
ID=60256795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710534806.2A Active CN107346558B (zh) | 2017-07-03 | 2017-07-03 | 利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107346558B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109523621A (zh) * | 2018-11-15 | 2019-03-26 | 腾讯科技(深圳)有限公司 | 对象的加载方法和装置、存储介质、电子装置 |
CN110675482A (zh) * | 2019-08-28 | 2020-01-10 | 长春理工大学 | 虚拟三维场景的球面斐波那契像素点阵全景画面渲染与显示方法 |
CN110728741A (zh) * | 2019-10-11 | 2020-01-24 | 长春理工大学 | 基于多细节层次模型的面光源照射三维场景画面渲染方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1664884A (zh) * | 2005-03-02 | 2005-09-07 | 西安四维航测遥感中心 | 城区三维可视与可量测立体地形图制作方法 |
US7106898B2 (en) * | 1999-12-06 | 2006-09-12 | California Institute Of Technology | 3D scanning using shadows |
CN101982838A (zh) * | 2010-11-02 | 2011-03-02 | 长春理工大学 | 一种加速被面光源照射的3d虚拟场景的光线跟踪的方法 |
CN104346831A (zh) * | 2014-11-01 | 2015-02-11 | 长春理工大学 | 用于近似绘制三维场景柔和阴影的方法 |
CN106776020A (zh) * | 2016-12-07 | 2017-05-31 | 长春理工大学 | 大型三维场景的计算机集群分布式路径跟踪绘制方法 |
-
2017
- 2017-07-03 CN CN201710534806.2A patent/CN107346558B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7106898B2 (en) * | 1999-12-06 | 2006-09-12 | California Institute Of Technology | 3D scanning using shadows |
CN1664884A (zh) * | 2005-03-02 | 2005-09-07 | 西安四维航测遥感中心 | 城区三维可视与可量测立体地形图制作方法 |
CN101982838A (zh) * | 2010-11-02 | 2011-03-02 | 长春理工大学 | 一种加速被面光源照射的3d虚拟场景的光线跟踪的方法 |
CN104346831A (zh) * | 2014-11-01 | 2015-02-11 | 长春理工大学 | 用于近似绘制三维场景柔和阴影的方法 |
CN106776020A (zh) * | 2016-12-07 | 2017-05-31 | 长春理工大学 | 大型三维场景的计算机集群分布式路径跟踪绘制方法 |
Non-Patent Citations (2)
Title |
---|
陈纯毅等: "基于帧间虚拟点光源重用的动态场景间接光照近似求解算法", 《吉林大学学报》 * |
陈纯毅等: "空地光通信系统空间链路的建模与仿真", 《系统仿真学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109523621A (zh) * | 2018-11-15 | 2019-03-26 | 腾讯科技(深圳)有限公司 | 对象的加载方法和装置、存储介质、电子装置 |
CN110675482A (zh) * | 2019-08-28 | 2020-01-10 | 长春理工大学 | 虚拟三维场景的球面斐波那契像素点阵全景画面渲染与显示方法 |
CN110675482B (zh) * | 2019-08-28 | 2023-05-19 | 长春理工大学 | 虚拟三维场景的球面斐波那契像素点阵全景画面渲染与显示方法 |
CN110728741A (zh) * | 2019-10-11 | 2020-01-24 | 长春理工大学 | 基于多细节层次模型的面光源照射三维场景画面渲染方法 |
CN110728741B (zh) * | 2019-10-11 | 2022-08-23 | 长春理工大学 | 基于多细节层次模型的面光源照射三维场景画面渲染方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107346558B (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0812447B1 (en) | Computer graphics system for creating and enhancing texture maps | |
JP5336067B2 (ja) | グラフィックスを処理する方法および装置 | |
US7167171B2 (en) | Methods and apparatuses for a polygon binning process for rendering | |
CN101982838B (zh) | 一种加速被面光源照射的3d虚拟场景的光线跟踪的方法 | |
US8970583B1 (en) | Image space stylization of level of detail artifacts in a real-time rendering engine | |
US8860733B2 (en) | Device for displaying cutting simulation, method for displaying cutting simulation, and program for displaying cutting simulation | |
EP1345179A3 (en) | Method and apparatus for computer graphics animation | |
US8917281B2 (en) | Image rendering method and system | |
CN109584366B (zh) | 一种地形渲染方法、装置、设备及可读存储介质 | |
CN107346558A (zh) | 利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法 | |
CN102822870B (zh) | 多个阴影化引擎上3d计算机图形数据的处理 | |
WO2002007089A3 (en) | Apparatus and method for volume rendering | |
CN100399358C (zh) | 图像处理装置及其方法 | |
CN102063496B (zh) | 空间数据化简方法及装置 | |
CN107909647B (zh) | 基于空间复用的真实感虚拟3d场景光场投影图像绘制方法 | |
CN103700134A (zh) | 基于可控制纹理烘焙的三维矢量模型实时光影延迟着色渲染方法 | |
CN106780704B (zh) | 基于可见性重用的三维场景直接光照效果近似绘制方法 | |
CN101656037B (zh) | 在小屏幕设备上显示大幅面图片的方法、小屏幕设备 | |
CN104318509B (zh) | 一种基于gpu的大批量目标高速标绘方法 | |
EP2728551B1 (en) | Image rendering method and system | |
US7646385B2 (en) | Computer graphics rendering method and apparatus | |
CN113658288B (zh) | 一种多边形数据矢量切片生成及显示的方法 | |
CN102074004B (zh) | 空间实体遮挡类型的判定方法及装置 | |
CN101493941B (zh) | 基于GPU硬件加速的Graph Cuts三维图像分割方法 | |
CN107909639A (zh) | 根据位置自适应控制光源可见性复用范围的3d场景绘制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |