本公开涉及计算机图像处理和游戏开发技术,具体而言,本公开涉及一种材质转换方法,引擎的材质重建方法和渲染方法、电子设备、计算机可读存储介质及计算机程序产品。
背景技术:
1、在使用引擎进行游戏开发或者虚拟现实场景搭建、工业渲染等工作的过程中,可能会涉及到使用其它数字内容生成(digital content creation,dcc)软件生成的模型或单独的材质,各种模型中材质的格式各异,单独的材质也可有多种格式,且模型和材质可能根据多种不同光照模型生成。
2、对于引擎行业,为了获得接近真实世界的渲染效果,目前业内主流的技术为根据metallic-roughness工作流的pbr(基于物理的渲染)材质和光照模型进行渲染,特别是对于游戏引擎行业,业内主流的几大游戏引擎均只支持根据metallic-roughness工作流的pbr材质。这要求开发者使用外部材质也必须事先转化为符合metallic-roughness工作流的pbr光照模型,否则将会导致渲染失败或者渲染效果不佳。从而给dcc软件中输出的使用specular-glossiness工作流的pbr和phong等光照模型的材质在游戏引擎中的使用带来了限制。
3、渲染引擎如果设置为同时维护三套基础材质模型的代价很高,每套基础材质模型又会扩展出若干材质,着色器维护负担也会很重,而且phong和pbr的环境反射卷积也无法使用同一套资源,烘焙端也要做相应的支持。因此,当前的引擎行业并未有能够同时支持多种材质的解决方案,而是要求用户只能使用引擎支持的材质类型进行开发。
技术实现思路
1、本公开实施例旨在一定程度上解决上述问题的至少一个方面。为此,本公开实施例提供了一种材质转换方法,引擎的材质重建方法和渲染方法、电子设备及计算机存储介质,将不同光照模型下的材质自动转化为为符合pbr光照模型,使得引擎能够在仅提供支持pbr光照模型的渲染的前提下,也能够支持更多种类的材质输入而能得到良好的渲染效果。
2、根据本公开实施例的第一方面,提供了一种材质转换方法,其包括:
3、获取原始材质对应的第一光照类型和目标材质对应的第二光照类型;
4、根据第一光照类型和第二光照类型,确定原始材质和目标材质中参与转换的材质参数,其中,参与转换的材质参数包括漫反射贴图diffuse、反照率贴图albedo、金属性贴图metallic、和镜面反射贴图specular中的一种或多种;
5、根据参与转换的材质参数之间的约束关系通过原始材质的材质参数中已知的材质参数值获取目标材质中未知的材质参数值;以及根据求得的目标材质的材质参数,将原始材质转换为目标材质。
6、在一些实施例中,参与转换的材质参数之间的约束关系包括以下参数关系公式,根据参数关系公式通过原始材质的材质参数中已知的材质参数值求解目标材质中未知的材质参数值:
7、公式1:d=a(1.0-m)
8、公式2:s=f0*(1.0-m)+a*m
9、其中,d表示漫反射贴图diffuse,a表示反照率贴图albedo,m表示金属性贴图metallic,s表示镜面反射贴图specular,f0表示非金属材质的基准镜面反射率。
10、根据本公开实施例的第二方面,提供了一种引擎的材质重建方法,其包括:
11、根据输入引擎的原始材质文件获取原始材质对应的光照类型;
12、根据原始材质的光照类型和引擎支持的目标材质的光照类型确定参与转换的材质参数;
13、采用本公开第一方面的材质转换方法,根据原始材质的材质参数值获取目标材质的材质参数值;以及
14、根据目标材质的材质参数值在引擎中重建目标材质。
15、根据本公开实施例的第三方面,提供了一种引擎的渲染方法,其包括:
16、采用本公开第一方面的材质转换方法将原始材质的参数转换为引擎支持的目标材质的参数;
17、根据目标材质的参数进行图像渲染。
18、根据本公开实施例的第四方面,提供了一种电子设备,该电子设备包括:
19、存储器;
20、处理器,处理器包括中央处理器cpu和/或图形处理器gpu;以及
21、存储在存储器上的计算机程序,其中
22、计算机程序被处理器执行时实现根据本公开的第一方面的材质转换方法、根据本公开第二方面的引擎的材质重建方法或根据本公开第三方面的引擎的渲染方法。
23、根据本公开实施例的第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现根据本公开第一方面的材质转换方法、根据本公开第二方面的引擎的材质重建方法或根据本公开第三方面的引擎的渲染方法。
24、本公开的实施例提供的技术方案带来的有益效果是:
25、通过本公开方法的材质参数的转换计算,引擎在获取到不同类型的原始材质时,将原始材质重建为引擎能支持的目标材质,从而既能保证资源和渲染效果与dcc端一致,又能使光照模型与引擎一致。且材质重建过程无需使用第三方插件,扩展了可用材质的选择范围,方便用户进行开发。
26、引擎的渲染可以实现对不同种类的原始材质的兼容,在效果展现上能维持资源和渲染效果都与dcc端一致,而光照模型又能和引擎一致。并且对开发者而言不同类型的材质使用过程,无需额外的操作,简化了操作过程。
1.一种材质转换方法,其特征在于,包括:
2.根据权利要求1所述的材质转换方法,其特征在于,
3.根据权利要求1所述的材质转换方法,其特征在于,根据所述第一光照类型和所述第二光照类型,确定所述原始材质和所述目标材质中参与转换的材质参数,包括:
4.根据权利要求1所述的材质转换方法,其特征在于,所述参与转换的材质参数之间的约束关系包括以下参数关系公式,根据所述参数关系公式通过原始材质的材质参数中已知的材质参数值求解目标材质中未知的材质参数值:
5.根据权利要求4所述的材质转换方法,其特征在于,所述根据所述参数关系公式通过原始材质的材质参数中已知的材质参数值求解目标材质中未知的材质参数值,包括:
6.根据权利要求5所述的材质转换方法,其特征在于,所述根据所述一元二次方程的解得到参数m包括:
7.根据权利要求5所述的材质转换方法,其特征在于,所述根据所述一元二次方程的解得到参数m的操作中,对于参数贴图中的每个像素点,漫反射贴图diffuse和镜面反射贴图specular均为三维rgb向量,参数s和参数d分别取对应rgb三维向量中的最大分量值,并据此计算所述一元二次方程的解。
8.根据权利要求4-7任一项所述的材质转换方法,其特征在于,
9.根据权利要求7所述的材质转换方法,其特征在于,所述方法还包括:
10.根据权利要求7所述的材质转换方法,其特征在于,所述方法还包括:
11.一种引擎的材质重建方法,其特征在于,包括:
12.一种引擎的渲染方法,其特征在于,包括:
13.一种电子设备(计算机装置/设备/系统),包括:
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10中任一项所述的材质转换方法,权利要求11所述的引擎的材质重建方法,或权利要求12所述的引擎的渲染方法。
