技术领域
[0001] 本发明属于图形渲染领域,具体涉及一种PBR实时渲染材质的转换方法,一种PBR实时渲染材质的转换装置,一种PBR实时渲染材质的转换系统,及一种渲染方法。
相关背景技术
[0002] 在过去的三十年中。3D计算机图形学得到了迅速的发展,特别是近些年来,在GPU半导体工艺和各种3D应用的推动下,图形学中的一个重要分支--实时图形学发展尤为迅速。因此,实时渲染技术得到了广泛应用,其中,基于物理的渲染方法(Physically Based Rendering,PBR)是近年来广泛使用的一种实时渲染方法,与之对应的材质体系被称为PBR材质体系,该PBR材质体系包括basecolor,metallic,roughness,specular等参数。
[0003] 在实际情况中,设计师目前主要使用3DMax等建模工具,并使用VRay渲染引擎创建了VrayMtl材质,该VrayMtl材质属于离线渲染材质,离线渲染的原理和实时渲染的原理不同,且采用的材质体系也不同,举个例子来说,VRayMtl材质使用的是diffuse,reflect,refract,glossiness等参数,而工业上被广为接受的PBR metallic/roughness workflow(工作流)使用的渲染参数是baseColor,roughenss,metallic,specular等参数,因此,离线渲染材质无法直接对应到实时渲染使用的材质参数。
[0004] 为了实现利用离线渲染材质进行实时渲染,现有的方案包括:
[0005] (1)直接将离线渲染材质参数中的一些字段直接复用到实时渲染中最能体现出材质特性的一些字段上,从而在大致的效果上表达这个材质在离线渲染中的表现形态,这种渲染方法存在的问题是,由于材质表面只有漫反射效果,材质的表现力非常差,导致渲染效果表现不佳。
[0006] (2)对离线渲染材质参数的数据进行人工的参数调整,使实时渲染效果与离线渲染效果尽可能的逼近,这种渲染方法存在的问题是,操作较为复杂,需要大量的人工操作,并且得到的渲染结果也并不能在效果上完全的与离线渲染的结果对应上。
[0007] (3)使用烘焙方法,将物体受到的光照信息预先烘焙到固定的位置上,从而跳过实时渲染所需的材质参数的限制,直接将最终结果预计算好,保存在烘焙贴图上,最终在实时渲染展示的时候,直接从这张烘焙贴图中读取所需的数据进行展示。这种烘焙方法的缺陷是,使用成本高,非常耗时,并且生成的烘焙贴图受场景的光照条件以及物体位置的限制,一旦场景灯光的位置、方向或是强度,物体位置发生移动或是旋转,或是材质属性发生改变,烘焙贴图就失去了物理真实的意义,需要重新进行烘焙,才能展现出具有物理意义的渲染结果。
具体实施方式
[0033] 为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
[0034] 实时渲染所需的材质数据(PBR材质体系)与离线渲染材质数据差异很大,为了让实时渲染的效果与离线渲染的结果更为接近,本发明提供了一套从离线渲染材质参数到实时渲染材质参数的转换方法,转换装置,装换系统,以及一种实时渲染方法。
[0035] 如图1所示,本发明提供的PBR实时渲染材质的转换方法一实施例,包括以下步骤:
[0036] S101,根据离线渲染材质参数通道和PBR实时渲染材质参数通道的对应关系构建第一渲染材质转换关系,或/和根据离线渲染图和PBR实时渲染图的相似性构建第二渲染材质转换关系。
[0037] 在构建渲染材质转换关系时,以离线渲染引擎的输出结果为区分对象,分别构建第一渲染材质转换关系和第二渲染材质转换关系。
[0038] 一种情况,离线渲染引擎的输出结果为渲染材质参数通道结果(Render Elements),比如diffuse和specular通道的结果,此时,若渲染材质参数通道可以与PBR实时渲染材质参数通道完全对应上,则离线渲染结果与PBR实时渲染结果一定可以完全匹配,即渲染效果一样,因此,可以根据离线渲染材质参数通道和PBR实时渲染材质参数通道的对应关系构建第一渲染材质转换关系。
[0039] 具体地,根据离线渲染材质参数通道和PBR实时渲染材质参数通道的对应关系构建第一渲染材质转换关系包括:
[0040] 当离线渲染引擎输出结果包括渲染材质参数通道时,在离线渲染材质参数空间上,对渲染点进行采样,生成离线渲染材质参数通道结果;在相同的渲染相机参数设置条件下,在PBR实时渲染材质参数空间上对渲染点进行遍历,生成PBR实时渲染材质参数通道结果;
[0041] 根据离线渲染材质参数通道结果和PBR实时渲染材质参数通道结果,选取与离线渲染材质参数通道完全对应上的PBR实时渲染材质参数作为对应结果,以此来构建第一对应关系数据集;
[0042] 根据第一对应关系数据集,拟合从离线渲染材质参数到PBR实时渲染材质参数的转换公式,以该转换公式作为第一渲染材质转换关系。
[0043] 在进行第一渲染材质转换关系拟合时,以2个离线渲染材质参数作为自变量,以1个PBR实时渲染材质参数作为因变量,采用三元方程进行拟合,可以拟合成圆锥曲线方程。
[0044] 图5是在构建离线渲染材质参数reflect、diffuse与PBR实时渲染材质参数Metallic的对应关系数据集的基础上,对参数reflect、diffuse和metallic的拟合获得的拟合曲面,该拟合曲面对应的拟合公式即为从参数reflect、diffuse到参数metallic的转换公式。
[0045] 另一种情况,有些离线渲染引擎不支持输出渲染材质参数通道,即只能生成并输出最终离线渲染图,此时,只能通过直接比较离线渲染图和PBR实时渲染图来的相似性构建第二渲染材质转换关系。
[0046] 具体地,根据离线渲染图和PBR实时渲染图的相似性构建第二渲染材质转化关系包括:
[0047] 当离线渲染引擎输出结果为离线渲染图时,采用SSIM算法对离线渲染图和PBR实时渲染图进行相似度匹配,寻找与离线渲染材质体系最相近的PBR实时渲染材质参数组合,以此构建第二对应关系数据集;
[0048] 根据第二对应关系数据集,拟合从离线渲染材质参数到PBR实时渲染材质参数的转换公式,以该转换公式作为第二渲染材质转换关系。
[0049] 在构建第二对应关系数据集时,首先,在确定环境光照以及相机参数下,采用离线渲染引擎先渲染一张图作为ground truth(ground truth理解为正确标记);然后,在PBR实时渲染中,使用相同的环境光照和相机参数,组合PBR实时渲染材质参数进行实时渲染,生成大量的实时渲染图;最后,采用SSIM算法寻找实时渲染图中与ground truth的SSIM差异最小的实时渲染图作为目标渲染图,将该目标渲染图对应的PBR实时渲染材质参数组合作为与离线渲染材质体系最接近的PBR实时渲染材质参数组合。该最接近的PBR实时渲染材质参数组合与离线渲染材质体系形成第二对应关系数据集。
[0050] 其中,离线渲染图和PBR实时渲染图可以是渲染得到的二维图。在进行第二渲染材质转换关系拟合时,以2个离线渲染材质参数作为自变量,以1个PBR实时渲染材质参数作为因变量,采用三元方程进行拟合,可以拟合成圆锥曲线方程。
[0051] 举例说明,图2表示是为离线渲染参数数据,其中,横向排列为reflect灰度值,纵向排列为diffuse灰度值,图3是该离线渲染参数数据与PBR实时渲染参数匹配后寻找最接近的metallic值的对应结果。采用三元方程对reflect灰度值、diffuse灰度值以及metallic值进行拟合,拟合曲面如图4所示,是一个圆锥曲面,拟合得到灰度情况下的转换公式为:
[0052]
[0053] S102,对离线渲染材质体系文件进行离线渲染材质解析,获得重要离线渲染材质参数。
[0054] 在获得第一渲染材质转换关系和第二渲染材质转换关系,即获得了渲染材质转换的依据。应用时即可以根据这两个渲染材质转换关系进行PBR实时渲染材质的转换。
[0055] 应用时,为了实现对输入参数的归一化,需要对离线渲染材质体系文件进行离线渲染材质解析,获得重要离线渲染材质参数为diffuse(漫反射颜色),reflect(反射颜色),refract(折射颜色),glossiness(表面光泽)等。
[0056] 具体地,对离线渲染材质体系文件进行离线渲染材质解析,获得重要离线渲染材质参数包括:
[0057] 直接解析离线渲染材质体系文件后,对解析获得的离线渲染材质参数进行图像层面的预处理,以规范化离线渲染材质参数,获得重要离线渲染材质参数。
[0058] 举例说明,可以以VRay离线渲染引擎使用的材质参数体系VRayMtl作为离线渲染材质参数的输入,解析时,从包含VRayMtl材质参数体系的.vrscene文件中提取几个重要的离线渲染材质参数。
[0059] 解析.vrscene文件以提取离线渲染材质参数时,考虑到材质参数本身配置比较复杂,如diffuse通常会由diffuse Color和diffuse Texture加权构造而成,因此,还需要对这些数据进行图像层面的预处理,以生成规范化的材质参数diffuse,reflect,refract,fresnelIor,glossiness等也是这样处理的。
[0060] 具体地,图像层面的预处理包括:对于待处理的材质参数,将该材质参数乘以对应的倍数,即可以获得预处理后的结果。以reflect为例,假设一个材质具有一个reflect贴图,其reflectColor值为(0.5,0.5,0.5),分别对应RGB三个通道值,并且multiplier为0.37,在每个像素上,将reflect贴图的RGB值乘以multiplier(即0.37)之后,再加上reflectColor的RGB乘以(1-multiplier)(即0.63)作为预处理结果的reflect贴图该像素的值。
[0061] 最后获得的所有规范化的材质参数是以贴图或数值类型呈现。
[0062] 在另外一个实施方式中,包含离线渲染材质参数的文本过于复杂,无法用基础的算法来解析这些文本内容,此时需要寻求另外一种方式获得重要离线渲染材质参数。即转换方法还包括:
[0063] 当无法从离线渲染材质体系文件解析获得重要离线渲染材质参数时,直接使用离线渲染引擎生成输出重要离线渲染材质参数。
[0064] 对于VRay渲染引擎,即可以利用VRay渲染引擎直接输出重要离线渲染材质参数,如diffuse,reflect,refract,glossiness,fresnelIor等。
[0065] S103,按照第一渲染材质转换关系或/和第二渲染材质转换关系将离线渲染材质参数转换为PBR实时渲染材质参数。
[0066] 该实时渲染材质的转换方法根据建立的第一渲染材质转换关系和/或第二渲染材质转换关系,能够实现将离线渲染材质转化成PBR实时渲染材质,以保证实时渲染效果与离线渲染结果更为接近。
[0067] 如图6所示,本发明提供的PBR实时渲染材质的转换装置,包括:
[0068] 材质转换关系构建模块601,用于根据离线渲染材质参数通道和PBR实时渲染材质参数通道的对应关系构建第一渲染材质转换关系;还用于根据离线渲染图和PBR实时渲染图的相似性构建第二渲染材质转换关系;
[0069] 离线渲染材质参数获取模块602,用于对离线渲染材质体系文件进行离线渲染材质解析,获得离线渲染材质参数;
[0070] 转换模块603,用于按照第一渲染材质转换关系或/和第二渲染材质转换关系将离线渲染材质参数转换为PBR实时渲染材质参数。
[0071] 当离线渲染引擎输出结果包括渲染材质参数通道时,材质转换关系构建模块601包括:
[0072] 第一对应关系数据集构建模块6011,用于在离线渲染材质参数空间上,对渲染点进行采样,生成离线渲染材质参数通道结果;在相同的渲染相机参数设置条件下,在PBR实时渲染材质参数空间上对渲染点进行遍历,生成PBR实时渲染材质参数通道结果;根据离线渲染材质参数通道结果和PBR实时渲染材质参数通道结果,选取与离线渲染材质参数通道完全对应上的PBR实时渲染材质参数作为对应结果,以此来构建第一对应关系数据集;
[0073] 第一渲染材质转换关系构建模块6012,用于根据第一对应关系数据集,拟合从离线渲染材质参数到PBR实时渲染材质参数的转换公式,以该转换公式作为第一渲染材质转换关系。
[0074] 在第一渲染材质转换关系构建模块6012中,可以以2离线渲染材质参数作为自变量,以1个PBR实时渲染材质参数作为因变量,采用三元方程进行拟合,可以拟合成圆锥曲线方程。
[0075] 当离线渲染引擎输出结果为离线渲染图时,材质转换关系构建模块601包括:
[0076] 第二对应关系数据集构建模块6013,用于采用SSIM算法对离线渲染图和PBR实时渲染图进行相似度匹配,寻找与离线渲染材质体系最相近的PBR实时渲染材质参数组合,以此构建第二对应关系数据集;
[0077] 第二渲染材质转换关系构建模块6014,用于根据第二对应关系数据集,拟合从离线渲染材质参数到PBR实时渲染材质参数的转换公式,以该转换公式作为第二渲染材质转换关系。
[0078] 在第二渲染材质转换关系构建模块6014中,可以以2离线渲染材质参数作为自变量,以1个PBR实时渲染材质参数作为因变量,采用三元方程进行拟合,可以拟合成圆锥曲线方程。
[0079] 该PBR实时渲染材质的转换装置中实现材质转换的过程与上述的转换方法相同,再此不再赘述。
[0080] 该PBR实时渲染材质的转换装置根据建立的第一渲染材质转换关系和/或第二渲染材质转换关系,能够实现将离线渲染材质转化成PBR实时渲染材质,以保证实时渲染效果与离线渲染结果更为接近。
[0081] 在另外一个实施方式中,提供了一种PBR实时渲染材质的转换系统,包括计算机存储器、计算机处理器以及存储在所述计算机存储器中并可在所述计算机处理器上执行的计算机程序,
[0082] 所述计算机存储器中存有利用上述的转换方法构建的第一渲染材质转换关系,或/和第二渲染材质转换关系;
[0083] 所述计算机处理器执行所述计算机程序时实现以下步骤:
[0084] 对离线渲染材质体系文件进行离线渲染材质解析,获得离线渲染材质参数;
[0085] 按照第一渲染材质转换关系或/和第二渲染材质转换关系将离线渲染材质参数转换为PBR实时渲染材质参数。
[0086] 在实际应用中,利用上述转换方法构建第一渲染材质转换关系,或/和第二渲染材质转换关系,将该第一渲染材质转换关系和/或第二渲染材质转换关系存储到计算机存储器中,这样在应用的时候,计算机处理器直接调用事先存储的第一渲染材质转换关系和/或第二渲染材质转换关系进行离线渲染材质到PBR实时渲染材质的转换,能够提升转化速度。
[0087] 实际应用中,计算机存储器可以为在近端的易失性存储器,如RAM,还可以是失性存储器,如ROM,FLASH,软盘,机械硬盘等,还可以是远端的存储云。计算机处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA),即可以通过这些处理器实现离线渲染材质参数的获取和离线渲染材质参数转换为PBR实时渲染材质参数的转换步骤。
[0088] 该PBR实时渲染材质的转换系统中,第一渲染材质转换关系,或/和第二渲染材质转换关系的构建步骤与上述转化方法的步骤相同,此处不再赘述。此外,计算机处理器执行的离线渲染材质参数的获取和离线渲染材质参数转换为PBR实时渲染材质参数的转换步骤与上述转化方法的步骤也相同,此处不再赘述。
[0089] 当然,上述可在所述计算机处理器上执行的计算机程序,即实现对离线渲染材质体系文件进行离线渲染材质解析,获得离线渲染材质参数;按照第一渲染材质转换关系或/和第二渲染材质转换关系将离线渲染材质参数转换为PBR实时渲染材质参数的计算机指令也可以存储在可读介质,如磁盘存储器和光学存储器。
[0090] 上述PBR实时渲染材质的转换系统根据存储的第一渲染材质转换关系和/或第二渲染材质转换关系,能够实现将离线渲染材质转化成PBR实时渲染材质,以保证实时渲染效果与离线渲染结果更为接近。
[0091] 在另外一个实施方式中,提供了一种实时渲染方法,利用上述转换方法、转换装置以及转化系统获得的PBR实时渲染材质参数进行实时渲染。
[0092] 该实时渲染方法利用从离线渲染材质转化成PBR实时渲染材质,能够保证实时渲染效果与离线渲染结果更为接近,即提升实时渲染效果。
[0093] 以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。