CN107886563A - 基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法 - Google Patents
基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法 Download PDFInfo
- Publication number
- CN107886563A CN107886563A CN201711104177.6A CN201711104177A CN107886563A CN 107886563 A CN107886563 A CN 107886563A CN 201711104177 A CN201711104177 A CN 201711104177A CN 107886563 A CN107886563 A CN 107886563A
- Authority
- CN
- China
- Prior art keywords
- node computer
- pixel
- virtual
- point source
- virtual 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/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及一种基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法,该方法首先利用所有绘制结点计算机并行地产生一系列虚拟点光源;然后在控制结点计算机上对绘制结点计算机产生的虚拟点光源集合进行矩阵行列采样,得到一个虚拟点光源子集;最后控制结点计算机把采样得到的虚拟点光源子集发送给所有绘制结点计算机,在绘制结点计算机上并行地完成间接光照效果绘制。控制结点计算机负责完成直接光照效果绘制,在此基础上合并所有绘制结点计算机发来的间接光照效果绘制结果,从而得到全局光照效果绘制结果。
Description
技术领域
本发明涉及一种基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法,属于真实感三维场景绘制技术领域。
背景技术
三维场景全局光照效果绘制技术在动画电影制作、电脑游戏开发、数字媒体设计、虚拟现实等领域有着重要应用价值。目前已有不少关于三维场景全局光照效果绘制的报道。全局光照可以分成直接光照和间接光照两部分。发表在《Computer Graphics Forum》2014年33卷1期的论文《Scalable Realistic Rendering with Many-Light Methods》讲解了使用虚拟点光源实现间接光照效果绘制的方法。该方法首先从面光源随机发射一系列光线,并基于随机走步法跟踪这些光线在三维场景中的传输过程,在光线传输路径与三维场景的几何对象的每个交点处创建虚拟点光源(在光线传输路径的起点处不创建虚拟点光源);然后用得到的所有虚拟点光源照射三维场景,累加各个虚拟点光源对可视场景点产生的直接光照值即得到面光源对可视场景点产生的间接光照值。基于虚拟点光源的三维场景间接光照效果绘制存在的一个问题是,虚拟点光源数目通常很多,在计算众多虚拟点光源对可视场景点产生的直接光照值时,要做大量可见性测试计算,时间开销很大。发表在《ACMTransactions on Graphics》2007年26卷3期的论文《Matrix Row-Column Sampling forthe Many-Light Problem》讲述了利用矩阵行列采样技术从众多点光源中随机选择一部分用来实际照射三维场景(这个过程称为对众多点光源进行采样、得到采样点光源),并根据这些被选中的采样点光源对可视场景点的直接光照值来近似估计所有点光源对可视场景点的直接光照值总和(这个过程称为基于采样点光源的可视场景点直接光照值总和估计技术)。虚拟点光源是特殊的点光源,其用来计算间接光照。基于采样点光源的可视场景点直接光照值总和估计技术可以使用基于抛物面阴影图的阴影映射方法来完成阴影计算。2002年Springer出版的《Advances in Modelling,Animation and Rendering》的397~407页讲述了基于抛物面阴影图的阴影映射方法。面光源照射三维场景的直接光照值可以用蒙特卡罗直接光照求解技术来近似估计。发表在《ACM Transactions on Graphics》1996年15卷1期的论文《Monte Carlo Techniques for Direct Lighting Calculations》详细介绍了蒙特卡罗直接光照求解技术。分布式集群系统由大量通过高速网络连接在一起的计算机结点组成,可以提供比单台计算机强很多的并行计算能力。图1所示为包含一个控制结点计算机和4个绘制结点计算机的分布式集群系统。本发明提供一种利用分布式集群系统的并行计算能力来提高基于虚拟点光源的三维场景全局光照效果绘制速度的方法。
发明内容
本发明的目的在于提供一种基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法,其通过利用分布式集群的并行计算能力来提高三维场景全局光照效果绘制速度。
本发明的技术方案是这样实现的:基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法,其特征在于:分布式集群系统包含1台控制结点计算机和2n台绘制结点计算机,n≥2;在控制结点计算机和所有绘制结点计算机上都保存有相同的三维场景数据和虚拟相机观察参数;在控制结点计算机的控制下,首先在各个绘制结点计算机上基于随机走步法跟踪NS条从面光源发出的随机光线传输路径,为随机光线传输路径与三维场景的几何对象的每个交点关联一个虚拟点光源;然后各个绘制结点计算机把产生的虚拟点光源数据通过网络发送给控制结点计算机,控制结点计算机把接收到的来自所有绘制结点计算机的虚拟点光源数据合并在一起,利用矩阵行列采样技术从所有虚拟点光源中随机选择一部分用来实际照射三维场景,并把这些被选中的虚拟点光源数据通过网络发送给各个绘制结点计算机;控制结点计算机负责绘制面光源照射三维场景时的直接光照效果;控制结点计算机把要绘制的虚拟相机拍摄的画面像素区域等分成行、列的子块,表示对x向下取整,每个子块的像素对应的间接光照效果由一个绘制结点计算机来绘制;各个绘制结点计算机在绘制完成相应的像素子块的像素对应的间接光照效果后,把绘制结果通过网络发送给控制结点计算机,最后控制结点计算机把接收到的来自各个绘制结点计算机的间接光照结果以及控制结点计算机绘制三维场景得到的直接光照结果合并成完整的全局光照结果;具体实现步骤如下:
提供一种数据结构TVPL,用于存储与虚拟点光源相关的数据;数据结构TVPL包括虚拟点光源所在位置Pos、虚拟点光源所在位置法向量Nrml、虚拟点光源关联的光线传输路径入射方向Vi、虚拟点光源所在位置的双向反射分布函数BRDF、虚拟点光源的光通量Flux共5个成员变量;
步骤Step101:启动控制结点计算机、网络交换机和所有绘制结点计算机,使其处于工作状态;控制结点计算机通过网络向各个绘制结点计算机发送开始产生虚拟点光源数据命令,使各个绘制结点计算机根据三维场景数据,基于随机走步法跟踪NS条从面光源发出的随机光线传输路径,并为光线传输路径与三维场景的几何对象的每个交点关联一个虚拟点光源;
步骤Step102:对于第m台绘制结点计算机,m=1,2,…,2n,在接收到控制结点计算机发来的开始产生虚拟点光源数据命令后,具体执行如下操作:
步骤Step102-1:根据三维场景数据,使用随机走步法,跟踪NS条从面光源发出的随机光线传输路径;对于每条随机光线传输路径,对于该随机光线传输路径与三维场景的几何对象的每个交点Prg,为交点Prg关联一个虚拟点光源,并根据该随机光线传输路径及相关的随机走步跟踪参数计算该虚拟点光源对应的光通量VFLUX,同时创建一个数据结构TVPL类型的变量A001,变量A001与虚拟点光源一一对应,把变量A001的虚拟点光源所在位置Pos成员变量赋值为交点Prg所在位置,把变量A001的虚拟点光源所在位置法向量Nrml成员变量赋值为交点Prg所在位置的表面法向量,把变量A001的虚拟点光源关联的光线传输路径入射方向Vi成员变量赋值为该随机光线传输路径在交点Prg处的入射方向,把变量A001的虚拟点光源所在位置的双向反射分布函数BRDF成员变量赋值为交点Prg所在位置的表面双向反射分布函数,把变量A001的虚拟点光源的光通量Flux成员变量赋值为光通量VFLUX;
步骤Step102-2:在第m台绘制结点计算机的存储器中,创建一个列表A002,列表A002用于存储数据结构TVPL类型的变量;令列表A002为空;把在步骤Step102-1中创建的所有数据结构TVPL类型的变量A001添加到列表A002中,把列表A002通过网络发送给控制结点计算机;
步骤Step103:在控制结点计算机的存储器中创建一个列表A003,列表A003用于存储数据结构TVPL类型的变量;令列表A003为空;在控制结点计算机的存储器中创建一个列表A004,列表A004用于存储数据结构TVPL类型的变量;令列表A004为空;控制结点计算机把接收到的从各个绘制结点计算机发来的列表A002的所有数据结构TVPL类型的变量A001添加到列表A003中;控制结点计算机根据三维场景数据、虚拟相机观察参数和列表A003中的所有数据结构TVPL类型的变量A001表示的虚拟点光源,利用矩阵行列采样技术从列表A003中的所有数据结构TVPL类型的变量A001表示的虚拟点光源中选择Nvl个虚拟点光源,把这Nvl个虚拟点光源对应的数据结构TVPL类型的变量A001存放到列表A004中;控制结点计算机把列表A004通过网络发送给所有绘制结点计算机;在控制结点计算机的存储器中创建一个包含M行、N列元素的二维数组AGI,用于存储虚拟像素平面上的每个像素对应的可视场景点的光照值,M为虚拟像素平面上的像素行数,N为虚拟像素平面的像素列数,数组AGI的元素和虚拟像素平面上的像素一一对应;可视场景点为从视点发射的穿过虚拟像素平面上的像素的光线与三维场景的几何对象之间的离视点最近的交点;把数组AGI的每个元素赋值为背景色对应的光照值;控制结点计算机利用蒙特卡罗直接光照求解技术估计面光源对虚拟像素平面上的每个像素对应的可视场景点D001的直接光照值D002,并把直接光照值D002赋值给可视场景点D001对应的像素对应的数组AGI的元素;
步骤Step104:对于第m台绘制结点计算机,m=1,2,…,2n,在接收到控制结点计算机发来的列表A004后,执行如下操作:
步骤Step104-1:令
如果I等于则令rE=M;如果J等于则令cE=N;M为虚拟像素平面上的像素行数,N为虚拟像素平面的像素列数;
步骤Step104-2:第m台绘制结点计算机根据三维场景数据、虚拟相机观察参数、列表A004中的所有数据结构TVPL类型的变量A001表示的虚拟点光源,使用基于采样点光源的可视场景点直接光照值总和估计技术,来近似估计虚拟像素平面上的从第rS行至第rE行、从第cS列至第cE列的矩形像素区域B001内的每个像素E001对应的可视场景点C001在列表A003中的所有数据结构TVPL类型的变量A001表示的虚拟点光源照射的条件下的直接光照值总和B002,其中用基于抛物面阴影图的阴影映射方法完成阴影计算;在第m台绘制结点计算机的存储器中创建一个包含rE-rS+1行、cE-cS+1列元素的二维数组AIND,数组AIND的元素和像素区域B001内的像素一一对应,把数组AIND的每个元素赋值为0;
步骤Step104-3:对于矩形像素区域B001内的每个像素E001对应的可视场景点C001,执行如下操作:
计算可视场景点C001对应的像素在矩形像素区域B001内的行号irow和列号jcol,矩形像素区域B001包含从第1行至第rE-rS+1行的总共rE-rS+1行像素,矩形像素区域B001包含从第1列至第cE-cS+1列的总共cE-cS+1列像素,把可视场景点C001的直接光照值总和B002赋值给数组AIND的第irow行、第jcol列元素;
步骤Step104-4:第m台绘制结点计算机通过网络把数组AIND传送给控制结点计算机;
步骤Step105:控制结点计算机在接收到第m台绘制结点计算机发来的数组AIND后,m=1,2,…,2n,执行如下操作:
步骤Step105-1:令 如果I′等于则令r′E=M;如果J′等于则令c′E=N;M为虚拟像素平面上的像素行数,N为虚拟像素平面的像素列数;
步骤Step105-2:把数组AIND的第sr行、第tc列的元素的值与数组AGI的第sr+r′S-1行、第tc+c′S-1列的元素的值之和赋值给数组AGI的第sr+r′S-1行、第tc+c′S-1列的元素,其中sr=1,2,…,r′E-r′S+1,tc=1,2,…,c′E-c′S+1;
步骤Step106:控制结点计算机在对每个绘制结点计算机发来的数组AIND执行完步骤Step105-2后,把数组AGI的每个元素保存的光照值转换成三维场景画面图像像素颜色值,并把三维场景画面图像显示在显示器上。
本发明的积极效果是在基于虚拟点光源的三维场景全局光照效果绘制中能利用分布式集群的并行计算能力,各个结点计算机可以协调工作,能以更快的速度完成三维场景的全局光照效果绘制。
附图说明
图1为分布式集群组成结构示意图。
具体实施方式
为了使本方法的特征和优点更加清楚明白,下面结合具体实施例对本方法作进一步的描述。本实施例考虑包含一个办公室三维场景,在办公室的天花板上有一个面光源。计算机系统的CPU选择Intel(R)Xeon(R)CPU E3-1225v3@3.20GHz,内存选择金士顿8GB DDR31333,磁盘选择Buffalo HD-CE 1.5TU2,显卡选用NVidia Quadro K2000;计算机操作系统选用Windows 7,软件编程工具选用VC++2010。在本实施例中,NS=100,M=1024,N=768,n=4,Nvl=80。
本发明的目的在于提供一种基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法,其通过利用分布式集群的并行计算能力来提高三维场景全局光照效果绘制速度。
本发明的技术方案是这样实现的:基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法,其特征在于:分布式集群系统包含1台控制结点计算机和2n台绘制结点计算机,n≥2;在控制结点计算机和所有绘制结点计算机上都保存有相同的三维场景数据和虚拟相机观察参数;在控制结点计算机的控制下,首先在各个绘制结点计算机上基于随机走步法跟踪NS条从面光源发出的随机光线传输路径,为随机光线传输路径与三维场景的几何对象的每个交点关联一个虚拟点光源;然后各个绘制结点计算机把产生的虚拟点光源数据通过网络发送给控制结点计算机,控制结点计算机把接收到的来自所有绘制结点计算机的虚拟点光源数据合并在一起,利用矩阵行列采样技术从所有虚拟点光源中随机选择一部分用来实际照射三维场景,并把这些被选中的虚拟点光源数据通过网络发送给各个绘制结点计算机;控制结点计算机负责绘制面光源照射三维场景时的直接光照效果;控制结点计算机把要绘制的虚拟相机拍摄的画面像素区域等分成行、列的子块,表示对x向下取整,每个子块的像素对应的间接光照效果由一个绘制结点计算机来绘制;各个绘制结点计算机在绘制完成相应的像素子块的像素对应的间接光照效果后,把绘制结果通过网络发送给控制结点计算机,最后控制结点计算机把接收到的来自各个绘制结点计算机的间接光照结果以及控制结点计算机绘制三维场景得到的直接光照结果合并成完整的全局光照结果;具体实现步骤如下:
提供一种数据结构TVPL,用于存储与虚拟点光源相关的数据;数据结构TVPL包括虚拟点光源所在位置Pos、虚拟点光源所在位置法向量Nrml、虚拟点光源关联的光线传输路径入射方向Vi、虚拟点光源所在位置的双向反射分布函数BRDF、虚拟点光源的光通量Flux共5个成员变量;
步骤Step101:启动控制结点计算机、网络交换机和所有绘制结点计算机,使其处于工作状态;控制结点计算机通过网络向各个绘制结点计算机发送开始产生虚拟点光源数据命令,使各个绘制结点计算机根据三维场景数据,基于随机走步法跟踪NS条从面光源发出的随机光线传输路径,并为光线传输路径与三维场景的几何对象的每个交点关联一个虚拟点光源;
步骤Step102:对于第m台绘制结点计算机,m=1,2,…,2n,在接收到控制结点计算机发来的开始产生虚拟点光源数据命令后,具体执行如下操作:
步骤Step102-1:根据三维场景数据,使用随机走步法,跟踪NS条从面光源发出的随机光线传输路径;对于每条随机光线传输路径,对于该随机光线传输路径与三维场景的几何对象的每个交点Prg,为交点Prg关联一个虚拟点光源,并根据该随机光线传输路径及相关的随机走步跟踪参数计算该虚拟点光源对应的光通量VFLUX,同时创建一个数据结构TVPL类型的变量A001,变量A001与虚拟点光源一一对应,把变量A001的虚拟点光源所在位置Pos成员变量赋值为交点Prg所在位置,把变量A001的虚拟点光源所在位置法向量Nrml成员变量赋值为交点Prg所在位置的表面法向量,把变量A001的虚拟点光源关联的光线传输路径入射方向Vi成员变量赋值为该随机光线传输路径在交点Prg处的入射方向,把变量A001的虚拟点光源所在位置的双向反射分布函数BRDF成员变量赋值为交点Prg所在位置的表面双向反射分布函数,把变量A001的虚拟点光源的光通量Flux成员变量赋值为光通量VFLUX;
步骤Step102-2:在第m台绘制结点计算机的存储器中,创建一个列表A002,列表A002用于存储数据结构TVPL类型的变量;令列表A002为空;把在步骤Step102-1中创建的所有数据结构TVPL类型的变量A001添加到列表A002中,把列表A002通过网络发送给控制结点计算机;
步骤Step103:在控制结点计算机的存储器中创建一个列表A003,列表A003用于存储数据结构TVPL类型的变量;令列表A003为空;在控制结点计算机的存储器中创建一个列表A004,列表A004用于存储数据结构TVPL类型的变量;令列表A004为空;控制结点计算机把接收到的从各个绘制结点计算机发来的列表A002的所有数据结构TVPL类型的变量A001添加到列表A003中;控制结点计算机根据三维场景数据、虚拟相机观察参数和列表A003中的所有数据结构TVPL类型的变量A001表示的虚拟点光源,利用矩阵行列采样技术从列表A003中的所有数据结构TVPL类型的变量A001表示的虚拟点光源中选择Nvl个虚拟点光源,把这Nvl个虚拟点光源对应的数据结构TVPL类型的变量A001存放到列表A004中;控制结点计算机把列表A004通过网络发送给所有绘制结点计算机;在控制结点计算机的存储器中创建一个包含M行、N列元素的二维数组AGI,用于存储虚拟像素平面上的每个像素对应的可视场景点的光照值,M为虚拟像素平面上的像素行数,N为虚拟像素平面的像素列数,数组AGI的元素和虚拟像素平面上的像素一一对应;可视场景点为从视点发射的穿过虚拟像素平面上的像素的光线与三维场景的几何对象之间的离视点最近的交点;把数组AGI的每个元素赋值为背景色对应的光照值;控制结点计算机利用蒙特卡罗直接光照求解技术估计面光源对虚拟像素平面上的每个像素对应的可视场景点D001的直接光照值D002,并把直接光照值D002赋值给可视场景点D001对应的像素对应的数组AGI的元素;
步骤Step104:对于第m台绘制结点计算机,m=1,2,…,2n,在接收到控制结点计算机发来的列表A004后,执行如下操作:
步骤Step104-1:令 如果I等于则令rE=M;如果J等于则令cE=N;M为虚拟像素平面上的像素行数,N为虚拟像素平面的像素列数;
步骤Step104-2:第m台绘制结点计算机根据三维场景数据、虚拟相机观察参数、列表A004中的所有数据结构TVPL类型的变量A001表示的虚拟点光源,使用基于采样点光源的可视场景点直接光照值总和估计技术,来近似估计虚拟像素平面上的从第rS行至第rE行、从第cS列至第cE列的矩形像素区域B001内的每个像素E001对应的可视场景点C001在列表A003中的所有数据结构TVPL类型的变量A001表示的虚拟点光源照射的条件下的直接光照值总和B002,其中用基于抛物面阴影图的阴影映射方法完成阴影计算;在第m台绘制结点计算机的存储器中创建一个包含rE-rS+1行、cE-cS+1列元素的二维数组AIND,数组AIND的元素和像素区域B001内的像素一一对应,把数组AIND的每个元素赋值为0;
步骤Step104-3:对于矩形像素区域B001内的每个像素E001对应的可视场景点C001,执行如下操作:
计算可视场景点C001对应的像素在矩形像素区域B001内的行号irow和列号jcol,矩形像素区域B001包含从第1行至第rE-rS+1行的总共rE-rS+1行像素,矩形像素区域B001包含从第1列至第cE-cS+1列的总共cE-cS+1列像素,把可视场景点C001的直接光照值总和B002赋值给数组AIND的第irow行、第jcol列元素;
步骤Step104-4:第m台绘制结点计算机通过网络把数组AIND传送给控制结点计算机;
步骤Step105:控制结点计算机在接收到第m台绘制结点计算机发来的数组AIND后,m=1,2,…,2n,执行如下操作:
步骤Step105-1:令 如果I′等于则令r′E=M;如果J′等于则令c′E=N;M为虚拟像素平面上的像素行数,N为虚拟像素平面的像素列数;
步骤Step105-2:把数组AIND的第sr行、第tc列的元素的值与数组AGI的第sr+r′S-1行、第tc+c′S-1列的元素的值之和赋值给数组AGI的第sr+r′S-1行、第tc+c′S-1列的元素,其中sr=1,2,…,r′E-r′S+1,tc=1,2,…,c′E-c′S+1;
步骤Step106:控制结点计算机在对每个绘制结点计算机发来的数组AIND执行完步骤Step105-2后,把数组AGI的每个元素保存的光照值转换成三维场景画面图像像素颜色值,并把三维场景画面图像显示在显示器上。
所有绘制结点计算机并行地执行步骤Step102。所有绘制结点计算机并行地执行步骤Step104。
Claims (1)
1.基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法,其特征在于:分布式集群系统包含1台控制结点计算机和2n台绘制结点计算机,n≥2;在控制结点计算机和所有绘制结点计算机上都保存有相同的三维场景数据和虚拟相机观察参数;在控制结点计算机的控制下,首先在各个绘制结点计算机上基于随机走步法跟踪NS条从面光源发出的随机光线传输路径,为随机光线传输路径与三维场景的几何对象的每个交点关联一个虚拟点光源;然后各个绘制结点计算机把产生的虚拟点光源数据通过网络发送给控制结点计算机,控制结点计算机把接收到的来自所有绘制结点计算机的虚拟点光源数据合并在一起,利用矩阵行列采样技术从所有虚拟点光源中随机选择一部分用来实际照射三维场景,并把这些被选中的虚拟点光源数据通过网络发送给各个绘制结点计算机;控制结点计算机负责绘制面光源照射三维场景时的直接光照效果;控制结点计算机把要绘制的虚拟相机拍摄的画面像素区域等分成行、列的子块,表示对x向下取整,每个子块的像素对应的间接光照效果由一个绘制结点计算机来绘制;各个绘制结点计算机在绘制完成相应的像素子块的像素对应的间接光照效果后,把绘制结果通过网络发送给控制结点计算机,最后控制结点计算机把接收到的来自各个绘制结点计算机的间接光照结果以及控制结点计算机绘制三维场景得到的直接光照结果合并成完整的全局光照结果;具体实现步骤如下:
提供一种数据结构TVPL,用于存储与虚拟点光源相关的数据;数据结构TVPL包括虚拟点光源所在位置Pos、虚拟点光源所在位置法向量Nrml、虚拟点光源关联的光线传输路径入射方向Vi、虚拟点光源所在位置的双向反射分布函数BRDF、虚拟点光源的光通量Flux共5个成员变量;
步骤Step101:启动控制结点计算机、网络交换机和所有绘制结点计算机,使其处于工作状态;控制结点计算机通过网络向各个绘制结点计算机发送开始产生虚拟点光源数据命令,使各个绘制结点计算机根据三维场景数据,基于随机走步法跟踪NS条从面光源发出的随机光线传输路径,并为光线传输路径与三维场景的几何对象的每个交点关联一个虚拟点光源;
步骤Step102:对于第m台绘制结点计算机,m=1,2,…,2n,在接收到控制结点计算机发来的开始产生虚拟点光源数据命令后,具体执行如下操作:
步骤Step102-1:根据三维场景数据,使用随机走步法,跟踪NS条从面光源发出的随机光线传输路径;对于每条随机光线传输路径,对于该随机光线传输路径与三维场景的几何对象的每个交点Prg,为交点Prg关联一个虚拟点光源,并根据该随机光线传输路径及相关的随机走步跟踪参数计算该虚拟点光源对应的光通量VFLUX,同时创建一个数据结构TVPL类型的变量A001,变量A001与虚拟点光源一一对应,把变量A001的虚拟点光源所在位置Pos成员变量赋值为交点Prg所在位置,把变量A001的虚拟点光源所在位置法向量Nrml成员变量赋值为交点Prg所在位置的表面法向量,把变量A001的虚拟点光源关联的光线传输路径入射方向Vi成员变量赋值为该随机光线传输路径在交点Prg处的入射方向,把变量A001的虚拟点光源所在位置的双向反射分布函数BRDF成员变量赋值为交点Prg所在位置的表面双向反射分布函数,把变量A001的虚拟点光源的光通量Flux成员变量赋值为光通量VFLUX;
步骤Step102-2:在第m台绘制结点计算机的存储器中,创建一个列表A002,列表A002用于存储数据结构TVPL类型的变量;令列表A002为空;把在步骤Step102-1中创建的所有数据结构TVPL类型的变量A001添加到列表A002中,把列表A002通过网络发送给控制结点计算机;
步骤Step103:在控制结点计算机的存储器中创建一个列表A003,列表A003用于存储数据结构TVPL类型的变量;令列表A003为空;在控制结点计算机的存储器中创建一个列表A004,列表A004用于存储数据结构TVPL类型的变量;令列表A004为空;控制结点计算机把接收到的从各个绘制结点计算机发来的列表A002的所有数据结构TVPL类型的变量A001添加到列表A003中;控制结点计算机根据三维场景数据、虚拟相机观察参数和列表A003中的所有数据结构TVPL类型的变量A001表示的虚拟点光源,利用矩阵行列采样技术从列表A003中的所有数据结构TVPL类型的变量A001表示的虚拟点光源中选择Nvl个虚拟点光源,把这Nvl个虚拟点光源对应的数据结构TVPL类型的变量A001存放到列表A004中;控制结点计算机把列表A004通过网络发送给所有绘制结点计算机;在控制结点计算机的存储器中创建一个包含M行、N列元素的二维数组AGI,用于存储虚拟像素平面上的每个像素对应的可视场景点的光照值,M为虚拟像素平面上的像素行数,N为虚拟像素平面的像素列数,数组AGI的元素和虚拟像素平面上的像素一一对应;可视场景点为从视点发射的穿过虚拟像素平面上的像素的光线与三维场景的几何对象之间的离视点最近的交点;把数组AGI的每个元素赋值为背景色对应的光照值;控制结点计算机利用蒙特卡罗直接光照求解技术估计面光源对虚拟像素平面上的每个像素对应的可视场景点D001的直接光照值D002,并把直接光照值D002赋值给可视场景点D001对应的像素对应的数组AGI的元素;
步骤Step104:对于第m台绘制结点计算机,m=1,2,…,2n,在接收到控制结点计算机发来的列表A004后,执行如下操作:
步骤Step104-1:令 如果I等于则令rE=M;如果J等于则令cE=N;M为虚拟像素平面上的像素行数,N为虚拟像素平面的像素列数;
步骤Step104-2:第m台绘制结点计算机根据三维场景数据、虚拟相机观察参数、列表A004中的所有数据结构TVPL类型的变量A001表示的虚拟点光源,使用基于采样点光源的可视场景点直接光照值总和估计技术,来近似估计虚拟像素平面上的从第rS行至第rE行、从第cS列至第cE列的矩形像素区域B001内的每个像素E001对应的可视场景点C001在列表A003中的所有数据结构TVPL类型的变量A001表示的虚拟点光源照射的条件下的直接光照值总和B002,其中用基于抛物面阴影图的阴影映射方法完成阴影计算;在第m台绘制结点计算机的存储器中创建一个包含rE-rS+1行、cE-cS+1列元素的二维数组AIND,数组AIND的元素和像素区域B001内的像素一一对应,把数组AIND的每个元素赋值为0;
步骤Step104-3:对于矩形像素区域B001内的每个像素E001对应的可视场景点C001,执行如下操作:
计算可视场景点C001对应的像素在矩形像素区域B001内的行号irow和列号jcol,矩形像素区域B001包含从第1行至第rE-rS+1行的总共rE-rS+1行像素,矩形像素区域B001包含从第1列至第cE-cS+1列的总共cE-cS+1列像素,把可视场景点C001的直接光照值总和B002赋值给数组AIND的第irow行、第jcol列元素;
步骤Step104-4:第m台绘制结点计算机通过网络把数组AIND传送给控制结点计算机;
步骤Step105:控制结点计算机在接收到第m台绘制结点计算机发来的数组AIND后,m=1,2,…,2n,执行如下操作:
步骤Step105-1:令 如果I′等于则令rE′=M;如果J′等于则令c′E=N;M为虚拟像素平面上的像素行数,N为虚拟像素平面的像素列数;
步骤Step105-2:把数组AIND的第sr行、第tc列的元素的值与数组AGI的第sr+rS′-1行、第tc+c′S-1列的元素的值之和赋值给数组AGI的第sr+rS′-1行、第tc+c′S-1列的元素,其中sr=1,2,…,rE′-rS′+1,tc=1,2,…,c′E-c′S+1;
步骤Step106:控制结点计算机在对每个绘制结点计算机发来的数组AIND执行完步骤Step105-2后,把数组AGI的每个元素保存的光照值转换成三维场景画面图像像素颜色值,并把三维场景画面图像显示在显示器上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711104177.6A CN107886563B (zh) | 2017-11-10 | 2017-11-10 | 基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711104177.6A CN107886563B (zh) | 2017-11-10 | 2017-11-10 | 基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107886563A true CN107886563A (zh) | 2018-04-06 |
CN107886563B CN107886563B (zh) | 2020-12-11 |
Family
ID=61779952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711104177.6A Active CN107886563B (zh) | 2017-11-10 | 2017-11-10 | 基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107886563B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472856A (zh) * | 2018-11-07 | 2019-03-15 | 长春理工大学 | 基于虚拟点光源的复杂真实感三维场景渐进交互式绘制方法 |
CN109493413A (zh) * | 2018-11-05 | 2019-03-19 | 长春理工大学 | 基于自适应虚拟点光源采样的三维场景全局光照效果绘制方法 |
CN109615709A (zh) * | 2018-12-10 | 2019-04-12 | 长春理工大学 | 基于云计算的多人协作三维场景建模与绘制方法 |
CN110717968A (zh) * | 2019-10-11 | 2020-01-21 | 长春理工大学 | 三维场景的计算资源请求驱动自适应云渲染方法 |
CN110728742A (zh) * | 2019-10-11 | 2020-01-24 | 长春理工大学 | 基于视觉重要性的三维场景动画渲染间接光照帧间复用方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106447759A (zh) * | 2016-10-19 | 2017-02-22 | 长春理工大学 | 利用可见性插值实现三维场景间接光照效果近似绘制的方法 |
CN106776020A (zh) * | 2016-12-07 | 2017-05-31 | 长春理工大学 | 大型三维场景的计算机集群分布式路径跟踪绘制方法 |
-
2017
- 2017-11-10 CN CN201711104177.6A patent/CN107886563B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106447759A (zh) * | 2016-10-19 | 2017-02-22 | 长春理工大学 | 利用可见性插值实现三维场景间接光照效果近似绘制的方法 |
CN106776020A (zh) * | 2016-12-07 | 2017-05-31 | 长春理工大学 | 大型三维场景的计算机集群分布式路径跟踪绘制方法 |
Non-Patent Citations (4)
Title |
---|
CHUNYI CHEN: "Characterizing the radial content of orbital-angular-momentum photonic states impaired by weak-to-strong atmospheric turbulence", 《OPTICS EXPRESS》 * |
CHUNYI CHEN等: "Role of location-dependent transverse wind on root-mean-square bandwidth of temporal light-flux fluctuations in the turbulent atmosphere", 《RESEARCH ARTICLE》 * |
任中慧 等: "基于二次点光源的间接光照绘制技术研究", 《数字技术与应用》 * |
王鹏: "快速构建逼真三维虚拟仿真地球场景的若干关键技术研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109493413A (zh) * | 2018-11-05 | 2019-03-19 | 长春理工大学 | 基于自适应虚拟点光源采样的三维场景全局光照效果绘制方法 |
CN109493413B (zh) * | 2018-11-05 | 2022-10-21 | 长春理工大学 | 基于自适应虚拟点光源采样的三维场景全局光照效果绘制方法 |
CN109472856A (zh) * | 2018-11-07 | 2019-03-15 | 长春理工大学 | 基于虚拟点光源的复杂真实感三维场景渐进交互式绘制方法 |
CN109472856B (zh) * | 2018-11-07 | 2022-12-09 | 长春理工大学 | 基于虚拟点光源的复杂真实感三维场景渐进交互式绘制方法 |
CN109615709A (zh) * | 2018-12-10 | 2019-04-12 | 长春理工大学 | 基于云计算的多人协作三维场景建模与绘制方法 |
CN109615709B (zh) * | 2018-12-10 | 2022-09-06 | 长春理工大学 | 基于云计算的多人协作三维场景建模与绘制方法 |
CN110717968A (zh) * | 2019-10-11 | 2020-01-21 | 长春理工大学 | 三维场景的计算资源请求驱动自适应云渲染方法 |
CN110728742A (zh) * | 2019-10-11 | 2020-01-24 | 长春理工大学 | 基于视觉重要性的三维场景动画渲染间接光照帧间复用方法 |
CN110728742B (zh) * | 2019-10-11 | 2022-08-23 | 长春理工大学 | 基于视觉重要性的三维场景动画渲染间接光照帧间复用方法 |
CN110717968B (zh) * | 2019-10-11 | 2023-04-07 | 长春理工大学 | 三维场景的计算资源请求驱动自适应云渲染方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107886563B (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107886563A (zh) | 基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法 | |
US10395416B2 (en) | Method for rendering an augmented object | |
Srinivasan et al. | Aperture supervision for monocular depth estimation | |
US7516170B2 (en) | Computer graphics systems and methods using stratification by rank-1 lattices | |
KR101947650B1 (ko) | 게임 엔진 기반의 머신 러닝 학습이미지 생성 장치 및 방법 | |
CN101681438A (zh) | 跟踪三维对象的系统和方法 | |
US11017582B2 (en) | Method for fast generation of path traced reflections on a semi-reflective surface | |
US11481955B2 (en) | System for photo-realistic reflections in augmented reality | |
CN107909647A (zh) | 基于空间复用的真实感虚拟3d场景光场投影图像绘制方法 | |
Wang et al. | People as scene probes | |
CN105447905B (zh) | 基于可见性平滑滤波的三维场景近似柔和阴影绘制方法 | |
Fu et al. | Layerpaint: A multi-layer interactive 3d painting interface | |
Fan et al. | Simulation and rendering for millions of grass blades | |
CN106780704A (zh) | 基于可见性重用的三维场景直接光照效果近似绘制方法 | |
Nunes et al. | Procedural generation of synthetic forest environments to train machine learning algorithms | |
Knecht et al. | A framework for perceptual studies in photorealistic augmented reality | |
US20230017276A1 (en) | System for photo-realistic reflections in augmented reality | |
CN106447759B (zh) | 利用可见性插值实现三维场景间接光照效果近似绘制的方法 | |
JP7123041B2 (ja) | 現実世界環境における仮想オブジェクトの光線追跡反射の高速生成 | |
Choi | A technological review to develop an AR-based design supporting system | |
Plemenos et al. | Intelligent visibility-based 3D scene processing techniques for computer games | |
Chen et al. | Shader based polygon stitching and its application in deformable terrain simulation | |
Gün | Interactive editing of complex terrains on parallel graphics architectures | |
Anderson | Data-driven scratch generation for rigid-body models | |
Levine et al. | PROCEDURAL TERRAIN |
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 |