CN110717968B - 三维场景的计算资源请求驱动自适应云渲染方法 - Google Patents
三维场景的计算资源请求驱动自适应云渲染方法 Download PDFInfo
- Publication number
- CN110717968B CN110717968B CN201910992286.9A CN201910992286A CN110717968B CN 110717968 B CN110717968 B CN 110717968B CN 201910992286 A CN201910992286 A CN 201910992286A CN 110717968 B CN110717968 B CN 110717968B
- Authority
- CN
- China
- Prior art keywords
- pixel
- elements
- virtual machine
- dimensional array
- column
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
Abstract
本发明公开一种三维场景的计算资源请求驱动自适应云渲染方法,为三维场景设计师使用云计算服务进行三维场景建模时的视觉效果预览提供支持。本方法能根据三维场景设计师申请的云平台虚拟机计算资源数目,来自适应地渲染三维场景全局光照效果画面。本方法能使场景设计师在不同的云平台虚拟机申请数目条件下获得相同的画面渲染响应速度,而且能使渲染生成的画面品质在相应的虚拟机申请数目约束条件下尽可能高。
Description
技术领域
本发明属于虚拟三维场景画面渲染技术领域,涉及一种三维场景的计算资源请求驱动自适应云渲染方法。
背景技术
目前主要有两种生成电影画面素材的方式,第一种是用摄像机拍摄生成,第二种是用计算机根据虚拟三维场景渲染生成。前一种方式是获取电影画面素材的常规手段,后一种方式可以生成现实生活中不存在的新奇画面,目前已经得到广泛应用。在制作虚拟三维场景时,场景设计师需要不断修改三维场景参数并及时预览场景画面,以便对创作的画面效果有直观认识。用计算机渲染生成电影画面的计算开销通常很大,一般需要使用专业级高端计算机才能满足电影虚拟三维场景制作和渲染的要求。当前,许多影视制作企业开始使用云计算服务来开展电影虚拟三维场景制作和渲染业务,企业可以根据需要向云平台申请特定数目的计算资源,并用在电影虚拟三维场景制作与预览渲染中。电影虚拟三维场景制作过程的效果预览一方面要求能够快速渲染生成场景画面,另一方面也要求渲染生成的画面品质尽量高。由于画面品质高和渲染速度快通常是两个相互矛盾的要求,因此对二者进行折衷就显得非常重要。对于使用云计算服务的企业来说,能申请的云计算资源数目取决于经费预算数额。通常企业会根据自己拥有的经费情况,申请特定数目的云计算资源。企业在不同经费预算条件下可以申请不同数目的云计算资源。因此,有必要设计能根据云计算资源请求数目,在确保电影虚拟三维场景渲染速度的条件下对画面品质进行自适应控制的方法。
渲染三维场景画面本质上是求解三维场景的全局光照。全局光照可以看成是由直接光照和间接光照相加而成。直接光照指光源发出的光只经一次场景几何对象散射就到达视点的光照。间接光照指光源发出的光经多次场景几何对象散射后到达视点的光照。利用光线跟踪技术,从视点发射穿过虚拟相机的像素平面上的像素的光线,求解光线与三维场景的几何对象的离视点最近的交点,计算光源发出的光直接经交点散射后到达视点的光照就可得到直接光照。在用光线跟踪技术渲染三维场景时,从视点发射的穿过虚拟相机的像素平面上的一个像素的光线与三维场景几何对象之间的离视点最近的交点是一个可视场景点,即从视点位置可以直接看到的三维场景点,可视场景点与虚拟相机的像素平面上的像素一一对应。J.F.Hughes等撰写的由Addison-Wesley公司于2014年出版的《ComputerGraphics:Principles and Practice,3rd Edition》的第32章介绍了路径跟踪的具体实现方法。在路径跟踪中,对于从视点出发的穿过虚拟相机的像素平面上的像素的一条光线传输路径,如果不计算在该光线传输路径与三维场景几何对象的第一个交点处散射的直接来自光源的光照贡献,则最终得到的经该光线传输路径到达视点的光照为一个间接光照采样值。在路径跟踪中,需要为虚拟相机的像素平面上的每个像素产生大量光线传输路径采样样本,计算每个光线传输路径采样样本对应的间接光照采样值,并通过求这些间接光照采样值的平均值来获得该像素对应的间接光照近似值。当每个像素对应的间接光照采样值数目较少时,最终渲染出的三维场景画面可能会包含明显的噪声。利用虚拟相机的像素平面上的相邻像素对应的间接光照的空间相关性,可以使用对多个相邻像素对应的间接光照采样值求平均的方法,来减轻因单个像素对应的间接光照采样值数目不够造成的画面噪声问题。
制作虚拟三维场景过程中的场景画面预览要求画面能以尽快的速度生成,因此云平台的单个虚拟机在对三维场景进行路径跟踪时,不宜为虚拟相机的像素平面上的每个像素生成过多的间接光照采样值。然而,通过并行地运行云平台的多个虚拟机,可以为虚拟相机的像素平面上的每个像素生成更多的间接光照采样值。本发明方法可以根据场景设计师申请的云平台虚拟机数目,自动地确定对哪些相邻像素对应的间接光照采样值求平均,以便得到待渲染像素的最终间接光照结果。
发明内容
本发明的目的在于,提供一种三维场景的计算资源请求驱动自适应云渲染方法,实现根据申请的云平台虚拟机计算资源数目来自适应地渲染三维场景全局光照效果画面,以便在给定虚拟机计算资源数目约束条件下对画面渲染品质进行自适应优化。
本发明的技术方案是这样实现的:使用云平台的虚拟机计算资源来渲染三维场景,渲染生成的三维场景画面通过网络传送给三维场景预览客户端,场景设计师通过三维场景预览客户端来查看三维场景画面视觉效果。场景设计师通过网络向云平台申请N个虚拟机,如图1所示,其中的1个虚拟机用于执行三维场景的直接光照渲染操作,剩下的N-1个虚拟机用于执行三维场景的间接光照渲染操作。把N-1个虚拟机执行三维场景的间接光照渲染操作后得到的间接光照结果合并在一起得到最终间接光照结果。把三维场景的直接光照结果和最终间接光照结果加在一起得到全局光照结果。本方法的具体实现步骤如下:
步骤Step101:场景设计师通过网络向云平台申请N个虚拟机,把其中的1个虚拟机记作VMD,用于执行三维场景的直接光照渲染操作,使用剩下的N-1个虚拟机执行三维场景的间接光照渲染操作,把执行三维场景的间接光照渲染操作的虚拟机记作VMI;
步骤Step102:场景设计师把三维场景模型数据、视点参数以及虚拟相机参数加载到从云平台申请的N个虚拟机中;
步骤Step103:在N个虚拟机上同时开始执行步骤Step103-1和步骤Step103-2;
步骤Step103-1:在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARD,MR表示虚拟相机的像素平面上的像素行数,NC表示虚拟相机的像素平面上的像素列数;二维数组ARD的元素用于保存虚拟相机的像素平面上的像素对应的直接光照结果;在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARP,二维数组ARP的元素用于保存虚拟相机的像素平面上的像素对应的可视场景点的空间位置;在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARN,二维数组ARN的元素用于保存虚拟相机的像素平面上的像素对应的可视场景点的法向量;在虚拟机VMD上,利用光线跟踪技术根据三维场景模型数据、视点参数以及虚拟相机参数,获得虚拟相机的像素平面上的每个像素对应的可视场景点的直接光照结果A001;把虚拟相机的像素平面上的第i行、第j列像素对应的可视场景点的直接光照结果A001保存在二维数组ARD的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;在光线跟踪过程中,记录虚拟相机的像素平面上的每个像素对应的可视场景点的空间位置和法向量;把虚拟相机的像素平面上的第i行、第j列像素对应的可视场景点的空间位置保存在二维数组ARP的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;把虚拟相机的像素平面上的第i行、第j列像素对应的可视场景点的法向量保存在二维数组ARN的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;
步骤Step103-2:针对N-1个虚拟机VMI中的每个虚拟机VMI,执行如下操作:
步骤Step103-2-1:在虚拟机VMI上,创建一个包含MR行、NC列元素的二维数组ARI,二维数组ARI的元素用于保存虚拟相机的像素平面上的像素对应的MS个间接光照采样值组成的集合;在虚拟机VMI上,利用路径跟踪技术根据三维场景模型数据、视点参数以及虚拟相机参数,为虚拟相机的像素平面上的每个像素跟踪MS条光线传播路径,据此得到对应的MS个间接光照采样值;把虚拟相机的像素平面上的第i行、第j列像素对应的MS个间接光照采样值组成的集合保存在二维数组ARI的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;
步骤Step103-2-2:虚拟机VMI通过云平台的数据传输子系统把二维数组ARI传送给虚拟机VMD;
步骤Step103-2-3:针对虚拟机VMI的操作结束;
步骤Step103-3:在虚拟机VMD上执行步骤Step103-1的操作结束,在N-1个虚拟机VMI上执行步骤Step103-2的操作结束;
步骤Step104:在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARIC,二维数组ARIC的元素用于保存虚拟相机的像素平面上的像素对应的(N-1)×MS个间接光照采样值组成的集合;在虚拟机VMD上,接收从N-1个虚拟机VMI传送来的二维数组ARI;在虚拟机VMD上,把从第1个虚拟机VMI传送来的二维数组ARI的第i行、第j列元素保存的MS个间接光照采样值组成的集合、从第2个虚拟机VMI传送来的二维数组ARI的第i行、第j列元素保存的MS个间接光照采样值组成的集合、依次递推一直到从第N-1个虚拟机VMI传送来的二维数组ARI的第i行、第j列元素保存的MS个间接光照采样值组成的集合合并在一起得到一个包含(N-1)×MS个间接光照采样值的集合S001,把集合S001保存在二维数组ARIC的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;
步骤Step105:在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARG,二维数组ARG的元素用于保存虚拟相机的像素平面上的像素对应的全局光照结果;针对二维数组ARG的第i行、第j列元素,i=1,2,…,MR,j=1,2,…,NC,执行如下操作:
步骤Step105-1:在虚拟机VMD上,创建一个列表LRC,列表LRC的元素用于存储由虚拟相机的像素平面的像素行号I和像素列号J组成的行列坐标,把列表LRC初始化为空列表;
步骤Step105-2:在虚拟机VMD上,针对虚拟相机的像素平面上的第I行、第J列像素,I=1,2,…,MR,J=1,2,…,NC,执行如下操作:
令dp=[(i-I)2+(j-J)2]1/2,dp表示虚拟相机的像素平面上的第i行、第j列像素到第I行、第J列像素的距离,即由像素行号i和像素列号j组成的行列坐标到由像素行号I和像素列号J组成的行列坐标的距离;如果dp≠0且dp≤lr,则把由像素行号I和像素列号J组成的行列坐标添加到列表LRC中,lr表示像素距离阈值;
步骤Step105-3:在虚拟机VMD上,根据列表LRC的各个元素保存的行列坐标到由像素行号i和像素列号j组成的行列坐标的距离DIS,来对列表LRC的各个元素进行升序排序,即列表LRC的元素对应的距离DIS越大,其在列表LRC中的位置越靠后;
步骤Step105-4:令编号Index=1;在虚拟机VMD上,创建一个集合SIND,集合SIND的元素用于保存间接光照采样值;把集合SIND初始化为空集合;把二维数组ARIC的第i行、第j列元素保存的集合S001的所有元素添加到集合SIND中;
步骤Step105-5:如果编号Index的值不大于列表LRC的元素个数且集合SIND中的元素个数不大于NT,NT为正整数,则转步骤Step105-6,否则转步骤Step105-8;
步骤Step105-6:令nRow等于列表LRC的第Index个元素保存的坐标的像素行号,令nCol等于列表LRC的第Index个元素保存的坐标的像素列号;如果二维数组ARP的第nRow行、第nCol列元素保存的空间位置到二维数组ARP的第i行、第j列元素保存的空间位置的距离小于ld且二维数组ARN的第nRow行、第nCol列元素保存的法向量与二维数组ARN的第i行、第j列元素保存的法向量的夹角小于θt,则把二维数组ARIC的第nRow行、第nCol列元素保存的集合S001的所有元素添加到集合SIND中;ld表示空间位置距离阈值,θt表示夹角阈值;
步骤Step105-7:令Index=Index+1;转步骤Step105-5;
步骤Step105-8:计算集合SIND的所有元素保存的间接光照采样值的平均值AVG,把二维数组ARD的第i行、第j列元素保存的直接光照结果和平均值AVG加在一起得到全局光照结果GI,把二维数组ARG的第i行、第j列元素赋值为全局光照结果GI;
步骤Step105-9:针对二维数组ARG的第i行、第j列元素的操作结束;
步骤Step106:在虚拟机VMD上,把二维数组ARG的各个元素保存的全局光照结果转换成三维场景画面的各个像素对应的颜色值;虚拟机VMD通过网络把三维场景画面传送给三维场景预览客户端;三维场景预览客户端把接收到的三维场景画面显示在屏幕上。本发明的积极效果是:一方面,对于特定的正整数MS,本方法的单个虚拟机VMI执行的计算量并不因在渲染三维场景画面时使用的虚拟机VMI总数的不同而产生变化。因此,本方法能够保证在不同虚拟机VMI总数条件下的画面渲染速度基本不变,这就可以保证在不同虚拟机VMI总数条件下预览三维场景画面时能有相同的响应速度。另一方面,本方法能自适应地根据使用的虚拟机VMI总数来确定如何获得待渲染像素对应的间接光照采样集合,从而对给定虚拟机VMI总数约束条件下的渲染画面品质进行自适应优化。因此,本方法能使场景设计师在不同的云平台虚拟机申请数目条件下获得相同的画面渲染响应速度,而且能使渲染生成的画面品质在相应的虚拟机申请数目约束条件下尽可能高。
附图说明
图1为云平台中的N个虚拟机及其与三维场景预览客户端的连接关系示意图。
具体实施方式
为了使本方法的特征和优点更加清楚明白,下面结合具体实施例对本方法作进一步的描述。在本实施例中,考虑如下虚拟房间三维场景:在房间中放着1张桌子和1把椅子,桌子上放着水果、金属茶壶、瓷杯等物体,房间的天花板上有一个灯向下照射三维场景。
本发明的技术方案是这样实现的:使用云平台的虚拟机计算资源来渲染三维场景,渲染生成的三维场景画面通过网络传送给三维场景预览客户端,场景设计师通过三维场景预览客户端来查看三维场景画面视觉效果。场景设计师通过网络向云平台申请N个虚拟机,如图1所示,其中的1个虚拟机用于执行三维场景的直接光照渲染操作,剩下的N-1个虚拟机用于执行三维场景的间接光照渲染操作。把N-1个虚拟机执行三维场景的间接光照渲染操作后得到的间接光照结果合并在一起得到最终间接光照结果。把三维场景的直接光照结果和最终间接光照结果加在一起得到全局光照结果。本方法的具体实现步骤如下:
步骤Step101:场景设计师通过网络向云平台申请N个虚拟机,把其中的1个虚拟机记作VMD,用于执行三维场景的直接光照渲染操作,使用剩下的N-1个虚拟机执行三维场景的间接光照渲染操作,把执行三维场景的间接光照渲染操作的虚拟机记作VMI;
步骤Step102:场景设计师把三维场景模型数据、视点参数以及虚拟相机参数加载到从云平台申请的N个虚拟机中;
步骤Step103:在N个虚拟机上同时开始执行步骤Step103-1和步骤Step103-2;
步骤Step103-1:在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARD,MR表示虚拟相机的像素平面上的像素行数,NC表示虚拟相机的像素平面上的像素列数;二维数组ARD的元素用于保存虚拟相机的像素平面上的像素对应的直接光照结果;在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARP,二维数组ARP的元素用于保存虚拟相机的像素平面上的像素对应的可视场景点的空间位置;在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARN,二维数组ARN的元素用于保存虚拟相机的像素平面上的像素对应的可视场景点的法向量;在虚拟机VMD上,利用光线跟踪技术根据三维场景模型数据、视点参数以及虚拟相机参数,获得虚拟相机的像素平面上的每个像素对应的可视场景点的直接光照结果A001;把虚拟相机的像素平面上的第i行、第j列像素对应的可视场景点的直接光照结果A001保存在二维数组ARD的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;在光线跟踪过程中,记录虚拟相机的像素平面上的每个像素对应的可视场景点的空间位置和法向量;把虚拟相机的像素平面上的第i行、第j列像素对应的可视场景点的空间位置保存在二维数组ARP的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;把虚拟相机的像素平面上的第i行、第j列像素对应的可视场景点的法向量保存在二维数组ARN的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;
步骤Step103-2:针对N-1个虚拟机VMI中的每个虚拟机VMI,执行如下操作:
步骤Step103-2-1:在虚拟机VMI上,创建一个包含MR行、NC列元素的二维数组ARI,二维数组ARI的元素用于保存虚拟相机的像素平面上的像素对应的MS个间接光照采样值组成的集合;在虚拟机VMI上,利用路径跟踪技术根据三维场景模型数据、视点参数以及虚拟相机参数,为虚拟相机的像素平面上的每个像素跟踪MS条光线传播路径,据此得到对应的MS个间接光照采样值;把虚拟相机的像素平面上的第i行、第j列像素对应的MS个间接光照采样值组成的集合保存在二维数组ARI的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;
步骤Step103-2-2:虚拟机VMI通过云平台的数据传输子系统把二维数组ARI传送给虚拟机VMD;
步骤Step103-2-3:针对虚拟机VMI的操作结束;
步骤Step103-3:在虚拟机VMD上执行步骤Step103-1的操作结束,在N-1个虚拟机VMI上执行步骤Step103-2的操作结束;
步骤Step104:在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARIC,二维数组ARIC的元素用于保存虚拟相机的像素平面上的像素对应的(N-1)×MS个间接光照采样值组成的集合;在虚拟机VMD上,接收从N-1个虚拟机VMI传送来的二维数组ARI;在虚拟机VMD上,把从第1个虚拟机VMI传送来的二维数组ARI的第i行、第j列元素保存的MS个间接光照采样值组成的集合、从第2个虚拟机VMI传送来的二维数组ARI的第i行、第j列元素保存的MS个间接光照采样值组成的集合、依次递推一直到从第N-1个虚拟机VMI传送来的二维数组ARI的第i行、第j列元素保存的MS个间接光照采样值组成的集合合并在一起得到一个包含(N-1)×MS个间接光照采样值的集合S001,把集合S001保存在二维数组ARIC的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;
步骤Step105:在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARG,二维数组ARG的元素用于保存虚拟相机的像素平面上的像素对应的全局光照结果;针对二维数组ARG的第i行、第j列元素,i=1,2,…,MR,j=1,2,…,NC,执行如下操作:
步骤Step105-1:在虚拟机VMD上,创建一个列表LRC,列表LRC的元素用于存储由虚拟相机的像素平面的像素行号I和像素列号J组成的行列坐标,把列表LRC初始化为空列表;
步骤Step105-2:在虚拟机VMD上,针对虚拟相机的像素平面上的第I行、第J列像素,I=1,2,…,MR,J=1,2,…,NC,执行如下操作:
令dp=[(i-I)2+(j-J)2]1/2,dp表示虚拟相机的像素平面上的第i行、第j列像素到第I行、第J列像素的距离,即由像素行号i和像素列号j组成的行列坐标到由像素行号I和像素列号J组成的行列坐标的距离;如果dp≠0且dp≤lr,则把由像素行号I和像素列号J组成的行列坐标添加到列表LRC中,lr表示像素距离阈值;
步骤Step105-3:在虚拟机VMD上,根据列表LRC的各个元素保存的行列坐标到由像素行号i和像素列号j组成的行列坐标的距离DIS,来对列表LRC的各个元素进行升序排序,即列表LRC的元素对应的距离DIS越大,其在列表LRC中的位置越靠后;
步骤Step105-4:令编号Index=1;在虚拟机VMD上,创建一个集合SIND,集合SIND的元素用于保存间接光照采样值;把集合SIND初始化为空集合;把二维数组ARIC的第i行、第j列元素保存的集合S001的所有元素添加到集合SIND中;
步骤Step105-5:如果编号Index的值不大于列表LRC的元素个数且集合SIND中的元素个数不大于NT,NT为正整数,则转步骤Step105-6,否则转步骤Step105-8;
步骤Step105-6:令nRow等于列表LRC的第Index个元素保存的坐标的像素行号,令nCol等于列表LRC的第Index个元素保存的坐标的像素列号;如果二维数组ARP的第nRow行、第nCol列元素保存的空间位置到二维数组ARP的第i行、第j列元素保存的空间位置的距离小于ld且二维数组ARN的第nRow行、第nCol列元素保存的法向量与二维数组ARN的第i行、第j列元素保存的法向量的夹角小于θt,则把二维数组ARIC的第nRow行、第nCol列元素保存的集合S001的所有元素添加到集合SIND中;ld表示空间位置距离阈值,θt表示夹角阈值;
步骤Step105-7:令Index=Index+1;转步骤Step105-5;
步骤Step105-8:计算集合SIND的所有元素保存的间接光照采样值的平均值AVG,把二维数组ARD的第i行、第j列元素保存的直接光照结果和平均值AVG加在一起得到全局光照结果GI,把二维数组ARG的第i行、第j列元素赋值为全局光照结果GI;
步骤Step105-9:针对二维数组ARG的第i行、第j列元素的操作结束;
步骤Step106:在虚拟机VMD上,把二维数组ARG的各个元素保存的全局光照结果转换成三维场景画面的各个像素对应的颜色值;虚拟机VMD通过网络把三维场景画面传送给三维场景预览客户端;三维场景预览客户端把接收到的三维场景画面显示在屏幕上。
在本实施例中,N=5,MR=768,NC=1024,MS=5,lr=6,ld等于刚好能够包裹整个三维场景的包围球的半径的五百分之一,θt=π/180弧度,NT=30。用图形工作站计算机作为三维场景预览客户端。
Claims (1)
1.一种三维场景的计算资源请求驱动自适应云渲染方法,其特征在于:使用云平台的虚拟机计算资源来渲染三维场景,渲染生成的三维场景画面通过网络传送给三维场景预览客户端,场景设计师通过三维场景预览客户端来查看三维场景画面视觉效果;场景设计师通过网络向云平台申请N个虚拟机,其中的1个虚拟机用于执行三维场景的直接光照渲染操作,剩下的N-1个虚拟机用于执行三维场景的间接光照渲染操作;把N-1个虚拟机执行三维场景的间接光照渲染操作后得到的间接光照结果合并在一起得到最终间接光照结果;把三维场景的直接光照结果和最终间接光照结果加在一起得到全局光照结果;本方法的具体实现步骤如下:
步骤Step101:场景设计师通过网络向云平台申请N个虚拟机,把其中的1个虚拟机记作VMD,用于执行三维场景的直接光照渲染操作,使用剩下的N-1个虚拟机执行三维场景的间接光照渲染操作,把执行三维场景的间接光照渲染操作的虚拟机记作VMI;
步骤Step102:场景设计师把三维场景模型数据、视点参数以及虚拟相机参数加载到从云平台申请的N个虚拟机中;
步骤Step103:在N个虚拟机上同时开始执行步骤Step103-1和步骤Step103-2;
步骤Step103-1:在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARD,MR表示虚拟相机的像素平面上的像素行数,NC表示虚拟相机的像素平面上的像素列数;二维数组ARD的元素用于保存虚拟相机的像素平面上的像素对应的直接光照结果;在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARP,二维数组ARP的元素用于保存虚拟相机的像素平面上的像素对应的可视场景点的空间位置;在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARN,二维数组ARN的元素用于保存虚拟相机的像素平面上的像素对应的可视场景点的法向量;在虚拟机VMD上,利用光线跟踪技术根据三维场景模型数据、视点参数以及虚拟相机参数,获得虚拟相机的像素平面上的每个像素对应的可视场景点的直接光照结果A001;把虚拟相机的像素平面上的第i行、第j列像素对应的可视场景点的直接光照结果A001保存在二维数组ARD的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;在光线跟踪过程中,记录虚拟相机的像素平面上的每个像素对应的可视场景点的空间位置和法向量;把虚拟相机的像素平面上的第i行、第j列像素对应的可视场景点的空间位置保存在二维数组ARP的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;把虚拟相机的像素平面上的第i行、第j列像素对应的可视场景点的法向量保存在二维数组ARN的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;
步骤Step103-2:针对N-1个虚拟机VMI中的每个虚拟机VMI,执行如下操作:
步骤Step103-2-1:在虚拟机VMI上,创建一个包含MR行、NC列元素的二维数组ARI,二维数组ARI的元素用于保存虚拟相机的像素平面上的像素对应的MS个间接光照采样值组成的集合;MS表示个数;在虚拟机VMI上,利用路径跟踪技术根据三维场景模型数据、视点参数以及虚拟相机参数,为虚拟相机的像素平面上的每个像素跟踪MS条光线传播路径,据此得到对应的MS个间接光照采样值;把虚拟相机的像素平面上的第i行、第j列像素对应的MS个间接光照采样值组成的集合保存在二维数组ARI的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;
步骤Step103-2-2:虚拟机VMI通过云平台的数据传输子系统把二维数组ARI传送给虚拟机VMD;
步骤Step103-2-3:针对虚拟机VMI的操作结束;
步骤Step103-3:在虚拟机VMD上执行步骤Step103-1的操作结束,在N-1个虚拟机VMI上执行步骤Step103-2的操作结束;
步骤Step104:在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARIC,二维数组ARIC的元素用于保存虚拟相机的像素平面上的像素对应的(N-1)×MS个间接光照采样值组成的集合;在虚拟机VMD上,接收从N-1个虚拟机VMI传送来的二维数组ARI;在虚拟机VMD上,把从第1个虚拟机VMI传送来的二维数组ARI的第i行、第j列元素保存的MS个间接光照采样值组成的集合、从第2个虚拟机VMI传送来的二维数组ARI的第i行、第j列元素保存的MS个间接光照采样值组成的集合、依次递推一直到从第N-1个虚拟机VMI传送来的二维数组ARI的第i行、第j列元素保存的MS个间接光照采样值组成的集合合并在一起得到一个包含(N-1)×MS个间接光照采样值的集合S001,把集合S001保存在二维数组ARIC的第i行、第j列元素中,其中i=1,2,…,MR,j=1,2,…,NC;
步骤Step105:在虚拟机VMD上,创建一个包含MR行、NC列元素的二维数组ARG,二维数组ARG的元素用于保存虚拟相机的像素平面上的像素对应的全局光照结果;针对二维数组ARG的第i行、第j列元素,i=1,2,…,MR,j=1,2,…,NC,执行如下操作:
步骤Step105-1:在虚拟机VMD上,创建一个列表LRC,列表LRC的元素用于存储由虚拟相机的像素平面的像素行号I和像素列号J组成的行列坐标,把列表LRC初始化为空列表;
步骤Step105-2:在虚拟机VMD上,针对虚拟相机的像素平面上的第I行、第J列像素,I=1,2,…,MR,J=1,2,…,NC,执行如下操作:
令dp=[(i-I)2+(j-J)2]1/2,dp表示虚拟相机的像素平面上的第i行、第j列像素到第I行、第J列像素的距离,即由像素行号i和像素列号j组成的行列坐标到由像素行号I和像素列号J组成的行列坐标的距离;如果dp≠0且dp≤lr,则把由像素行号I和像素列号J组成的行列坐标添加到列表LRC中,lr表示像素距离阈值;
步骤Step105-3:在虚拟机VMD上,根据列表LRC的各个元素保存的行列坐标到由像素行号i和像素列号j组成的行列坐标的距离DIS,来对列表LRC的各个元素进行升序排序,即列表LRC的元素对应的距离DIS越大,其在列表LRC中的位置越靠后;
步骤Step105-4:令编号Index=1;在虚拟机VMD上,创建一个集合SIND,集合SIND的元素用于保存间接光照采样值;把集合SIND初始化为空集合;把二维数组ARIC的第i行、第j列元素保存的集合S001的所有元素添加到集合SIND中;
步骤Step105-5:如果编号Index的值不大于列表LRC的元素个数且集合SIND中的元素个数不大于NT,NT为正整数,则转步骤Step105-6,否则转步骤Step105-8;
步骤Step105-6:令nRow等于列表LRC的第Index个元素保存的坐标的像素行号,令nCol等于列表LRC的第Index个元素保存的坐标的像素列号;如果二维数组ARP的第nRow行、第nCol列元素保存的空间位置到二维数组ARP的第i行、第j列元素保存的空间位置的距离小于ld且二维数组ARN的第nRow行、第nCol列元素保存的法向量与二维数组ARN的第i行、第j列元素保存的法向量的夹角小于θt,则把二维数组ARIC的第nRow行、第nCol列元素保存的集合S001的所有元素添加到集合SIND中;ld表示空间位置距离阈值,θt表示夹角阈值;
步骤Step105-7:令Index=Index+1;转步骤Step105-5;
步骤Step105-8:计算集合SIND的所有元素保存的间接光照采样值的平均值AVG,把二维数组ARD的第i行、第j列元素保存的直接光照结果和平均值AVG加在一起得到全局光照结果GI,把二维数组ARG的第i行、第j列元素赋值为全局光照结果GI;
步骤Step105-9:针对二维数组ARG的第i行、第j列元素的操作结束;
步骤Step106:在虚拟机VMD上,把二维数组ARG的各个元素保存的全局光照结果转换成三维场景画面的各个像素对应的颜色值;虚拟机VMD通过网络把三维场景画面传送给三维场景预览客户端;三维场景预览客户端把接收到的三维场景画面显示在屏幕上。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2019109601923 | 2019-10-11 | ||
CN201910960192 | 2019-10-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110717968A CN110717968A (zh) | 2020-01-21 |
CN110717968B true CN110717968B (zh) | 2023-04-07 |
Family
ID=69211874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910992286.9A Active CN110717968B (zh) | 2019-10-11 | 2019-10-18 | 三维场景的计算资源请求驱动自适应云渲染方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110717968B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11282258B1 (en) * | 2020-11-02 | 2022-03-22 | Nvidia Corporation | Adaptive sampling at a target sampling rate |
CN114928754B (zh) * | 2022-07-22 | 2022-10-04 | 埃洛克航空科技(北京)有限公司 | 用于实景三维数据的数据处理方法及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325976A (zh) * | 2016-08-05 | 2017-01-11 | 天河国云(北京)科技有限公司 | 一种渲染任务调度处理方法及服务器 |
CN107886563A (zh) * | 2017-11-10 | 2018-04-06 | 长春理工大学 | 基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法 |
CN109493413A (zh) * | 2018-11-05 | 2019-03-19 | 长春理工大学 | 基于自适应虚拟点光源采样的三维场景全局光照效果绘制方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9053573B2 (en) * | 2010-04-29 | 2015-06-09 | Personify, Inc. | Systems and methods for generating a virtual camera viewpoint for an image |
CN205193879U (zh) * | 2015-10-20 | 2016-04-27 | 国家超级计算深圳中心(深圳云计算中心) | 一种云计算渲染系统 |
US10062199B2 (en) * | 2016-06-27 | 2018-08-28 | Pixar | Efficient rendering based on ray intersections with virtual objects |
EP3634593B1 (en) * | 2017-06-09 | 2021-04-21 | Sony Interactive Entertainment Inc. | Optimized deferred lighting and foveal adaptation of particles and simulation models in a foveated rendering system |
KR102668725B1 (ko) * | 2017-10-27 | 2024-05-29 | 매직 립, 인코포레이티드 | 증강 현실 시스템들에 대한 가상 레티클 |
CN109493409B (zh) * | 2018-11-05 | 2022-08-23 | 长春理工大学 | 基于左右眼空间复用的虚拟三维场景立体画面绘制方法 |
CN109472856B (zh) * | 2018-11-07 | 2022-12-09 | 长春理工大学 | 基于虚拟点光源的复杂真实感三维场景渐进交互式绘制方法 |
CN109615709B (zh) * | 2018-12-10 | 2022-09-06 | 长春理工大学 | 基于云计算的多人协作三维场景建模与绘制方法 |
-
2019
- 2019-10-18 CN CN201910992286.9A patent/CN110717968B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325976A (zh) * | 2016-08-05 | 2017-01-11 | 天河国云(北京)科技有限公司 | 一种渲染任务调度处理方法及服务器 |
CN107886563A (zh) * | 2017-11-10 | 2018-04-06 | 长春理工大学 | 基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法 |
CN109493413A (zh) * | 2018-11-05 | 2019-03-19 | 长春理工大学 | 基于自适应虚拟点光源采样的三维场景全局光照效果绘制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110717968A (zh) | 2020-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9420229B2 (en) | System and method for managing multimedia data | |
JP5476138B2 (ja) | 変化する視野に基づいてフレーム間の光線追跡のアクセラレーション・データ構造体を更新する方法 | |
US7782318B2 (en) | Method for reducing network bandwidth by delaying shadow ray generation | |
US10235799B2 (en) | Variable rate deferred passes in graphics rendering | |
CN101506847B (zh) | 用于划分空间索引的方法和系统 | |
CN109364481B (zh) | 游戏内的实时全局光照方法、装置、介质及电子设备 | |
CN101923727A (zh) | 混合渲染装置和方法 | |
US10540918B2 (en) | Multi-window smart content rendering and optimizing method and projection method based on cave system | |
US10504281B2 (en) | Tracking pixel lineage in variable rate shading | |
CN110717968B (zh) | 三维场景的计算资源请求驱动自适应云渲染方法 | |
US10846908B2 (en) | Graphics processing apparatus based on hybrid GPU architecture | |
WO2021072376A2 (en) | Interactive path tracing on the web | |
CN107886563B (zh) | 基于虚拟点光源的三维场景全局光照效果分布式集群绘制方法 | |
US9235663B2 (en) | Method for computing the quantity of light received by a participating media, and corresponding device | |
Nomoto et al. | Dynamic multi-projection mapping based on parallel intensity control | |
US20200184707A1 (en) | Data processing systems | |
CN113298924A (zh) | 一种场景的渲染方法、计算设备及存储介质 | |
CN114494550B (zh) | 基于WebGPU的渲染方法、电子设备及存储介质 | |
US9824487B2 (en) | Storage medium, luminance computation apparatus and luminance computation method | |
Yao et al. | Multi‐image based photon tracing for interactive global illumination of dynamic scenes | |
CN114596401A (zh) | 渲染方法、设备以及系统 | |
US20230316626A1 (en) | Image rendering method and apparatus, computer device, and computer-readable storage medium | |
US9123154B2 (en) | Distributed element rendering | |
US20210027509A1 (en) | Multiplex pixel distribution for multi-machine rendering | |
US10255717B2 (en) | Geometry shadow maps with per-fragment atomics |
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 |