CN116912388A - 贴图处理方法、装置、计算机可读存储介质和电子装置 - Google Patents

贴图处理方法、装置、计算机可读存储介质和电子装置 Download PDF

Info

Publication number
CN116912388A
CN116912388A CN202310835350.9A CN202310835350A CN116912388A CN 116912388 A CN116912388 A CN 116912388A CN 202310835350 A CN202310835350 A CN 202310835350A CN 116912388 A CN116912388 A CN 116912388A
Authority
CN
China
Prior art keywords
rendering engine
target
data
map
type
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.)
Pending
Application number
CN202310835350.9A
Other languages
English (en)
Inventor
罗舒仁
郭正扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202310835350.9A priority Critical patent/CN116912388A/zh
Publication of CN116912388A publication Critical patent/CN116912388A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本申请公开了一种贴图处理方法、装置、计算机可读存储介质和电子装置,涉及图像处理技术领域。该方法包括:确定目标材质类型,其中,目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型;基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果;基于匹配结果在第二渲染引擎中创建材质着色器,并将第一渲染引擎中的模型与贴图导入第二渲染引擎;基于材质着色器、第一运算信息、第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图。本申请解决了相关技术中的材质转换工具单一,无法导入实时渲染引擎处理后的贴图,导致离线渲染引擎无法实现实时渲染引擎所能达到的渲染效果的技术问题。

Description

贴图处理方法、装置、计算机可读存储介质和电子装置
技术领域
本申请涉及图像处理技术领域,具体而言,涉及一种贴图处理方法、装置、计算机可读存储介质和电子装置。
背景技术
在对贴图进行渲染处理时,为了提高贴图的复用率或渲染效果,通常会将模型原本的材质贴图在实时渲染引擎中进行实时渲染。该渲染方式虽然在渲染速度上有很大提升,但由于实时渲染引擎中光照算法的限制,实时渲染得到的图像质量与在离线渲染引擎中离线渲染得到的图像质量仍然有很大差距,为了输出更高质量的渲染图像,仍需要使用离线渲染引擎对贴图进行处理。
目前,通过材质转换工具将制图软件制作的贴图导入至离线渲染引擎中创建材质球。但现有的材质转换工具的材质转换功能单一,仅能导入制图软件中制作的贴图,无法导入实时渲染引擎处理后的贴图。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请至少部分实施例提供了一种贴图处理方法、装置、计算机可读存储介质和电子装置,以至少解决相关技术中的材质转换工具单一,无法导入实时渲染引擎处理后的贴图,导致离线渲染引擎无法实现实时渲染引擎所能达到的渲染效果的技术问题。
根据本申请其中一实施例,提供了一种贴图处理方法,该方法包括:确定目标材质类型,其中,目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型;基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果,其中,第一目标材质数据用于表示第一渲染引擎中的材质属性,第二目标材质数据用于表示第二渲染引擎中的材质属性;基于匹配结果在第二渲染引擎中创建材质着色器,并将第一渲染引擎中的模型与贴图导入第二渲染引擎;基于材质着色器、第一运算信息、第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图,其中,第一运算信息用于表示第一渲染引擎中的节点之间的运算功能,初始贴图基于第一渲染引擎处理得到,目标贴图的渲染精度高于初始贴图的渲染精度。
根据本申请其中一实施例,还提供了一种贴图处理装置,该装置包括:第一确定模块,第一确定模块用于确定目标材质类型,其中,目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型;匹配模块,匹配模块用于基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果,其中,第一目标材质数据用于表示第一渲染引擎中的材质属性,第二目标材质数据用于表示第二渲染引擎中的材质属性;第二确定模块,第二确定模块用于基于匹配结果在第二渲染引擎中创建材质着色器,并将第一渲染引擎中的模型与贴图导入第二渲染引擎;第三确定模块,第三确定模块用于基于材质着色器、第一运算信息、第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图,其中,第一运算信息用于表示第一渲染引擎中的节点之间的运算功能,初始贴图基于第一渲染引擎处理得到,目标贴图的渲染精度高于初始贴图的渲染精度。
根据本申请其中一实施例,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为在计算机或处理器上运行时执行上述实施例中的贴图处理方法。
根据本申请其中一实施例,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述实施例中的贴图处理方法。
在本申请至少部分实施例中,通过确定目标材质类型,其中,目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型;基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果,其中,第一目标材质数据用于表示第一渲染引擎中的材质属性,第二目标材质数据用于表示第二渲染引擎中的材质属性;基于匹配结果在第二渲染引擎中创建材质着色器,并将第一渲染引擎中的模型与贴图导入第二渲染引擎;基于材质着色器、第一运算信息、第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图,其中,第一运算信息用于表示第一渲染引擎中的节点之间的运算功能,初始贴图基于第一渲染引擎处理得到,目标贴图的渲染精度高于初始贴图的渲染精度。达到了在离线渲染引擎中导入与实时渲染引擎相同的材质的目的,从而能够实现在离线渲染引擎中得到材质贴图和颜色均与实时渲染引擎得到的贴图相同,且具有更优秀的渲染精度和视觉表现的贴图的技术效果,进而解决了相关技术中的材质转换工具单一,无法导入实时渲染引擎处理后的贴图,导致离线渲染引擎无法实现实时渲染引擎所能达到的渲染效果的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例的一种贴图处理的移动终端的硬件结构框图;
图2是根据本申请其中一实施例的贴图处理方法的流程图;
图3是根据本申请其中一实施例的初始贴图示意图;
图4是根据本申请其中一实施例的目标贴图示意图;
图5是根据本申请其中一实施例的其他贴图示意图;
图6是根据本申请其中一可选实施例的贴图处理装置的结构框图;
图7是根据本申请实施例的一种电子装置的示意图。
具体实施方式
为了便于理解,示例性地给出了部分与本申请实施例相关概念的说明以供参考。
如下所示:
Maya:一款三维(three-dimensional,3D)动画制作软件,可以创建高质量的三维模型、渲染、动画和视觉特效,并被广泛应用于电影、游戏等领域。其功能完善,工作灵活,制作效率极高,渲染真实感极强,是电影级别的高端离线渲染制作软件。
Messiah引擎:一款用于3D动画、游戏和虚拟现实的软件引擎。
着色器(Shader):一种用于实现图形渲染的程序。运行在显卡上,控制光线、颜色和材质等视觉效果。Shader已成为计算机图形学领域中不可或缺的部分,并且被广泛应用于游戏开发、动画制作以及电影特效等方面。在各类引擎中通过Shader创建材质。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在一种可能的实施方式中,针对图像处理技术领域下,在游戏的图像渲染过程中,游戏实时渲染引擎所获得的渲染结果无法满足高质量贴图的需求,需要使用到离线渲染引擎,例如Arnold等。然而目前通过已有的材质转换工具,例如DW_MaterialManager,仅能够将制图软件制作的贴图导入至离线渲染引擎中创建材质球。
发明人经过实践并仔细研究后,发现上述方法仍然存在无法在离线渲染引擎中导入对于贴图进一步处理后的结果,也即在Messiah引擎这类实时渲染引擎中对贴图进行了进一步处理的材质并不支持导入至离线渲染引擎的问题。基于此,本申请实施例应用的游戏场景可以是游戏中图像处理领域,提出了一种贴图处理方法,通过确定目标材质类型,其中,目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型;基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果,其中,第一目标材质数据用于表示第一渲染引擎中的材质属性,第二目标材质数据用于表示第二渲染引擎中的材质属性;基于匹配结果在第二渲染引擎中创建材质着色器,并将第一渲染引擎中的模型与贴图导入第二渲染引擎;基于材质着色器、第一运算信息、第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图,其中,第一运算信息用于表示第一渲染引擎中的节点之间的运算功能,初始贴图基于第一渲染引擎处理得到,目标贴图的渲染精度高于初始贴图的渲染精度。达到了在离线渲染引擎中导入与实时渲染引擎相同的材质的目的,从而能够实现在离线渲染引擎中得到材质贴图和颜色均与实时渲染引擎得到的贴图相同,且具有更优秀的渲染精度和视觉表现的贴图的技术效果,进而解决了相关技术中的材质转换工具单一,无法导入实时渲染引擎处理后的贴图,导致离线渲染引擎无法实现实时渲染引擎所能达到的渲染效果的技术问题。
本申请涉及到的上述方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,该移动终端可以是智能手机、掌上电脑以及移动互联网设备、平板电脑(Personal Access Display,PAD)、游戏机等终端设备。图1是本申请实施例的一种贴图处理方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于中央处理器(centralprocessing unit,CPU)、图形处理器(graphics processing unit,GPU)、数字信号处理(digital signal processing,DSP)芯片、微处理器(microcontroller unit,MCU)、可编程逻辑器件(field-programmable gate array,FPGA)、神经网络处理器(neural networkprocessing unit,NPU)、张量处理器(tensor processing unit,TPU)、人工智能(artificial intelligent,AI)类型处理器等的处理装置)和用于存储数据的存储器104,在本申请其中一实施例中,还可以包括:传输设备106、输入输出设备108以及显示设备110。
在一些以游戏场景为主的可选实施例中,上述设备还可以提供具有触摸触敏表面的人机交互界面,该人机交互界面可以感应手指接触和/或手势来与图形用户界面(Graphical User Interface,GUI)进行人机交互,该人机交互功能可以包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
本领域技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
根据本申请其中一实施例,提供了一种贴图处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在一种可能的实施方式中,本申请实施例提供了一种贴图处理方法,图2是根据本申请其中一实施例的贴图处理方法的流程图,如图2所示,该方法包括如下步骤:
步骤S20,确定目标材质类型。
其中,目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型。
第一渲染引擎和第二渲染引擎均可以为实时渲染引擎或离线渲染引擎,示例性地,若第一渲染引擎为实时渲染引擎,则第二渲染引擎为离线渲染引擎,相反地,若第一渲染引擎为离线渲染引擎,则第二渲染引擎为实时渲染引擎。
由于实时渲染引擎中使用的Shader语言与离线渲染引擎中使用的Shader语言不同,即两者所使用的渲染方式不同,因此为了使两者引擎中的材质能够进行转换,则需要分别抽象化两者引擎的渲染过程,确定出相似的部分来进行对应。
抽象化的渲染过程可以概括为以下步骤:场景设置、资源加载、光照设置、着色器设置、渲染设置、摄像机设置、几何结构创建、材质设置和画面渲染。其中,涉及材质转换的步骤为着色器设置、摄像机设置、渲染设置以及材质设置。
摄像机设置主要是对画面采样、相机曝光等参数进行统一设置,渲染设置主要是对分辨率等参数统一设置,材质设置可以通过在离线渲染引擎中使用与实时渲染引擎中相同的贴图,并将材质参数调整至相同。而本申请实施例所提出的方法,主要围绕着色器设置方面。
由于需要确定出实时渲染引擎和离线渲染引擎中相似的部分来进行对应,即将作用相似的材质参数进行匹配,因此需要确定出第一渲染引擎和第二渲染引擎中共有的材质类型,即目标材质类型。
示例性地,在实时渲染引擎中,材质参数包括但不限于颜色、纹理、透明度、光泽度/粗糙度、法线贴图/几何细节贴图、折射率/折射指数、发光强度/自发光等,其中,颜色为基本颜色属性,用于表示物体外观的颜色。纹理用于定义物体表面细节、纹理和形状,可以使用不同类型的纹理,比如漫反射纹理、镜面反射纹理等。透明度用于控制物体是否可见或半透明。光泽度/粗糙度用于描述物体表面光滑程度或粗糙程度,并影响反射效果。法线贴图/几何细节贴图通过在模型上应用几何信息来增强其视觉效果,用于提供更多的细节和深度感。折射率/折射指数用于控制光线穿过物体后方向发生变化的程度。发光强度/自发光用于使物体看起来像是会散发出一些亮光或者辐射出一些颜色,从而增加真实感和美感。
在离线渲染引擎中,材质参数包括但不限于漫反射、镜面反射、折射/透明度、发光强度/自发光、环境遮挡(AO)等,其中,漫反射用于描述物体表面对光线的散射程度。折射/透明度用于控制物体是否可见或半透明,并影响折射效果。发光强度/自发光:让物体看起来像是会散发出一些亮光或者辐射出一些颜色以增加真实感和美感。环境遮挡(AO)用于描述环境中阻碍遮住了某个位置或对象上下文信息,使其变暗的程度。
可以看出,在实时渲染引擎和离线渲染引擎中,存在相似功能的材质参数,例如都包括自发光等,通过对该相似功能的材质参数的材质类型进行抽象概括,即可以得到目标材质类型。示例性的,对实时渲染引擎和离线渲染引擎中相似功能的材质参数进行抽象概括,所确定的目标材质类型可以包括以下六种材质类型:基本颜色、高光颜色、粗糙度、金属度、法线和自发光。
步骤S22,基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果。
其中,第一目标材质数据用于表示第一渲染引擎中的材质属性,第二目标材质数据用于表示第二渲染引擎中的材质属性。
由于渲染引擎中着色器可以抽象化分为四个基本的着色类型:基本着色器、高光反射器、折射器和半透明着色器,上述着色器的基本功能是使模型的表面具有特定的光照特性,以实现特定的渲染效果,每种着色器都有特定的参数,例如颜色、纹理、反射率、折射率等,用于调整物体表面的外观和视觉效果,此处着色器的参数即为前述提到的材质参数。
第一目标材质数据即为第一渲染引擎中着色器的参数,相应地,第二目标材质数据即为第二渲染引擎中着色器的参数。步骤S22中基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配可以理解为对第一渲染引擎中的着色器的参数与第二渲染引擎中的着色器的参数进行统一设置,将第一渲染引擎与第二渲染引擎中功能相似的着色器的参数进行对应匹配,从而得到匹配结果。该匹配结果用于表示第一渲染引擎中的第一目标材质数据与第二渲染引擎中的第二目标材质数据的对应关系。
示例性地,基于实时渲染引擎与离线渲染引擎共有的材质参数类型,对实时渲染引擎中的材质参数与离线渲染引擎中的材质参数进行匹配,从而得到匹配结果。
步骤S24,基于匹配结果在第二渲染引擎中创建材质着色器,并将第一渲染引擎中的模型与贴图导入第二渲染引擎。
确定出第一渲染引擎和第二渲染引擎的材质参数的匹配结果后,在第二渲染引擎中创建材质着色器,并基于匹配结果将材质参数与材质着色器中的材质节点分别进行设置,将所有节点添加至材质中,从而将第一渲染引擎中的材质转换并添加至第二渲染引擎中。
示例性地,基于匹配结果获取实时渲染引擎中的材质,并将实时渲染引擎中的材质转换成离线渲染引擎中的材质,并将结果存储在offline_materials列表中。遍历每个材质,获取其对应着色器(shader)并将其存储在shaders列表中。将shaders列表中的每个shader转换为离线渲染所需的节点(nodes),并将结果存储在offline_nodes列表中。同时遍历offline_materials和offline_nodes两个列表,在每个材质上添加对应节点后将材质添加到离线渲染引擎中,从而实现材质转换的离线渲染引擎。
除上述材质转换之外,为了使第二渲染引擎能够实现第一渲染引擎所能实现的渲染效果,还需要将第一渲染引擎中所使用的模型和贴图导入至第二渲染引擎中,从而能够在第二渲染引擎中选择相应的模型进行贴图处理,得到与第一渲染引擎相同的渲染效果且贴图质量满足需求的贴图。
示例性地,将实时渲染引擎中使用的模型与贴图导入离线渲染引擎中。
步骤S26,基于材质着色器、第一运算信息、第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图。
其中,第一运算信息用于表示第一渲染引擎中的节点之间的运算功能,初始贴图基于第一渲染引擎处理得到,目标贴图的渲染精度高于初始贴图的渲染精度。
第一运算信息即为第一渲染引擎中节点之间的运算方式,用于表示第一渲染引擎中节点之间的各种算法的运算功能。
实时渲染引擎中通过对贴图或材质参数进行额外运算来能够实现更优秀的渲染效果,若要在离线渲染引擎中实现实时渲染引擎所能实现的渲染效果,则不仅需要对实时渲染引擎与离线渲染引擎两者的材质参数进行匹配,实现材质转换,还需要对实时渲染引擎中的运算信息进行转换,在离线渲染引擎中复刻实时渲染引擎的源码中对数据的运算处理,以使得在离线渲染引擎中能够完成实时渲染引擎中的运算功能。
根据离线渲染引擎中能够实现材质转换的材质着色器、实时渲染引擎中的第一运算信息、离线渲染引擎中导入的实时渲染引擎中的模型与贴图以及通过实时渲染引擎处理得到的初始贴图的贴图信息,能够基于离线渲染引擎渲染出目标贴图,该目标贴图与初始贴图所绘制的物体相同,且目标贴图的渲染精度高于初始贴图。
示例性地,如图3至图5所示,图3是根据本申请其中一实施例的初始贴图示意图,图4是根据本申请其中一实施例的目标贴图示意图,图5是根据本申请其中一实施例的其他贴图示意图。基于实时渲染引擎能够得到图3所示的初始贴图,基于本申请实施例所提出的贴图处理方法,将图3所示的初始贴图的贴图信息输入至离线渲染引擎中,能够得到图4所示的目标贴图。可以看出,图4所示的目标贴图的图像会更加逼真、细腻,能够呈现更多的细节和纹理,也即图4所示的目标贴图的渲染精度和视觉效果都优于图3所示的通过实时渲染引擎得到的初始贴图的渲染精度和视觉效果,进而通过本申请实施例所提出的贴图处理方法能够通过离线渲染引擎得到渲染精度和视觉效果都更优秀的贴图。
并且,对比于通过已有的材质转换工具所得到的图5所示的其他贴图,可以看出,已有的材质转换工具仅针对贴图的输入输出进行转换,并不能还原实时渲染引擎中复杂的材质运算功能,尤其是在当颜色等重要属性并不直接来源于贴图,而是需要对贴图进行进一步处理才能得到的情况下,通过已有的材质转换工具所得到贴图的渲染效果明显劣于通过本申请的方案所得到贴图的渲染效果。
可以理解的是,本申请实施例可以实现在离线渲染引擎中达到实时渲染引擎所能实现的渲染效果,相应地,也可以在实时渲染引擎中达到离线渲染引擎所能实现的渲染效果。
通过上述步骤,通过确定目标材质类型,其中,目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型;基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果,其中,第一目标材质数据用于表示第一渲染引擎中的材质属性,第二目标材质数据用于表示第二渲染引擎中的材质属性;基于匹配结果在第二渲染引擎中创建材质着色器,并将所述第一渲染引擎中的模型与贴图导入所述第二渲染引擎;基于材质着色器、第一运算信息、第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图,其中,第一运算信息用于表示第一渲染引擎中的节点之间的运算功能,初始贴图基于第一渲染引擎处理得到,目标贴图的渲染精度高于初始贴图的渲染精度。达到了在离线渲染引擎中导入与实时渲染引擎相同的材质的目的,从而能够实现在离线渲染引擎中得到材质贴图和颜色均与实时渲染引擎得到的贴图相同,且具有更优秀的渲染精度和视觉表现的贴图的技术效果,进而解决了相关技术中的材质转换工具单一,无法导入实时渲染引擎处理后的贴图,导致离线渲染引擎无法实现实时渲染引擎所能达到的渲染效果的技术问题。
在一种可能的实施方式中,步骤S20中,确定目标材质类型可以包括以下执行步骤:
步骤S201,确定第一目标材质数据与第二目标材质数据;
步骤S202,基于第一目标材质数据的渲染效果确定第一目标材质数据的材质类型,以及基于第二目标材质数据的渲染效果确定第二目标材质数据的材质类型;
步骤S203,基于第一目标材质数据的材质类型以及第二目标材质数据的材质类型,确定目标材质类型。
其中,目标材质类型至少包括:基本颜色、高光颜色、粗糙度、金属度、法线和自发光中的任一项。
确定出第一渲染引擎中的重点材质参数之后,即确定出第一目标材质数据之后,通过第一目标材质数据在渲染贴图时所起到的渲染效果,从而抽象出第一目标材质数据的材质类型,相应地,确定出第二目标材质数据之后,通过第二目标材质数据在渲染贴图时所起到的渲染效果,从而抽象出第二目标材质数据的材质类型,进而根据第一渲染引擎和第二渲染引擎中的重点材质类型确定出共有的目标材质类型。
示例性地,通过确定实时渲染引擎和离线渲染引擎中重要的目标材质数据,并分别基于该目标材质数据的渲染效果抽象出该目标材质数据的材质类型,进而根据实时渲染引擎中的材质类型和离线渲染引擎中的材质类型确定出实时渲染引擎和离线渲染引擎共有的目标材质类型,以使离线渲染引擎针对上述目标材质类型进行转换即可保证渲染效果的一致性。
目标材质类型可以包括:基本颜色、高光颜色、粗糙度、金属度、法线和自发光,实时渲染引擎中的漫反射颜色和基本颜色属于目标材质类型中的基本颜色类型,高光颜色属于目标材质类型中的高光颜色类型,粗糙度属于目标材质类型中的粗糙度类型,金属度属于目标材质类型中的金属度类型,光泽度和反射度属于目标材质类型中的法线类型,自发光颜色属于目标材质类型中的自发光类型,此处不一一列举。
在一种可能的实施方式中,步骤S201中,确定第一目标材质数据与第二目标材质数据可以包括以下执行步骤:
步骤S2011,获取第一渲染引擎中的第一材质数据以及第二渲染引擎中的第二材质数据;
步骤S2012,通过分析第一着色器语言确定第一材质数据的渲染效果,以及通过分析第二着色器语言确定第二材质数据的渲染效果;
其中,第一着色器语言为编写第一渲染引擎中的着色器程序的编程语言,第二着色器语言为编写第二渲染引擎中的着色器程序的编程语言。
步骤S2013,基于第一材质数据的渲染效果确定第一目标材质数据,以及基于第二材质数据的渲染效果确定第二目标材质数据。
由于渲染引擎中的材质参数有很多种,因此需要先获取第一渲染引擎中的所有的第一材质数据以及第二渲染引擎中所有的第二材质数据,也即获取渲染引擎中的所有材质属性数据。再通过分析编写第一渲染引擎中的着色器程序的编程语言确定出第一材质数据的渲染效果,以及通过分析编写第二渲染引擎中的着色器程序的编程语言确定出第二材质数据的渲染效果。再基于第一材质数据的渲染效果从第一材质数据中提取重要的第一目标材质数据,以及基于第二材质数据的渲染效果从第二材质数据中提取重要的第二目标材质数据。
提取时,通过分析第一着色器语言对第一渲染引擎代码的语法和语义进行深入理解,借助第一渲染引擎的文档和代码注释进行分析,使用脚本工具提取参数,本申请实施例不予限制。
示例性地,获取实时渲染引擎的所有材质参数,并通过分析实时渲染引擎的着色器语言,从实时渲染引擎的所有材质参数中提取重点材质参数,如漫反射、环境光、高光等参数。相应地,也从获取离线渲染引擎的所有材质参数,并通过分析离线渲染引擎的着色器语言,从离线渲染引擎的所有材质参数中提取重点材质参数。
在一种可能的实施方式中,步骤S22中,基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果可以包括以下执行步骤:
步骤S221,基于不同的目标材质类型,分别将第一目标材质数据中对应的材质数据与第二目标材质数据中对应的材质数据进行匹配,得到匹配结果。通过抽象出的目标材质类型,分别将第一渲染引擎和第二渲染引擎中材质类型对应的材质参数进行匹配,得到匹配结果,从而能够更好地将实时渲染引擎中的效果转换为离线渲染引擎中的效果,实现更加灵活和全面的材质转换。
在一种可能的实施方式中,步骤S24中,基于匹配结果在第二渲染引擎的材质编辑器中创建材质着色器可以包括以下执行步骤:
步骤S241,基于匹配结果确定目标数据名称和目标数据类型;
其中,目标数据名称为与第一目标材质数据的数据名称和第二目标材质数据的数据名称相同的数据名称,目标数据类型为与第一目标材质数据的数据类型和第二目标材质数据的数据类型相同的数据类型。
步骤S242,基于匹配结果、目标数据名称和目标数据类型在第二渲染引擎中创建材质着色器。
在第二渲染引擎中创建材质着色器时,除了要将功能相似的材质参数进行对应匹配,在第二渲染引擎中对材质参数进行命名时,还要保证材质参数名称(即目标数据名称)和材质参数的类型(即目标数据类型)对齐。
示例性地,以实时渲染引擎为Messiah引擎,离线渲染引擎为Maya为例,Messiah中参数主要使用一下两种类型,即LinearColor3与FloatSlider,这两种类型即为三向量与浮点数,对应着Maya中的ColorConstant节点与FloatConstant节点。因此在创建参数时除了对齐参数名称,更重要的是对齐参数的类型。
在一种可能的实施方式中,步骤S26中,基于材质着色器、第一运算信息、第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图可以包括以下执行步骤:
步骤S261,确定第一渲染引擎中的第一运算信息;
步骤S262,基于第一运算信息确定第二运算信息;
其中,第二运算信息用于表示第二渲染引擎中的节点之间的运算功能。
步骤S263,基于材质着色器、第二运算信息、第一渲染引擎中的模型与贴图和贴图信息确定目标贴图。
若需要通过第二渲染引擎渲染出与第一渲染引擎相同的贴图或优于第一渲染引擎的渲染效果的贴图,除了要将第一渲染引擎中的材质进行转换并添加至第二渲染引擎中之外,还需要对运算信息进行转换,使在第二渲染引擎中能够实现第一渲染引擎中所能够实现的运算功能。
首先确定出第一渲染引擎中的第一运算信息,根据第一运算信息确定出能够应用至第二渲染引擎中的第二运算信息,进而将第二运算信息与创建得到的材质参数节点进行结合,使第二渲染引擎中的材质参数与第一渲染引擎中的材质参数对齐,且能实现与第一渲染引擎相同的运算功能,从而基于材质着色器、第二运算信息、第一渲染引擎中的模型与贴图和贴图信息确定目标贴图。
可以理解的是,基于不同函数功能,第一运算信息可以分为多种类型,例如包括基本运算,如加减乘除等,还包括第二渲染引擎中存在的函数功能,此外,还包括第二渲染引擎中不存在的函数功能。
通过下述步骤S2621-步骤S2625分别介绍如何基于不同类型的第一运算信息确定第二运算信息,此处以实时渲染引擎为Messiah引擎,离线渲染引擎为Maya为例。
在一种可能的实施方式中,步骤S262中,基于第一运算信息确定第二运算信息可以包括以下执行步骤:
步骤S2621,响应于第一运算信息为第一类运算信息,基于第二渲染引擎中的第一函数确定第二运算信息。
其中,第一类运算信息包括加法运算、减法运算、乘法运算和除法运算。
示例性地,当第一运算信息为基本运算,如加减乘除等时,在Messiah中是直接使用代码+、-、*、/进行相应的运算,在Maya中有封装好的节点供直接调用,其封装在了统一的Math节点下,而且对于float与color做了区分,在进行转换时,可以使用colorMath以便于节点创建。
此外,若碰到单向量与多向量运算,也可以分通道处理。例如将多向量参数输入至colorMath的A颜色通道,将单向量参数输入至colorMath的B颜色通道,本申请实施例不予限制。
在一种可能的实施方式中,步骤S262中,基于第一运算信息确定第二运算信息可以包括以下执行步骤:
步骤S2622,响应于第一运算信息为第二类运算信息,对第二渲染引擎中的第二函数进行调整,确定第三函数。
其中,第二类运算信息为基于目标渲染器语言封装的函数。
步骤S2623,基于第三函数确定第二运算信息。
示例性地,除了上述的基本运算,Messiah中还包含一些基础高级渲染器语言(High Level Shader Language,HLSL)封装的函数运算,此类运算在Maya中有些被封装成为不同名称的函数,例如Lerp函数,在Messiah的Shader语言(Messiah Shading Language,MessiahSL)中,Lerp函数的作用是通过一个浮点数控制前面两个参数的混合,同样的功能在Maya中被封装成为BlendColors节点,其中因为混合方式的不同,前两个参数需要对调顺序。
在一种可能的实施方式中,步骤S262中,基于第一运算信息确定第二运算信息可以包括以下执行步骤:
步骤S2624,响应于第一运算信息为第三类运算信息,拆解第二渲染引擎中的第四函数,确定第五函数;
其中,第三类运算信息为未基于目标渲染器语言封装的函数。
步骤S2625,基于第五函数确定第二运算信息。
示例性地,除上述两种运算信息之外,还存在Messiah中有而Maya中没有的函数功能。在当Maya中没有封装Messiah中使用的HLSL函数时,需要去拆解Messiah中函数内部的运算,然后在Maya中使用基本运算节点复现。例如Messiah Shader中使用的frac函数,其作用是获取参数的小数部分,而在Maya中并没有封装类似功能的节点,因此需要手动复现,即在Maya中将参数先去整数然后相减,以获得类似frac函数的效果。
通过上述步骤S2621-步骤S2625,在Maya中对齐与Messiah全部运算功能的材质节点,即在Maya中获得了与Messiah中运算一致的离线渲染材质。
在一种可能的实施方式中,贴图信息包括贴图参数和/或采样贴图,步骤S263中,基于材质着色器、第二运算信息、第一渲染引擎中的模型与贴图和贴图信息确定目标贴图可以包括以下执行步骤:
步骤S2631,通过材质着色器调用第一渲染引擎中的模型与贴图,并结合第二运算信息和贴图信息渲染得到目标贴图。
贴图参数可以理解为初始贴图中的材质参数的数值,采样贴图即为初始贴图所使用的采样贴图。
材质着色器根据贴图信息通过调用第一渲染引擎中的模型与贴图,并结合第二运算信息从而渲染得到目标贴图。示例性地,根据Messiah中的材质参数数值填写Maya中的材质参数数值,同时根据初始贴图所使用的采样贴图选择所使用的贴图,结合转换至Maya中的运算信息从而通过Maya渲染出目标贴图,以使目标贴图的渲染精度和视觉效果都优于Messiah引擎所渲染出的初始贴图的渲染精度和视觉效果。
通过本申请实施例所提出的方法得到的目标贴图,能够在保持材质贴图和颜色均相同的前提下,获得有更优秀的渲染精度和视觉表现的结果。
在一种可能的实施方式中,该方法还包括:
步骤S28,在第二渲染引擎中创建暴露参数;
其中,暴露参数用于自定义材质数据。
步骤S30,将暴露参数与第二渲染引擎中的材质编辑器进行连接,以使第二渲染引擎的材质参数支持实时修改且可视化。
由于在实时渲染引擎中,用户可以在材质创建完成后自由调节自定义参数,以便于观察效果并实时修改。因此,为了在离线渲染引擎中实现相同的功能,需要手动暴露自定义参数,以方便用户进行参数调整。
示例性地,可以在Maya中材质的附加属性中创建暴露参数,并与实时渲染引擎中参数统一命名。暴露参数创建完成之后,即可在模型材质的附加属性中可以看到所有创建的参数,以及实现加载贴图的功能。
暴露参数创建完成之后,可以通过Maya中的连接编辑器,将附加属性中的自定义参数与材质编辑器中的节点进行连接。至此,Maya中的材质效果和材质参数都与Messiah保持一致,也即实现了离线渲染引擎中的材质效果和材质参数都与实时渲染引擎保持一致。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种贴图处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本申请其中一实施例的贴图处理装置的结构框图,如图6所示,以贴图处理装置600为例,该贴图处理装置600包括第一确定模块601,第一确定模块601用于确定目标材质类型,其中,目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型;匹配模块602,匹配模块602用于基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果,其中,第一目标材质数据用于表示第一渲染引擎中的材质属性,第二目标材质数据用于表示第二渲染引擎中的材质属性;处理模块603,处理模块603用于基于匹配结果在第二渲染引擎中创建材质着色器,并将第一渲染引擎中的模型与贴图导入第二渲染引擎;第二确定模块604,第二确定模块604用于基于材质着色器、第一运算信息、第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图,其中,第一运算信息用于表示第一渲染引擎中的节点之间的运算功能,初始贴图基于第一渲染引擎处理得到,目标贴图的渲染精度高于初始贴图的渲染精度。
可选地,第一确定模块601还用于:确定第一目标材质数据与第二目标材质数据;基于第一目标材质数据的渲染效果确定第一目标材质数据的材质类型,以及基于第二目标材质数据的渲染效果确定第二目标材质数据的材质类型;基于第一目标材质数据的材质类型以及第二目标材质数据的材质类型,确定目标材质类型,其中,目标材质类型至少包括:基本颜色、高光颜色、粗糙度、金属度、法线和自发光中的任一项。
可选地,第一确定模块601还用于:获取第一渲染引擎中的第一材质数据以及第二渲染引擎中的第二材质数据;通过分析第一着色器语言确定第一材质数据的渲染效果,以及通过分析第二着色器语言确定第二材质数据的渲染效果,其中,第一着色器语言为编写第一渲染引擎中的着色器程序的编程语言,第二着色器语言为编写第二渲染引擎中的着色器程序的编程语言;基于第一材质数据的渲染效果确定第一目标材质数据,以及基于第二材质数据的渲染效果确定第二目标材质数据。
可选地,匹配模块602还用于:基于不同的目标材质类型,分别将第一目标材质数据中对应的材质数据与第二目标材质数据中对应的材质数据进行匹配,得到匹配结果。
可选地,处理模块603还用于:基于匹配结果确定目标数据名称和目标数据类型,其中,目标数据名称为与第一目标材质数据的数据名称和第二目标材质数据的数据名称相同的数据名称,目标数据类型为与第一目标材质数据的数据类型和第二目标材质数据的数据类型相同的数据类型;基于匹配结果、目标数据名称和目标数据类型在第二渲染引擎中创建材质着色器。
可选地,第二确定模块604还用于:确定第一渲染引擎中的第一运算信息;基于第一运算信息确定第二运算信息,其中,第二运算信息用于表示第二渲染引擎中的节点之间的运算功能;基于材质着色器、第二运算信息、第一渲染引擎中的模型与贴图和贴图信息确定目标贴图。
可选地,第二确定模块604还用于:响应于第一运算信息为第一类运算信息,基于第二渲染引擎中的第一函数确定第二运算信息,其中,第一类运算信息包括加法运算、减法运算、乘法运算和除法运算。
可选地,第二确定模块604还用于:响应于第一运算信息为第二类运算信息,对第二渲染引擎中的第二函数进行调整,确定第三函数,其中,第二类运算信息为基于目标渲染器语言封装的函数;基于第三函数确定第二运算信息。
可选地,第二确定模块604还用于:响应于第一运算信息为第三类运算信息,拆解第二渲染引擎中的第四函数,确定第五函数,其中,第三类运算信息为未基于目标渲染器语言封装的函数;基于第五函数确定第二运算信息。
可选地,贴图信息包括贴图参数和/或采样贴图,第二确定模块604还用于:通过材质着色器调用第一渲染引擎中的模型与贴图,并结合第二运算信息和贴图信息渲染得到目标贴图。
可选地,该装置还包括:自定义模块,用于在第二渲染引擎中创建暴露参数,其中,暴露参数用于自定义材质数据;将暴露参数与第二渲染引擎中的材质编辑器进行连接,以使第二渲染引擎的材质参数支持实时修改且可视化。
可选地,第一渲染引擎为实时渲染引擎,第二渲染引擎为离线渲染引擎;或者,第一渲染引擎为离线渲染引擎,第二渲染引擎为实时渲染引擎。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:
步骤S20,确定目标材质类型,其中,目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型;
步骤S22,基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果,其中,第一目标材质数据用于表示第一渲染引擎中的材质属性,第二目标材质数据用于表示第二渲染引擎中的材质属性;
步骤S24,基于匹配结果在第二渲染引擎中创建材质着色器,并将所述第一渲染引擎中的模型与贴图导入所述第二渲染引擎;
步骤S26,基于材质着色器、第一运算信息、第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图,其中,第一运算信息用于表示第一渲染引擎中的节点之间的运算功能,初始贴图基于第一渲染引擎处理得到,目标贴图的渲染精度高于初始贴图的渲染精度。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:确定第一目标材质数据与第二目标材质数据;基于第一目标材质数据的渲染效果确定第一目标材质数据的材质类型,以及基于第二目标材质数据的渲染效果确定第二目标材质数据的材质类型;基于第一目标材质数据的材质类型以及第二目标材质数据的材质类型,确定目标材质类型,其中,目标材质类型至少包括:基本颜色、高光颜色、粗糙度、金属度、法线和自发光中的任一项。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:获取第一渲染引擎中的第一材质数据以及第二渲染引擎中的第二材质数据;通过分析第一着色器语言确定第一材质数据的渲染效果,以及通过分析第二着色器语言确定第二材质数据的渲染效果,其中,第一着色器语言为编写第一渲染引擎中的着色器程序的编程语言,第二着色器语言为编写第二渲染引擎中的着色器程序的编程语言;基于第一材质数据的渲染效果确定第一目标材质数据,以及基于第二材质数据的渲染效果确定第二目标材质数据。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:基于不同的目标材质类型,分别将第一目标材质数据中对应的材质数据与第二目标材质数据中对应的材质数据进行匹配,得到匹配结果。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:基于匹配结果确定目标数据名称和目标数据类型,其中,目标数据名称为与第一目标材质数据的数据名称和第二目标材质数据的数据名称相同的数据名称,目标数据类型为与第一目标材质数据的数据类型和第二目标材质数据的数据类型相同的数据类型;基于匹配结果、目标数据名称和目标数据类型在第二渲染引擎中创建材质着色器。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:确定第一渲染引擎中的第一运算信息;基于第一运算信息确定第二运算信息,其中,第二运算信息用于表示第二渲染引擎中的节点之间的运算功能;基于材质着色器、第二运算信息、第一渲染引擎中的模型与贴图和贴图信息确定目标贴图。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:响应于第一运算信息为第一类运算信息,基于第二渲染引擎中的第一函数确定第二运算信息,其中,第一类运算信息包括加法运算、减法运算、乘法运算和除法运算。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:响应于第一运算信息为第二类运算信息,对第二渲染引擎中的第二函数进行调整,确定第三函数,其中,第二类运算信息为基于目标渲染器语言封装的函数;基于第三函数确定第二运算信息。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:响应于第一运算信息为第三类运算信息,拆解第二渲染引擎中的第四函数,确定第五函数,其中,第三类运算信息为未基于目标渲染器语言封装的函数;基于第五函数确定第二运算信息。
可选地,贴图信息包括贴图参数和/或采样贴图,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:通过材质着色器调用第一渲染引擎中的模型与贴图,并结合第二运算信息和贴图信息渲染得到目标贴图。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:在第二渲染引擎中创建暴露参数,其中,暴露参数用于自定义材质数据;将暴露参数与第二渲染引擎中的材质编辑器进行连接,以使第二渲染引擎的材质参数支持实时修改且可视化。
可选地,第一渲染引擎为实时渲染引擎,第二渲染引擎为离线渲染引擎;或者,第一渲染引擎为离线渲染引擎,第二渲染引擎为实时渲染引擎。
在该实施例的计算机可读存储介质中,提供了一种贴图处理的技术方案,通过确定目标材质类型,其中,目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型;基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果,其中,第一目标材质数据用于表示第一渲染引擎中的材质属性,第二目标材质数据用于表示第二渲染引擎中的材质属性;基于匹配结果在第二渲染引擎中创建材质着色器,并将第一渲染引擎中的模型与贴图导入第二渲染引擎;基于材质着色器、第一运算信息、第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图,其中,第一运算信息用于表示第一渲染引擎中的节点之间的运算功能,初始贴图基于第一渲染引擎处理得到,目标贴图的渲染精度高于初始贴图的渲染精度。达到了在离线渲染引擎中导入与实时渲染引擎相同的材质的目的,从而能够实现在离线渲染引擎中得到材质贴图和颜色均与实时渲染引擎得到的贴图相同,且具有更优秀的渲染精度和视觉表现的贴图的技术效果,进而解决了相关技术中的材质转换工具单一,无法导入实时渲染引擎处理后的贴图,导致离线渲染引擎无法实现实时渲染引擎所能达到的渲染效果的技术问题。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本申请实施方式的方法。
在本申请的示例性实施例中,计算机可读存储介质上存储有能够实现本实施例上述方法的程序产品。在一些可能的实施方式中,本申请实施例的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本实施例上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的步骤。
根据本申请的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本申请实施例的程序产品不限于此,在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
上述程序产品可以采用一个或多个计算机可读介质的任意组合。该计算机可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列举)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Electrically Programmable Read-Only Memory,EPROM)或闪存、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
本申请的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
步骤S20,确定目标材质类型,其中,目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型;
步骤S22,基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果,其中,第一目标材质数据用于表示第一渲染引擎中的材质属性,第二目标材质数据用于表示第二渲染引擎中的材质属性;
步骤S24,基于匹配结果在第二渲染引擎中创建材质着色器,并将所述第一渲染引擎中的模型与贴图导入所述第二渲染引擎;
步骤S26,基于材质着色器、第一运算信息、第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图,其中,第一运算信息用于表示第一渲染引擎中的节点之间的运算功能,初始贴图基于第一渲染引擎处理得到,目标贴图的渲染精度高于初始贴图的渲染精度。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:确定第一目标材质数据与第二目标材质数据;基于第一目标材质数据的渲染效果确定第一目标材质数据的材质类型,以及基于第二目标材质数据的渲染效果确定第二目标材质数据的材质类型;基于第一目标材质数据的材质类型以及第二目标材质数据的材质类型,确定目标材质类型,其中,目标材质类型至少包括:基本颜色、高光颜色、粗糙度、金属度、法线和自发光中的任一项。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:获取第一渲染引擎中的第一材质数据以及第二渲染引擎中的第二材质数据;通过分析第一着色器语言确定第一材质数据的渲染效果,以及通过分析第二着色器语言确定第二材质数据的渲染效果,其中,第一着色器语言为编写第一渲染引擎中的着色器程序的编程语言,第二着色器语言为编写第二渲染引擎中的着色器程序的编程语言;基于第一材质数据的渲染效果确定第一目标材质数据,以及基于第二材质数据的渲染效果确定第二目标材质数据。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:基于不同的目标材质类型,分别将第一目标材质数据中对应的材质数据与第二目标材质数据中对应的材质数据进行匹配,得到匹配结果。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:基于匹配结果确定目标数据名称和目标数据类型,其中,目标数据名称为与第一目标材质数据的数据名称和第二目标材质数据的数据名称相同的数据名称,目标数据类型为与第一目标材质数据的数据类型和第二目标材质数据的数据类型相同的数据类型;基于匹配结果、目标数据名称和目标数据类型在第二渲染引擎中创建材质着色器。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:确定第一渲染引擎中的第一运算信息;基于第一运算信息确定第二运算信息,其中,第二运算信息用于表示第二渲染引擎中的节点之间的运算功能;基于材质着色器、第二运算信息、第一渲染引擎中的模型与贴图和贴图信息确定目标贴图。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:响应于第一运算信息为第一类运算信息,基于第二渲染引擎中的第一函数确定第二运算信息,其中,第一类运算信息包括加法运算、减法运算、乘法运算和除法运算。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:响应于第一运算信息为第二类运算信息,对第二渲染引擎中的第二函数进行调整,确定第三函数,其中,第二类运算信息为基于目标渲染器语言封装的函数;基于第三函数确定第二运算信息。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:响应于第一运算信息为第三类运算信息,拆解第二渲染引擎中的第四函数,确定第五函数,其中,第三类运算信息为未基于目标渲染器语言封装的函数;基于第五函数确定第二运算信息。
可选地,贴图信息包括贴图参数和/或采样贴图,上述处理器还可以被设置为通过计算机程序执行以下步骤:通过材质着色器调用第一渲染引擎中的模型与贴图,并结合第二运算信息和贴图信息渲染得到目标贴图。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:在第二渲染引擎中创建暴露参数,其中,暴露参数用于自定义材质数据;将暴露参数与第二渲染引擎中的材质编辑器进行连接,以使第二渲染引擎的材质参数支持实时修改且可视化。
可选地,第一渲染引擎为实时渲染引擎,第二渲染引擎为离线渲染引擎;或者,第一渲染引擎为离线渲染引擎,第二渲染引擎为实时渲染引擎。
在该实施例的电子装置中,提供了一种贴图处理的技术方案,通过确定目标材质类型,其中,目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型;基于目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果,其中,第一目标材质数据用于表示第一渲染引擎中的材质属性,第二目标材质数据用于表示第二渲染引擎中的材质属性;基于匹配结果在第二渲染引擎中创建材质着色器,并将第一渲染引擎中的模型与贴图导入第二渲染引擎;基于材质着色器、第一运算信息、第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图,其中,第一运算信息用于表示第一渲染引擎中的节点之间的运算功能,初始贴图基于第一渲染引擎处理得到,目标贴图的渲染精度高于初始贴图的渲染精度。达到了在离线渲染引擎中导入与实时渲染引擎相同的材质的目的,从而能够实现在离线渲染引擎中得到材质贴图和颜色均与实时渲染引擎得到的贴图相同,且具有更优秀的渲染精度和视觉表现的贴图的技术效果,进而解决了相关技术中的材质转换工具单一,无法导入实时渲染引擎处理后的贴图,导致离线渲染引擎无法实现实时渲染引擎所能达到的渲染效果的技术问题。
图7是根据本申请实施例的一种电子装置的示意图。如图7所示,电子装置700仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,电子装置700以通用计算设备的形式表现。电子装置700的组件可以包括但不限于:上述至少一个处理器710、上述至少一个存储器720、连接不同系统组件(包括存储器720和处理器710)的总线730和显示器740。
其中,上述存储器720存储有程序代码,所述程序代码可以被处理器710执行,使得处理器710执行本申请实施例的上述方法部分中描述的根据本申请各种示例性实施方式的步骤。
存储器720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。
在一些实例中,存储器720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。存储器720可进一步包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至电子装置700。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理器710或者使用多种总线结构中的任意总线结构的局域总线。
显示器740可以例如触摸屏式的液晶显示器(Liquid Crystal Display,LCD),该液晶显示器可使得用户能够与电子装置700的用户界面进行交互。
可选地,电子装置700也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子装置700交互的设备通信,和/或与使得该电子装置700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口750进行。并且,电子装置700还可以通过网络适配器760与一个或者多个网络(例如局域网(Local AreaNetwork,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图7所示,网络适配器760通过总线730与电子装置700的其它模块通信。应当明白,尽管图7中未示出,可以结合电子装置700使用其它硬件和/或软件模块,可以包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Array ofIndependent Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
上述电子装置700还可以包括:键盘、光标控制设备(如鼠标)、输入/输出接口(I/O接口)、网络接口、电源和/或相机。
本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置700还可包括比图7中所示更多或者更少的组件,或者具有与图1所示不同的配置。存储器720可用于存储计算机程序及对应的数据,如本申请实施例中的贴图处理方法对应的计算机程序及对应的数据。处理器710通过运行存储在存储器720内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的贴图处理方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (15)

1.一种贴图处理方法,其特征在于,所述方法包括:
确定目标材质类型,其中,所述目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型;
基于所述目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果,其中,所述第一目标材质数据用于表示所述第一渲染引擎中的材质属性,所述第二目标材质数据用于表示所述第二渲染引擎中的材质属性;
基于所述匹配结果在所述第二渲染引擎中创建材质着色器,并将所述第一渲染引擎中的模型与贴图导入所述第二渲染引擎;
基于所述材质着色器、第一运算信息、所述第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图,其中,所述第一运算信息用于表示所述第一渲染引擎中的节点之间的运算功能,所述初始贴图基于所述第一渲染引擎处理得到,所述目标贴图的渲染精度高于所述初始贴图的渲染精度。
2.根据权利要求1所述的方法,其特征在于,所述确定目标材质类型包括:
确定所述第一目标材质数据与所述第二目标材质数据;
基于所述第一目标材质数据的渲染效果确定所述第一目标材质数据的材质类型,以及基于所述第二目标材质数据的渲染效果确定所述第二目标材质数据的材质类型;
基于所述第一目标材质数据的材质类型以及所述第二目标材质数据的材质类型,确定所述目标材质类型,其中,所述目标材质类型至少包括:基本颜色、高光颜色、粗糙度、金属度、法线和自发光中的任一项。
3.根据权利要求2所述的方法,其特征在于,所述确定所述第一目标材质数据与所述第二目标材质数据包括:
获取所述第一渲染引擎中的第一材质数据以及所述第二渲染引擎中的第二材质数据;
通过分析第一着色器语言确定所述第一材质数据的渲染效果,以及通过分析第二着色器语言确定所述第二材质数据的渲染效果,其中,所述第一着色器语言为编写所述第一渲染引擎中的着色器程序的编程语言,所述第二着色器语言为编写所述第二渲染引擎中的着色器程序的编程语言;
基于所述第一材质数据的渲染效果确定所述第一目标材质数据,以及基于所述第二材质数据的渲染效果确定所述第二目标材质数据。
4.根据权利要求3所述的方法,其特征在于,所述基于所述目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果包括:
基于不同的所述目标材质类型,分别将所述第一目标材质数据中对应的材质数据与所述第二目标材质数据中对应的材质数据进行匹配,得到匹配结果。
5.根据权利要求1所述的方法,其特征在于,所述基于所述匹配结果在所述第二渲染引擎中创建材质着色器包括:
基于所述匹配结果确定目标数据名称和目标数据类型,其中,所述目标数据名称为与所述第一目标材质数据的数据名称和所述第二目标材质数据的数据名称相同的数据名称,所述目标数据类型为与所述第一目标材质数据的数据类型和所述第二目标材质数据的数据类型相同的数据类型;
基于所述匹配结果、所述目标数据名称和所述目标数据类型在所述第二渲染引擎中创建所述材质着色器。
6.根据权利要求1所述的方法,其特征在于,所述基于所述材质着色器、第一运算信息、所述第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图包括:
确定所述第一渲染引擎中的所述第一运算信息;
基于所述第一运算信息确定第二运算信息,其中,所述第二运算信息用于表示所述第二渲染引擎中的节点之间的运算功能;
基于所述材质着色器、所述第二运算信息、所述第一渲染引擎中的模型与贴图和所述贴图信息确定所述目标贴图。
7.根据权利要求6所述的方法,其特征在于,所述基于所述第一运算信息确定第二运算信息包括:
响应于所述第一运算信息为第一类运算信息,基于所述第二渲染引擎中的第一函数确定所述第二运算信息,其中,所述第一类运算信息包括加法运算、减法运算、乘法运算和除法运算。
8.根据权利要求6所述的方法,其特征在于,所述基于所述第一运算信息确定第二运算信息包括:
响应于所述第一运算信息为第二类运算信息,对所述第二渲染引擎中的第二函数进行调整,确定第三函数,其中,所述第二类运算信息为基于目标渲染器语言封装的函数;
基于所述第三函数确定所述第二运算信息。
9.根据权利要求6所述的方法,其特征在于,所述基于所述第一运算信息确定第二运算信息包括:
响应于所述第一运算信息为第三类运算信息,拆解所述第二渲染引擎中的第四函数,确定第五函数,其中,所述第三类运算信息为未基于目标渲染器语言封装的函数;
基于所述第五函数确定所述第二运算信息。
10.根据权利要求6所述的方法,其特征在于,所述贴图信息包括贴图参数和/或采样贴图,所述基于所述材质着色器、所述第二运算信息、所述第一渲染引擎中的模型与贴图和所述贴图信息确定所述目标贴图包括:
通过所述材质着色器调用所述第一渲染引擎中的模型与贴图,并结合所述第二运算信息和所述贴图信息渲染得到所述目标贴图。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第二渲染引擎中创建暴露参数,其中,所述暴露参数用于自定义材质数据;
将所述暴露参数与所述第二渲染引擎中的材质编辑器进行连接,以使所述第二渲染引擎的材质参数支持实时修改且可视化。
12.根据权利要求1-11中任一项所述的方法,其特征在于,
所述第一渲染引擎为实时渲染引擎,所述第二渲染引擎为离线渲染引擎;或者,
所述第一渲染引擎为离线渲染引擎,所述第二渲染引擎为实时渲染引擎。
13.一种贴图处理装置,其特征在于,所述装置包括:
第一确定模块,所述第一确定模块用于确定目标材质类型,其中,所述目标材质类型用于表示第一渲染引擎和第二渲染引擎中的共有材质类型;
匹配模块,所述匹配模块用于基于所述目标材质类型对第一目标材质数据与第二目标材质数据进行匹配,得到匹配结果,其中,所述第一目标材质数据用于表示所述第一渲染引擎中的材质属性,所述第二目标材质数据用于表示所述第二渲染引擎中的材质属性;
处理模块,所述处理模块用于基于所述匹配结果在所述第二渲染引擎中创建材质着色器,并将所述第一渲染引擎中的模型与贴图导入所述第二渲染引擎;
第二确定模块,所述第二确定模块用于基于所述材质着色器、第一运算信息、所述第一渲染引擎中的模型与贴图和初始贴图的贴图信息确定目标贴图,其中,所述第一运算信息用于表示所述第一渲染引擎中的节点之间的运算功能,所述初始贴图基于所述第一渲染引擎处理得到,所述目标贴图的渲染精度高于所述初始贴图的渲染精度。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为在计算机或处理器上运行时,执行上述权利要求1至12任一项中所述的贴图处理方法。
15.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述权利要求1至12任一项中所述的贴图处理方法。
CN202310835350.9A 2023-07-07 2023-07-07 贴图处理方法、装置、计算机可读存储介质和电子装置 Pending CN116912388A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310835350.9A CN116912388A (zh) 2023-07-07 2023-07-07 贴图处理方法、装置、计算机可读存储介质和电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310835350.9A CN116912388A (zh) 2023-07-07 2023-07-07 贴图处理方法、装置、计算机可读存储介质和电子装置

Publications (1)

Publication Number Publication Date
CN116912388A true CN116912388A (zh) 2023-10-20

Family

ID=88354252

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310835350.9A Pending CN116912388A (zh) 2023-07-07 2023-07-07 贴图处理方法、装置、计算机可读存储介质和电子装置

Country Status (1)

Country Link
CN (1) CN116912388A (zh)

Similar Documents

Publication Publication Date Title
WO2022116759A1 (zh) 图像渲染方法、装置、计算机设备和存储介质
US10534605B2 (en) Application system having a gaming engine that enables execution of a declarative language
KR101087427B1 (ko) 3차원 장면 계층구조를 2차원 합성 시스템으로 통합하기 위한 컴퓨터로 구현된 방법 및 컴퓨터 판독가능 기록 매체
RU2360275C2 (ru) Уровень интеграции сред
CN110969685A (zh) 使用渲染图的可定制渲染管线
JP2023029984A (ja) 仮想イメージを生成するための方法、装置、電子機器及び可読記憶媒体
Bowers et al. A ray tracing approach to diffusion curves
US11625900B2 (en) Broker for instancing
CN109448123A (zh) 模型的控制方法及装置、存储介质、电子设备
CN117252982A (zh) 虚拟三维模型的材质属性生成方法、装置及存储介质
US10417327B2 (en) Interactive and dynamically animated 3D fonts
CN116912388A (zh) 贴图处理方法、装置、计算机可读存储介质和电子装置
Zucconi et al. Unity 5. x shaders and effects cookbook
US11972534B2 (en) Modifying materials of three-dimensional digital scenes utilizing a visual neural network
Souza An Analysis Of Real-time Ray Tracing Techniques Using The Vulkan® Explicit Api
Luo Interactive Ray Tracing Infrastructure
CN117036573A (zh) 渲染虚拟模型的方法、装置、存储介质及电子设备
CN117482501A (zh) 生成场景资源模型的方法、装置、存储介质和电子装置
CN117745892A (zh) 粒子生成表现控制方法、装置、存储介质及电子装置
CN114022605A (zh) 贴图处理方法及装置、存储介质、电子设备
WO2023122357A1 (en) Subsurface scattering for mobile applications
CN115205430A (zh) 针对3d文件的导入导出方法及装置
Avramescu et al. Creating Realistic Images in a 3D Scene Using Illuminations and Renderings to Create an Animation
Malizia Mobile Graphics Applications
Mirza Issues In Introducing Micro programmable Graphics Hardware Into the Animated Production Process

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