欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2019109922869
申请人: 长春理工大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-02-26
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

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个间接光照采样值组成的集合;在虚拟机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通过网络把三维场景画面传送给三维场景预览客户端;三维场景预览客户端把接收到的三维场景画面显示在屏幕上。