渲染方法技术

技术编号:39712293 阅读:4 留言:0更新日期:2023-12-17 23:21
公开了一种渲染方法

【技术实现步骤摘要】
渲染方法、装置以及设备


[0001]本申请涉及图像处理
,特别是涉及一种渲染方法

装置以及设备


技术介绍

[0002]计算机图形渲染的是将三维虚拟场景中的几何物体

材质

光源以及摄像机等三维数据转化为二维图片的过程

渲染算法描述了如何从摄像机看到虚拟场景,并在摄像机上成像

为了得到更具真实性的渲染结果,需要使渲染算法实现全局光照效果

光线追踪算法是最常用的全局光照渲染算法,通过反向模拟现实世界中的光线传输的过程,生成逼真的图片

[0003]随着人们对渲染质量的要求不断提高,渲染场景的规模也越来越大

对于单机难以绘制的大规模的三维场景,需要将场景划分为多个场景块,并使用多节点分布式渲染的方法进行渲染

其中,分布式渲染方法能够利用多节点的计算和存储能力,效率远高于需要频繁进行磁盘访问的单节点内外存调度的方法

[0004]但是,当光线在场景中多次弹射后,可能和整个场景中任意位置产生交点,因此光线需要对整个场景数据进行随机访问,导致频繁的场景数据传输,降低场景数据利用率

如何保证场景数据利用率,是大规模场景渲染的难点


技术实现思路

[0005]本申请提供了一种渲染方法

装置以及设备,以提高分布式场景渲染节点的数据利用率和渲染效率
r/>[0006]第一方面提供一种渲染方法

该方法包括:
[0007]根据上一帧图像渲染过程中的渲染统计信息,将三维场景中的多个场景块分配到与渲染节点数量相同的场景块组中,渲染统计信息包括各场景块之间的第一光线传输量,每一场景块组包括第一场景块和至少一个第二场景块,第二场景块是根据第二场景块对应的第一光线传输量分配到场景块组的;为每一渲染节点分配一个场景块组,以使渲染节点分别对分配的场景块组中的场景块进行光线渲染

通过利用帧间光线传播的连贯性,根据上一帧图渲染过程中的第一光线传输量从三维场景中的场景块中选择与场景块组的第二光线传输量最小的场景块,并添加到该场景块组中,以降低同一渲染节点处理的场景块之间的关联,从而降低每一渲染节点加载场景块的频率,提高数据利用率

[0008]在一种可能的实现方式中,每一第二场景块在分配前,为所有待分配的场景块中与场景块组之间的第二光线传输量最小的场景块,每一待分配的场景块对应的第二光线传输量为待分配的场景块与场景块组中所有的场景块之间的第一光线传输量的和

通过将第二光线传输量最小的场景块添加到场景块组中,能够降低同一场景块组中场景块之间的光线交互,从而降低渲染节点的加载次数,提高数据利用率

[0009]在一种可能的实现方式中,第一场景块为第一个添加到场景块组的场景块,第一场景块为屏幕块中的投影面积最大的场景块,屏幕块为当前帧屏幕的部分,屏幕块的数量
与渲染节点的数量相同

通过划分屏幕块为场景块组分配场景块,能够均衡各渲染节点计算初级光线的工作量

[0010]在一种可能的实现方式中,渲染统计信息还包括每一渲染节点的加载速度,为每一渲染节点分配一个场景块组包括:根据加载速度和场景块组的数据量为渲染节点分配场景块组,渲染节点分配到的场景块组的数据量与加载速度成正比

通过为加载速度快的渲染节点分配数据流大的场景块组,能够均衡整个分布式系统的场景块加载时间,从而提高整体渲染效率

[0011]在一种可能的实现方式中,第一光线传输量包括光线发送量和光线接收量,目标场景块组中还包括第三场景块,目标场景块组为与其他的场景块组具有相同的第一场景块的场景块组,每一第三场景块为三维场景中除第一场景块以外的场景块中光线发送量最大的前
N
个场景块之一,
N
为目标场景块的数量

可以避免将光线发送量大的场景块分配到同一场景块组导致渲染节点频繁加载场景块的情况,从而提高数据利用率

[0012]第二方面提供一种渲染方法

应用于渲染节点,该方法包括:根据上一帧图像渲染过程中的渲染统计信息获取多个待调度场景块的优先级,多个待调度场景块为场景块组中当前渲染的渲染场景块之外的场景块,渲染统计信息包括三维场景中的各场景块之间的第一光线传输量,场景块组中的部分场景块为根据第一光线传输量从三维场景中的场景块中分配的;确定优先级最高的场景块为下一个被渲染的场景块

通过渲染统计信息计算场景块组中的场景块的优先级来调度场景块,能够提高场景块的加载效率,以及减少场景块的加载次数,从而提高渲染节点的数据利用率

[0013]在一种可能的实现方式中,渲染统计信息还包括每一场景块的计算速度和加载时间,优先级的高低与预测渲染时间的大小正相关,预测渲染时间为预测光线总量与待调度场景块的计算速度的比值再减去待调度场景块的加载时间得到的,预测光线总量包括待调度场景块的当前光线量和接收来自渲染场景块的预测光线量,预测光线量根据三维场景中的各场景块之间的第一光线传输量得到的

基于上一帧图像渲染过程中的渲染统计信息,由于相邻帧间连贯性,能够预测当前帧的光线情况,从而优先调度光线处理量大且场景块加载时间少的场景块,以减少后续场景块的加载次数,提高数据利用率

[0014]在一种可能的实现方式中,第一光线传输量包括光线发送量和光线接收量,预测光线量为渲染场景块的第一光线接收总量和目标光线发送比例的积,第一光线接收总量为当前帧渲染场景块接收到来自三维场景块中的其他场景块的光线总量,目标光线发送比为上一帧中渲染场景块发送至待调度场景块的光线发送量与渲染场景块的第二光线接收总量的比值,第二光线总量为上一帧渲染场景块接收到来自三维场景块中的其他场景块的光线接收量之和

[0015]在一种可能的实现方式中,该方法还包括:将优先级最高的场景块预加载到渲染节点的缓存中

将下一个要渲染的场景块提前加载到渲染节点的缓存中,能够提高渲染节点的渲染效率

[0016]在一种可能的实现方式中,该方法还包括:若预加载完优先级最高的场景块之前,渲染节点的缓存已满,则将缓存中优先级最低的场景块卸载

优先级低的场景块暂时不会进行渲染,因而可以将其卸载以将下一个渲染的场景块加载到渲染节点的缓存中,提高渲染节点渲染下一场景块的效率

[0017]第三方面提供一种渲染装置

该装置包括:场景块分配模块,用于根据上一帧图像渲染过程中的渲染统计信息,将三维场景中的多个场景块分配到与渲染节点数量相同的场景块组中,渲染统计信息包括各场景块之间的第一光线传输量,本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种渲染方法,其特征在于,所述方法包括:根据上一帧图像渲染过程中的渲染统计信息,将三维场景中的多个场景块分配到与渲染节点数量相同的场景块组中,所述渲染统计信息包括各场景块之间的第一光线传输量,每一所述场景块组包括第一场景块和至少一个第二场景块,所述第二场景块是根据所述第二场景块对应的所述第一光线传输量分配到所述场景块组的;为每一所述渲染节点分配一个所述场景块组,以使所述渲染节点分别对分配的所述场景块组中的场景块进行光线渲染
。2.
根据权利要求1所述的方法,其特征在于,每一所述第二场景块在分配前,为所有待分配的场景块中与所述场景块组之间的第二光线传输量最小的场景块,每一待分配的场景块对应的所述第二光线传输量为所述待分配的场景块与所述场景块组中所有的场景块之间的所述第一光线传输量的和
。3.
根据权利要求1或2所述的方法,其特征在于,所述第一场景块为第一个添加到所述场景块组的场景块,所述第一场景块为屏幕块中的投影面积最大的场景块,所述屏幕块为当前帧屏幕的部分,所述屏幕块的数量与所述渲染节点的数量相同
。4.
根据权利要求1至3中任一项所述的方法,其特征在于,所述渲染统计信息还包括每一所述渲染节点的加载速度,所述为每一所述渲染节点分配一个所述场景块组包括:根据所述加载速度和场景块组的数据量为所述渲染节点分配场景块组,所述渲染节点分配到的场景块组的数据量与所述加载速度成正比
。5.
根据权利要求1至4中任一项所述的方法,其特征在于,所述第一光线传输量包括光线发送量和光线接收量,目标场景块组中还包括第三场景块,所述目标场景块组为与其他的所述场景块组具有相同的所述第一场景块的场景块组,每一所述第三场景块为三维场景中除所述第一场景块以外的场景块中所述光线发送量最大的前
N
个场景块之一,所述
N
为所述目标场景块的数量
。6.
一种渲染方法,其特征在于,应用于渲染节点,所述方法包括:根据上一帧图像渲染过程中的渲染统计信息获取多个待调度场景块的优先级,所述多个待调度场景块为场景块组中当前渲染的渲染场景块之外的场景块,所述渲染统计信息包括三维场景中的各场景块之间的第一光线传输量,所述场景块组中的部分场景块为根据所述第一光线传输量从所述三维场景中的场景块中分配的;确定所述优先级最高的场景块为下一个被渲染的场景块
。7.
根据权利要求6所述的方法,其特征在于,所述渲染统计信息还包括每一场景块的计算速度和加载时间,所述优先级的高低与预测渲染时间的大小正相关,所述预测渲染时间为预测光线总量与所述待调度场景块的所述计算速度的比值再减去所述待调度场景块的所述加载时间得到的,所述预测光线总量包括所述待调度场景块的当前光线量和接收来自渲染场景块的预测光线量,所述预测光线量根据所述三维场景中的各场景块之间的第一光线传输量得到的
。8.
根据权利要求7所述的方法,其特征在于,所述第一光线传输量包括光线发送量和光线接收量,所述预测光线量为所述渲染场景块的第一光线接收总量和目标光线发送比例的积,所述第一光线接收总量为当前帧所述渲染场景块接收到来自所述三维场景块中的其他场景块的光线总量,所述目标光线发送比为上一帧中所述渲染场景块发送至所述待调度场
景块的所述光线发送量与所述渲染场景块的第二光线接收总量的比值,所述第二光线总量为上一帧所述渲染场景块接收到来自所述三维场景块中的其他场景块的所述光线接收量之和
。9.
根据权利要求6至8中任一项所述的方法,其特征在于,所述方法还包括:将所述优先级最高的场景块预加载到所述渲染节点的缓存中
。10.
根据权利要求9所述的方法,其特征在于,所述方法还包括:若预加载完所述优先级最高的场景块之前,所述渲染节点的缓存已满,则将缓存中所述优先级最低的场景块卸载
。11.
一种渲染装置,其特征在于,所述装置包括:场景块分配模块,用于根据上一帧图像渲染过程中的渲染统计信息,将三维场景中的多个场景块分配到与渲染节点数量相同的场景块组中,所述渲染统计信息包括各场景块之间的第一光线传输量,每一所述场景块组包括第一场景块和至少一个第二场景块,所述第二场景块是根据所述第二场景块对应的所述第一光线传输量分配到所述场景块组的;场景块组分配模块,用于为每一所述渲染节点分配一个所述场景块组,以使所述渲染节点分别对分...

【专利技术属性】
技术研发人员:吴江铮林澈徐翔王璐
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1