CN116206038A - 一种渲染方法、装置、电子设备及存储介质 - Google Patents
一种渲染方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116206038A CN116206038A CN202310260517.3A CN202310260517A CN116206038A CN 116206038 A CN116206038 A CN 116206038A CN 202310260517 A CN202310260517 A CN 202310260517A CN 116206038 A CN116206038 A CN 116206038A
- Authority
- CN
- China
- Prior art keywords
- shader
- target
- converted
- attribute name
- target attribute
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本公开提供了一种渲染方法、装置、电子设备及存储介质,该方法包括,响应于转换操作,获得第一材质对象的待转换着色器和目标着色器,其中,所述第一材质对象是基于所述待转换着色器生成的;根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换着色器中待转换属性名称所匹配的目标属性名称,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称;根据赋值后的所述目标着色器,针对所述第一材质对象重新生成并渲染获得第二材质对象,这样,可以实现不同种类材质对象之间的转换,保证渲染效果。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种渲染方法、装置、电子设备及存储介质。
背景技术
Unity是一种实时3D互动内容创作和开发平台,可以支持用户制作材质,进行用户生成内容(User Generated Content,UGC)的创作,然后用户可以将制作的材质上传到所想应用的应用程序(Application,APP)软件或平台中以进行使用,但是用户自定义创作的材质的着色器(Shader)种类多种多样,可能并不符合APP对于官方Shader的需求,导致上传后,出现渲染出错或者无法获得预期渲染效果的问题,而相关技术中针对此还未有相关的解决方案。
发明内容
本公开实施例至少提供一种渲染方法、装置、电子设备及存储介质。
第一方面,本公开实施例提供了一种渲染方法,包括:
响应于转换操作,获得第一材质对象的待转换着色器和目标着色器,其中,所述第一材质对象是基于所述待转换着色器生成的;
根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换着色器中待转换属性名称所匹配的目标属性名称,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称;
根据赋值后的所述目标着色器,针对所述第一材质对象重新生成并渲染获得第二材质对象。
一种可选的实施例中,所述方法还包括:
获取所述目标着色器中包括的各所述目标属性名称;
获取各所述非目标着色器中包括的各所述非目标属性名称;
根据各所述目标属性名称和各所述非目标属性名称所表征的功能,建立各所述目标属性名称和各所述非目标属性名称之间的映射关系。
一种可选的实施例中,所述根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换着色器中待转换属性名称所匹配的目标属性名称,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称,包括:
对所述第一材质对象进行反序列化解析,获得所述待转换着色器中包括的待转换属性名称;
根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换属性名称所匹配的目标属性名称;
将所述待转换着色器转换为所述目标着色器,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称。
一种可选的实施例中,所述方法还包括:在未记录有所述待转换属性名称和所述目标属性名称的映射关系情况下,根据所述目标属性名称在所述目标着色器的程序文件中的写顺序,以及所述待转换属性名称在所述待转换着色器的程序文件中的写顺序,确定所述待转换属性名称所匹配的所述目标属性名称。
一种可选的实施例中,根据所述目标属性名称在所述目标着色器的程序文件中的写顺序,以及所述待转换属性名称在所述待转换着色器的程序文件中的写顺序,确定所述待转换属性名称所匹配的所述目标属性名称,包括:
确定所述目标属性名称在所述目标着色器的程序文件中的写顺序,以及所述待转换属性名称在所述待转换着色器的程序文件中的写顺序;
将所述待转换属性名称匹配到写顺序相同的所述目标属性名称。
一种可选的实施例中,所述方法还包括:
针对当前展示的所述第一材质对象的所述待转换着色器,响应于着色器配置操作,展示着色器配置界面,其中,所述着色器配置界面中展示有所述待转换着色器和着色器转换功能,所述着色器转换功能用于接收所述转换操作;
接收在所述着色器配置界面中,从所提供的各候选着色器中选择输入的所述目标着色器。
一种可选的实施例中,所述方法还包括:展示材质对象转换成功消息,并展示渲染后的所述第二材质对象。
第二方面,本公开实施例还提供一种渲染装置,包括:
获得模块,用于响应于转换操作,获得第一材质对象的待转换着色器和目标着色器,其中,所述第一材质对象是基于所述待转换着色器生成的;
转换模块,用于根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换着色器中待转换属性名称所匹配的目标属性名称,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称;
渲染模块,用于根据赋值后的所述目标着色器,针对所述第一材质对象重新生成并渲染获得第二材质对象。
第三方面,本公开可选实现方式还提供一种电子设备,包括处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述处理器执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开可选实现方式还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例中,预先建立目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,进而可以响应于转换操作,获得第一材质对象的待转换着色器和目标着色器,根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换着色器中待转换属性名称所匹配的目标属性名称,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称,根据赋值后的所述目标着色器,针对所述第一材质对象重新生成并渲染获得第二材质对象,这样,预先建立非目标属性名称与目标属性名称的映射关系,可以将非目标的待转换着色器的待转换属性名称,自动匹配到目标着色器的目标属性名称,将待转换着色器转换为目标着色器,避免由于待转换着色器不适配而导致渲染错误的问题,保证渲染正确性。
关于上述渲染装置、电子设备、及计算机可读存储介质的效果描述参见上述渲染方法的说明,这里不再赘述。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种渲染方法的流程图;
图2示出了本公开实施例中第一材质对象的渲染效果示意图;
图3示出了本公开实施例中的着色器配置界面示意图;
图4示出了本公开实施例中第二材质对象的渲染效果示意图;
图5示出了本公开实施例所提供的一种渲染装置的示意图;
图6示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
为便于对本公开技术方案的理解,首先对本公开实施例中的技术用语加以说明:
着色器(Shader):表示运行在图形处理器(Graphics Processing Unit,GPU)上的一种较为简短的程序片段,用于处理图像信息,可以告知图形软件如何计算和输出图像,Shader可以分为顶点着色器(Vertex Shader)和片段着色器(Fragment Shader)等。
贴图:贴图可以理解为Shader中的属性参数,Shader负责将输入的顶点数据以指定的方式和输入的贴图或者颜色等组合起来,然后进行输出,之后绘图单元可以依据这个输出将图像绘制到屏幕上。
材质(Material):输入的贴图或者颜色等,加上对应的Shader,以及对Shader特定的参数设置,将这些内容打包储存在一起,得到的就为一个材质,当然打包后的包里还会包括其它参数,之后可以将材质赋予到三维模型上进行渲染和输出了。为便于理解,可以认为材质是引擎最终使用的商品,Shader是生产这种商品的加工方法,贴图则是该商品的原材料。
经研究发现,用户自定义创作材质时通常所使用的Shader种类是多种多样的,可能并不符合所想应用的应用程序(Application,APP)软件或平台对于官方Shader的需求,这样用户创作的材质上传到该APP的服务器,再加载到APP终端时,会出现渲染错误或者无法获得预期渲染效果的问题,而相关技术中针对此还未有相关的解决方案。
基于上述研究,本公开提供了一种渲染方法,预先建立目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,进而可以基于此实现不同种类的材质对象一键转换功能,具体地,响应于转换操作,获得第一材质对象的待转换着色器和目标着色器,根据该映射关系,确定待转换着色器中待转换属性名称所匹配的目标属性名称,并将待转换属性名称的取值赋值给所匹配的目标属性名称,进而根据赋值后的目标着色器,针对第一材质对象重新生成并渲染获得第二材质对象,这样,通过预先建立其他非目标属性名称到目标属性名称的映射关系,可以将待转换着色器关联到目标着色器,从而可以使用目标着色器,并基于待转换属性名称的取值,对材质对象重新生成和渲染,避免由于待转换着色器不适配而导致的第一材质对象渲染错误的问题,并且转换赋值,可以保证转换后的第二材质对象的渲染效果和第一材质对象的原本渲染效果基本类似。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种渲染方法进行详细介绍,本公开实施例所提供的渲染方法的执行主体一般为具有一定计算能力的电子设备,该电子设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、蜂窝电话、无绳电话、个人数字助理(Personal DigitalAssistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,其中,个人数字助理是一种手持式电子设备,具有电子计算机的某些功能,可以用来管理个人信息,也可以上网浏览,收发电子邮件等,一般不配备键盘,也可以称为掌上电脑。在一些可能的实现方式中,该渲染方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为终端设备为例对本公开实施例提供的渲染方法加以说明。
参见图1所示,为本公开实施例提供的渲染方法的流程图,该方法包括:
S101:响应于转换操作,获得第一材质对象的待转换着色器和目标着色器,其中,第一材质对象是基于待转换着色器生成的。
本公开实施例中渲染方法可以应用于3D应用或3D游戏等场景,用户可以在Unity平台或其他UGC平台制作3D资源,制作的3D资源可以上传到所需应用的软件服务器或平台以进行售卖或使用等,制作3D资源的过程可以简单理解为,使用着色器(Shader)和一些贴图、参数设置等,进行处理而生成材质对象,将材质对象赋予到三维模型上进行渲染输出,而在应用过程,例如游戏场景,运行游戏时,会调用接口,通过GPU对材质对象进行渲染和在屏幕上显示,在GPU处理运算过程中,会使用Shader进行运算,最终输出可以在屏幕上显示的像素信息,实现3D资源例如3D虚拟形象、虚拟场景等的显示。
而本公开实施例中,主要针对用户制作3D资源时所使用的Shader和所应用的软件或平台对于官方Shader的需求不一致,从而导致在应用软件或平台进行渲染时,可能对于用户所使用的Shader不能识别或识别错误,从而导致最终渲染出错的问题,因此提供了一种可以实现任意其它Shader到官方Shader一键转换的功能。
具体地,本公开实施例中,用户可以针对所自定义的第一材质对象,输入转换操作,例如通过点击转换按钮以输入转换操作,从而实现Shader转换。
其中,第一材质对象是基于待转换着色器生成的,待转换着色器即可以为用户所使用的任意其它非官方Shader,针对第一材质对象的待转换着色器和目标着色器的确定方式,本公开提供了一种可能的实施方式:
1)针对当前展示的第一材质对象的待转换着色器,响应于着色器配置操作,展示着色器配置界面,其中,着色器配置界面中展示有待转换着色器和着色器转换功能,着色器转换功能用于接收转换操作。
例如,在某UGC平台中集成本公开中的渲染方法,即转换功能,用户将所制作的第一材质对象导入该UGC平台,通过该UGC平台,可以解析获得该第一材质对象所使用的待转换着色器,进而用户可以在UGC平台选择着色器配置,就可以展示着色器配置界面,可以在着色器配置界面进行转换相关配置。
2)接收在着色器配置界面中,从所提供的各候选着色器中选择输入的目标着色器。
本公开实施例中,还可以提供给用户可供选择各候选着色器,提供的各候选着色器即可以理解为能够正确识别和渲染的各个官方Shader,例如,提供卡通类型下的多个官方Shader,用户可以根据需求从中任意选择一个候选着色器作为目标着色器,选择目标着色器后,用户可以点击着色器转换功能,就可以进行待转换着色器到目标着色器的转换。
S102:根据预建立的目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定待转换着色器中待转换属性名称所匹配的目标属性名称,并将待转换属性名称的取值赋值给所匹配的目标属性名称。
针对该步骤S102,本公开提供了可能的实施方式:
1)对第一材质对象进行反序列化解析,获得待转换着色器中包括的待转换属性名称。
本公开实施例中,获得第一材质对象后,可以进行反序列化解析,从而可以获得该第一材质对象所使用的待转换着色器和待转换着色器中包括的各个待转换属性名称、各个待转换属性名称的取值等信息。
2)根据预建立的目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定待转换属性名称所匹配的目标属性名称。
本公开实施例中,预先建立其它的非目标属性名称和目标属性名称的映射关系,即任意其它非官方Shader所可能使用的非目标属性名称,目标属性名称为官方目标Shader所使用的属性名称,任意其它非官方Shader中属性名称的定义也是多样的,可能所实现的功能或类型是类似的,但是名称并不相同,可以通过该映射关系建立其它非目标属性名称到目标属性名称的匹配。
另外,Shader中是包括多个不同类型的属性的,例如向量、贴图等,可以在Shader中定义所需的属性,本公开实施例中待转换属性名称,主要是针对贴图属性,当然也可以针对其它属性以进行转换,本公开实施例中并不进行限制。
3)将待转换着色器转换为目标着色器,并将待转换属性名称的取值赋值给所匹配的目标属性名称。
例如,待转换着色器为通用Lit,待转换属性名称为_MainTex,目标着色器为卡通类型下的AN_HD,根据预先建立的映射关系,进行匹配获知,该待转换属性名称_MainTex所匹配的目标属性名称为_BaseTex,则可以将_MainTex的取值即所采用的贴图,赋值给_BaseTex,这样,目标着色器AN_HD中该_BaseTex也能够使用该贴图以进行渲染。
进一步地,本公开实施例中预先建立的目标属性名称和非目标属性名称的映射关系,基本可以覆盖主流的其它非官方Shader所可能使用到的属性名称,满足着色器转换需求,但是由于非目标着色器多种多样,可能会有未记录映射关系的情况,该情况下根据预先建立的映射关系就无法找到匹配的目标属性名称,为保证转换和渲染效果,针对此本公开还提供了可能的实施方式:在未记录有待转换属性名称和目标属性名称的映射关系情况下,根据目标属性名称在目标着色器的程序文件中的写顺序,以及待转换属性名称在待转换着色器的程序文件中的写顺序,确定待转换属性名称所匹配的目标属性名称。
Shader本身是一段程序代码,在程序代码中写每个属性或变量时会有先后顺序,在未记录映射关系的情况下,可以默认按照先后顺序进行匹配,具体地,确定目标属性名称在目标着色器的程序文件中的写顺序,以及待转换属性名称在待转换着色器的程序文件中的写顺序;将待转换属性名称匹配到写顺序相同的目标属性名称。
例如,待转换属性名称为贴图属性,待转换着色器中使用四张贴图,如按照顺序依次为abcd,目标着色器中使用六张贴图,如按照顺序依次为123456,都没有从映射关系中匹配上,则可以根据在程序文件即程序代码中的写顺序,依次将abcd匹配到1234,即a与1匹配,b与2匹配,c与3匹配,d与4匹配。
针对未记录映射关系的情况,本公开实施例中还提供了一种可能的实施方式,通常待转换着色器中的待转换属性名称可能有多个,在匹配时,遍历各个待转换属性名称,根据该映射关系进行匹配,可能其中有的待转换属性名称能够匹配到目标属性名称,其中有的待转换属性名称并没有匹配到,针对该存在部分待转换属性名称记录有映射关系的情况,本公开实施例中可以根据已匹配到目标属性名称的待转换属性名称的写顺序,以及未记录映射关系的待转换属性名称与已匹配到的待转换属性名称之间的写顺序关系,对应匹配的目标属性名称的写顺序,进而将未记录映射关系的待转换属性名称,按照对应匹配的目标属性名称的写顺序,依次匹配到写顺序下一个的目标属性名称。
例如,待转换属性名称按照写顺序依次为abcd,目标属性名称按照写顺序依次为1234,其中,根据预先建立的映射关系,abc分别匹配到123,而未记录有d的映射关系,则可以按照写顺序,将d匹配到4。
这样,本公开实施例中,可以根据预先建立的目标属性名称和非目标属性名称的映射关系,可以将各类其它非官方Shader的属性名称,自动匹配到官方Shader的属性名称,实现Shader的转换,并且针对未记录映射关系的待转换属性名称,也可以按照写顺序的规则进行匹配,可以保证能够进行目标着色器的转换,提高了可靠性。
S103:根据赋值后的目标着色器,针对第一材质对象重新生成并渲染获得第二材质对象。
本公开实施例中,将待转换着色器转换为目标着色器后,并且目标着色器中已赋值有待转换属性名称的取值,进而就可以基于目标着色器,结合目标属性名称的取值,重新进行材质生成和渲染,可以理解,使用官方的目标着色器来生成第二材质对象,但是第二材质对象也使用了第一材质对象的贴图等属性参数,进而可以保证渲染的第二材质对象和用户所期望的第一材质对象的渲染效果基本相同。
进一步地,为提高用户使用体验和交互效率,本公开实施例中还可以展示材质对象转换成功消息,并展示渲染后的第二材质对象。
例如,用户点击转换功能按钮,后台执行着色器的转换逻辑,完成后展示材质对象转换成功消息,并且展示渲染后的第二材质对象,这样,用户可以很清楚地获知转换后的渲染效果。
本公开实施例中,响应于转换操作,获得第一材质对象的待转换着色器和目标着色器,根据预建立的目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定待转换着色器中待转换属性名称所匹配的目标属性名称,并将待转换属性名称的取值赋值给所匹配的目标属性名称,进而根据赋值后的目标着色器,针对第一材质对象重新生成并渲染获得第二材质对象,这样,可以预先建立非目标属性名称与目标属性名称的映射关系,可以将非目标的待转换着色器的待转换属性名称,自动匹配到目标着色器的目标属性名称,实现待转换着色器到目标着色器的转换,从而可以基于目标着色器对材质对象重新生成和渲染,避免由于待转换着色器不适配而导致的第一材质对象渲染错误的问题,并且用户可以自由使用任意着色器来创作材质对象,只需在上传之前进行转换即可,也可以降低用户资源创作的难度。
进一步地,本公开实施例中,需要预先建立目标属性名称和非目标属性名称的映射关系,针对该映射关系的建立,提供了一种可能的实施方式,具体该映射关系可以通过以下方式而建立:
1)获取目标着色器中包括的各目标属性名称。
本公开实施例中,目标着色器为官方平台所提供并支持的Shader,通常有限的,可以枚举所有目标着色器以及所有目标着色器中包括的各目标属性名称。
2)获取各非目标着色器中包括的各非目标属性名称。
例如,通过数据挖掘收集任意其它的非目标着色器所使用的各个非目标属性名称,非目标着色器可能较多,非目标着色器中所使用的各个非目标属性名称也多种多样,可以尽可能收集主流的各个非目标属性名称,以可以基本满足转换需求。
3)根据各目标属性名称和各非目标属性名称所表征的功能,建立各目标属性名称和各非目标属性名称之间的映射关系。
不同用户在编写Shader时,对于Shader中的属性定义所采用的名称也是多样的,本公开实施例中可以根据属性名称所表达的功能或含义来进行判断,相同功能的属性名称即具有对应的映射关系,当然也可能非目标着色器所使用的非目标属性名称和目标着色器所使用的目标属性名称是相同的,可以认为相同属性名称的具有映射关系,或者也可以通过所表征的功能判断是否具有映射关系,可以建立一个映射关系表来记录各非目标属性名称和各目标属性名称之间的映射关系,另外,还可以支持不断更新该映射关系表,以满足更多不同非目标属性名称的需求。
例如,目标属性名称为_BaseTex,其对应的非目标属性名称可能有多个,如包括_MainTex、BaseMap等。
这样,本公开实施例中,可以收集任意非目标着色器所可能使用到的非目标属性名称,进而建立非目标着色器的非目标属性名称到官方的目标着色器的目标属性名称的映射关系,可以将各类非目标着色器匹配并转换到目标着色器。
另外,需要说明的是,本公开实施例中的渲染方法,可以开发一个对应的软件开发工具包(Software Development Kit,SDK)从而进行发布,该SDK包可以集成到现有的UGC平台,例Unity平台,作为Unity平台的一个功能插件,并且提供可供转换的官方的目标Shader有哪些,这样,用户在上传自己所制作的材质对象之前,可以先基于该功能进行转换,转换为官方的目标Shader,进而再上传转换后的材质对象,该转换后的材质对象即可以保证能正确渲染。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
下面采用具体应用场景进行说明,本公开实施例中,可以将本公开实施例中的渲染方法作为一个功能插件集成到UGC平台,便于用户进行转换操作,以该UGC平台中的界面操作为例进行说明。
例如,用户将第一材质对象导入UGC平台,由于第一材质对象是基于不是官方的非目标着色器而生成的,在渲染时出现错误,如非目标着色器其实使用了一张贴图,但是在渲染时未识别到该贴图,参阅图2所示,为本公开实施例中第一材质对象的渲染效果示意图,如图2可知该使用的贴图并未渲染出来。
进而用户可以选择着色器配置操作,展示着色器配置界面,参阅图3所示,为本公开实施例中的着色器配置界面示意图,如图3所示,展示待转换目标着色器为“***/A”,用户可以选择所需转换的目标着色器,如选择的目标着色器为“***/B”,点击着色器转换功能的转换按钮,就可以将待转换目标着色器转换为该目标着色器,并根据预先建立的目标属性名称和非目标属性名称的映射关系,将待转换着色器中的待转属性名称的取值赋值给匹配的目标属性名称。
这样,转换完成后,可以根据目标着色器,重新生成和渲染获得第二材质对象,例如,如图4所示,为本公开实施例中第二材质对象的渲染效果示意图,通过转换,可以将待转换着色器所使用的贴图赋值给目标着色器的对应匹配的目标属性名称,相较于图2,图4中可以将该贴图渲染出来,保证渲染的正确性,可以理解的是,图4和图2仅是一种可能的示例图,未显示出彩色图像,实际中,图4中渲染后第二材质对象会显示彩色的该贴图的实际样式,不过从图4和图2相比较,也可以获知图4和图2的渲染效果不同,其主要区别在于图4中能够识别并正确渲染所使用的贴图。
需要说明的是,本公开实施例中界面操作图仅是一种示例,不应对本公开实施例进行限制。
本公开实施例中,可以将任意非官方的非目标着色器的非目标属性名称与目标着色器的目标属性名称进行匹配关联,实现不同类型材质对象之间的一键转换,保证渲染正确性,提高了可靠性和效率。
基于同一发明构思,本公开实施例中还提供了与渲染方法对应的渲染装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述渲染方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图5所示,为本公开实施例提供的一种渲染装置的示意图,该装置包括:
获得模块51,用于响应于转换操作,获得第一材质对象的待转换着色器和目标着色器,其中,所述第一材质对象是基于所述待转换着色器生成的;
转换模块52,用于根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换着色器中待转换属性名称所匹配的目标属性名称,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称;
渲染模块53,用于根据赋值后的所述目标着色器,针对所述第一材质对象重新生成并渲染获得第二材质对象。
一种可选的实施例中,还包括,建立模块54,用于:
获取所述目标着色器中包括的各所述目标属性名称;
获取各所述非目标着色器中包括的各所述非目标属性名称;
根据各所述目标属性名称和各所述非目标属性名称所表征的功能,建立各所述目标属性名称和各所述非目标属性名称之间的映射关系。
一种可选的实施例中,所述根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换着色器中待转换属性名称所匹配的目标属性名称,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称时,转换模块52用于:
对所述第一材质对象进行反序列化解析,获得所述待转换着色器中包括的待转换属性名称;
根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换属性名称所匹配的目标属性名称;
将所述待转换着色器转换为所述目标着色器,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称。
一种可选的实施例中,转换模块52还用于:在未记录有所述待转换属性名称和所述目标属性名称的映射关系情况下,根据所述目标属性名称在所述目标着色器的程序文件中的写顺序,以及所述待转换属性名称在所述待转换着色器的程序文件中的写顺序,确定所述待转换属性名称所匹配的所述目标属性名称。
一种可选的实施例中,根据所述目标属性名称在所述目标着色器的程序文件中的写顺序,以及所述待转换属性名称在所述待转换着色器的程序文件中的写顺序,确定所述待转换属性名称所匹配的所述目标属性名称时,转换模块52用于:
确定所述目标属性名称在所述目标着色器的程序文件中的写顺序,以及所述待转换属性名称在所述待转换着色器的程序文件中的写顺序;
将所述待转换属性名称匹配到写顺序相同的所述目标属性名称。
一种可选的实施例中,还包括配置模块55,用于:
针对当前展示的所述第一材质对象的所述待转换着色器,响应于着色器配置操作,展示着色器配置界面,其中,所述着色器配置界面中展示有所述待转换着色器和着色器转换功能,所述着色器转换功能用于接收所述转换操作;
接收在所述着色器配置界面中,从所提供的各候选着色器中选择输入的所述目标着色器。
一种可选的实施例中,还包括展示模块56,用于展示材质对象转换成功消息,并展示渲染后的所述第二材质对象。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种电子设备,如图6所示,为本公开实施例提供的电子设备结构示意图,包括:
处理器61和存储器62;所述存储器62存储有处理器61可执行的机器可读指令,处理器61用于执行存储器62中存储的机器可读指令,所述机器可读指令被处理器61执行时,处理器61执行下述步骤:
响应于转换操作,获得第一材质对象的待转换着色器和目标着色器,其中,所述第一材质对象是基于所述待转换着色器生成的;
根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换着色器中待转换属性名称所匹配的目标属性名称,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称;
根据赋值后的所述目标着色器,针对所述第一材质对象重新生成并渲染获得第二材质对象。
一种可选的实施例中,处理器61还用于:
获取所述目标着色器中包括的各所述目标属性名称;
获取各所述非目标着色器中包括的各所述非目标属性名称;
根据各所述目标属性名称和各所述非目标属性名称所表征的功能,建立各所述目标属性名称和各所述非目标属性名称之间的映射关系。
一种可选的实施例中,所述根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换着色器中待转换属性名称所匹配的目标属性名称,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称时,处理器61用于:
对所述第一材质对象进行反序列化解析,获得所述待转换着色器中包括的待转换属性名称;
根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换属性名称所匹配的目标属性名称;
将所述待转换着色器转换为所述目标着色器,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称。
一种可选的实施例中,处理器61还用于:在未记录有所述待转换属性名称和所述目标属性名称的映射关系情况下,根据所述目标属性名称在所述目标着色器的程序文件中的写顺序,以及所述待转换属性名称在所述待转换着色器的程序文件中的写顺序,确定所述待转换属性名称所匹配的所述目标属性名称。
一种可选的实施例中,根据所述目标属性名称在所述目标着色器的程序文件中的写顺序,以及所述待转换属性名称在所述待转换着色器的程序文件中的写顺序,确定所述待转换属性名称所匹配的所述目标属性名称时,处理器61用于:
确定所述目标属性名称在所述目标着色器的程序文件中的写顺序,以及所述待转换属性名称在所述待转换着色器的程序文件中的写顺序;
将所述待转换属性名称匹配到写顺序相同的所述目标属性名称。
一种可选的实施例中,处理器61还用于:
针对当前展示的所述第一材质对象的所述待转换着色器,响应于着色器配置操作,展示着色器配置界面,其中,所述着色器配置界面中展示有所述待转换着色器和着色器转换功能,所述着色器转换功能用于接收所述转换操作;
接收在所述着色器配置界面中,从所提供的各候选着色器中选择输入的所述目标着色器。
一种可选的实施例中,处理器61还用于展示材质对象转换成功消息,并展示渲染后的所述第二材质对象。
上述存储器62包括内存621和外部存储器622;这里的内存621也称内存储器,用于暂时存放处理器61中的运算数据,以及与硬盘等外部存储器622交换的数据,处理器61通过内存621与外部存储器622进行数据交换。
上述指令的具体执行过程可以参考本公开实施例中所述的渲染方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的渲染方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的渲染方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种渲染方法,其特征在于,包括:
响应于转换操作,获得第一材质对象的待转换着色器和目标着色器,其中,所述第一材质对象是基于所述待转换着色器生成的;
根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换着色器中待转换属性名称所匹配的目标属性名称,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称;
根据赋值后的所述目标着色器,针对所述第一材质对象重新生成并渲染获得第二材质对象。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述目标着色器中包括的各所述目标属性名称;
获取各所述非目标着色器中包括的各所述非目标属性名称;
根据各所述目标属性名称和各所述非目标属性名称所表征的功能,建立各所述目标属性名称和各所述非目标属性名称之间的映射关系。
3.根据权利要求1或2所述的方法,其特征在于,所述根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换着色器中待转换属性名称所匹配的目标属性名称,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称,包括:
对所述第一材质对象进行反序列化解析,获得所述待转换着色器中包括的待转换属性名称;
根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换属性名称所匹配的目标属性名称;
将所述待转换着色器转换为所述目标着色器,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在未记录有所述待转换属性名称和所述目标属性名称的映射关系情况下,根据所述目标属性名称在所述目标着色器的程序文件中的写顺序,以及所述待转换属性名称在所述待转换着色器的程序文件中的写顺序,确定所述待转换属性名称所匹配的所述目标属性名称。
5.根据权利要求4所述的方法,其特征在于,根据所述目标属性名称在所述目标着色器的程序文件中的写顺序,以及所述待转换属性名称在所述待转换着色器的程序文件中的写顺序,确定所述待转换属性名称所匹配的所述目标属性名称,包括:
确定所述目标属性名称在所述目标着色器的程序文件中的写顺序,以及所述待转换属性名称在所述待转换着色器的程序文件中的写顺序;
将所述待转换属性名称匹配到写顺序相同的所述目标属性名称。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对当前展示的所述第一材质对象的所述待转换着色器,响应于着色器配置操作,展示着色器配置界面,其中,所述着色器配置界面中展示有所述待转换着色器和着色器转换功能,所述着色器转换功能用于接收所述转换操作;
接收在所述着色器配置界面中,从所提供的各候选着色器中选择输入的所述目标着色器。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
展示材质对象转换成功消息,并展示渲染后的所述第二材质对象。
8.一种渲染装置,其特征在于,包括:
获得模块,用于响应于转换操作,获得第一材质对象的待转换着色器和目标着色器,其中,所述第一材质对象是基于所述待转换着色器生成的;
转换模块,用于根据预建立的所述目标着色器中目标属性名称和非目标着色器中非目标属性名称的映射关系,确定所述待转换着色器中待转换属性名称所匹配的目标属性名称,并将所述待转换属性名称的取值赋值给所匹配的所述目标属性名称;
渲染模块,用于根据赋值后的所述目标着色器,针对所述第一材质对象重新生成并渲染获得第二材质对象。
9.一种电子设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述处理器执行如权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310260517.3A CN116206038A (zh) | 2023-03-13 | 2023-03-13 | 一种渲染方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310260517.3A CN116206038A (zh) | 2023-03-13 | 2023-03-13 | 一种渲染方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116206038A true CN116206038A (zh) | 2023-06-02 |
Family
ID=86509435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310260517.3A Pending CN116206038A (zh) | 2023-03-13 | 2023-03-13 | 一种渲染方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116206038A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116524104A (zh) * | 2023-07-03 | 2023-08-01 | 腾讯科技(深圳)有限公司 | 渲染数据处理方法、装置、设备及存储介质 |
-
2023
- 2023-03-13 CN CN202310260517.3A patent/CN116206038A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116524104A (zh) * | 2023-07-03 | 2023-08-01 | 腾讯科技(深圳)有限公司 | 渲染数据处理方法、装置、设备及存储介质 |
CN116524104B (zh) * | 2023-07-03 | 2023-10-03 | 腾讯科技(深圳)有限公司 | 渲染数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112933597B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN107393013B (zh) | 虚拟漫游文件生成、显示方法、装置、介质、设备和*** | |
TW201108152A (en) | Displaying a visual representation of performance metrics for rendered graphics elements | |
CN108492338B (zh) | 动画文件的压缩方法、装置、存储介质和电子装置 | |
CN108765520B (zh) | 文本信息的渲染方法和装置、存储介质、电子装置 | |
CN112675545B (zh) | 地表仿真画面的显示方法和装置、存储介质及电子设备 | |
CN116206038A (zh) | 一种渲染方法、装置、电子设备及存储介质 | |
CN111710020A (zh) | 动画渲染方法和装置及存储介质 | |
WO2022262856A1 (zh) | 头戴显示设备的模型加载方法、装置及头戴显示设备 | |
CN108470377A (zh) | Ar看房装置 | |
CN107729049A (zh) | 指令转换方法、设备及计算机可读存储介质 | |
CN113885935A (zh) | 资源打包方法、装置、电子设备及计算机可读存储介质 | |
CN113470092B (zh) | 地形的渲染方法和装置、电子设备和存储介质 | |
US10372571B2 (en) | Method and apparatus for testing compatibility of 3D engine | |
CN114307153A (zh) | 游戏资产的处理方法及装置、计算机存储介质、电子设备 | |
CN114429513A (zh) | 可见元素的确定方法和装置、存储介质及电子设备 | |
CN105957133A (zh) | 一种加载贴图的方法和装置 | |
CN111589111B (zh) | 图像处理方法、装置、设备和存储介质 | |
US8024158B2 (en) | Management system and management method of CAD data used for a structural analysis | |
CN110599576B (zh) | 文件渲染***、方法及电子设备 | |
CN111950057A (zh) | 一种建筑信息模型bim的加载方法及装置 | |
CN111179390A (zh) | 高效预览cg资产的方法和装置 | |
CN113244625B (zh) | 游戏地形数据的编辑方法、装置、存储介质和电子装置 | |
CN111729322A (zh) | 模型的描边处理方法、装置、计算机设备及可读存储介质 | |
CN113318444B (zh) | 角色的渲染方法和装置、电子设备和存储介质 |
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 |