CN114067042A - 一种图像渲染方法、装置、设备、存储介质及程序产品 - Google Patents
一种图像渲染方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN114067042A CN114067042A CN202111664453.0A CN202111664453A CN114067042A CN 114067042 A CN114067042 A CN 114067042A CN 202111664453 A CN202111664453 A CN 202111664453A CN 114067042 A CN114067042 A CN 114067042A
- Authority
- CN
- China
- Prior art keywords
- texture
- rendering
- image
- rendered
- virtual object
- 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/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
Abstract
本申请提供了一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品;方法包括:获取待渲染的虚拟对象的多个纹理图像,其中,每个纹理图像对应待渲染的虚拟对象的至少一个部位;将多个纹理图像进行纹理映射处理,得到渲染目标纹理图像;将渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质;基于映射后的渲染材质对待渲染的虚拟对象的至少一个部位进行图像渲染处理,得到渲染后的虚拟对象。通过本申请,能够充分有效地利用渲染目标纹理图像,节约相关的存储空间以及计算资源。
Description
本申请要求申请号为202111313680.9,申请日为2021年11月08日,名称为:一种图像渲染方法、装置、设备、存储介质及程序产品的优先权。
技术领域
本申请涉及计算机图形图像技术,尤其涉及一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
基于图形处理硬件的显示技术,扩展了感知环境以及获取信息的渠道,尤其是虚拟场景的显示技术,能够根据实际应用需求实现受控于用户或人工智能的虚拟对象之间的多样化的交互,具有各种典型的应用场景,例如在游戏等的虚拟场景中,能够模拟虚拟对象之间的真实的对战过程。
相关技术中,通过加载纹理以生成虚拟场景中的虚拟对象,因此需要直接设置材质参数中的纹理参数,在虚拟对象的生命周期内需要一直引用原始纹理图像,这种方案将浪费大量的存储空间以及计算资源,进而影响使用体验。
发明内容
本申请实施例提供一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够充分有效地利用渲染目标纹理图像,节约相关的存储空间以及计算资源。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种图像渲染方法,包括:
获取待渲染的虚拟对象的多个纹理图像,其中,每个所述纹理图像对应所述待渲染的虚拟对象的至少一个部位;
将所述多个纹理图像进行纹理映射处理,得到渲染目标纹理图像;
将所述渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质;
基于所述映射后的渲染材质对所述待渲染的虚拟对象的至少一个部位进行图像渲染处理,得到渲染后的虚拟对象。
本申请实施例提供一种图像渲染装置,包括:
获取模块,用于获取待渲染的虚拟对象的多个纹理图像,其中,每个所述纹理图像对应所述待渲染的虚拟对象的至少一个部位;
第一映射模块,用于将所述多个纹理图像进行纹理映射处理,得到渲染目标纹理图像;
第二映射模块,用于将所述渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质;
渲染模块,用于基于所述映射后的渲染材质对所述待渲染的虚拟对象的至少一个部位进行图像渲染处理,得到渲染后的虚拟对象。
上述技术方案中,所述第一映射模块还用于对所述多个纹理图像进行纹理定位处理,得到包括纹理参数的烘焙材质;
通过所述烘焙材质,将所述多个纹理图像进行纹理烘焙处理,得到渲染目标纹理图像。
上述技术方案中,所述第一映射模块还用于基于所述多个纹理图像,确定所述纹理参数;
按照所述纹理参数,将所述多个纹理图像填充至所述烘焙材质中,得到包括所述纹理参数的烘焙材质。
上述技术方案中,所述烘焙材质包括多个纹理单元;所述第一映射模块还用于将所述多个纹理图像填充至所述烘焙材质中对应的纹理单元中,得到包括所述纹理参数的烘焙材质;
其中,所述纹理单元中填充有至少一个所述纹理图像。
上述技术方案中,所述第一映射模块还用于确定用于纹理烘焙的渲染纹理图像;
通过所述烘焙材质,将所述多个纹理图像绘制至所述渲染纹理图像,得到所述渲染目标纹理图像。
上述技术方案中,所述第一映射模块还用于确定所述待渲染的虚拟对象的渲染精度;
基于所述待渲染的虚拟对象的渲染精度查询配置文件,得到与所述待渲染的虚拟对象的渲染精度对应的尺寸的渲染纹理图像;
其中,所述配置文件包括不同渲染精度与不同尺寸的渲染纹理图像的关联关系。
上述技术方案中,所述第一映射模块还用于获取用于图像渲染的图形处理性能参数;
基于所述图形处理性能参数查询性能参数配置文件,得到与所述图形处理性能参数对应的所述待渲染的虚拟对象的渲染精度;
其中,所述性能参数配置文件包括不同所述图形处理性能参数与不同渲染精度的关联关系。
上述技术方案中,所述图形处理性能参数包括图形处理硬件参数,所述性能参数配置文件包括不同所述图形处理硬件参数与不同渲染精度的关联关系;
所述第一映射模块还用于在虚拟场景运行结束前,基于所述图形处理硬件参数查询所述性能参数配置文件,得到与所述图形处理性能参数对应的所述待渲染的虚拟对象的渲染精度;
其中,所述图形处理硬件参数是根据显示所述渲染后的虚拟对象的电子设备的机型查询到的,且包括以下至少之一:处理器型号、存储器容量。
上述技术方案中,所述图形处理性能参数包括图形处理软件参数,所述性能参数配置文件包括不同所述图形处理软件参数与不同渲染精度的关联关系;
所述第一映射模块还用于基于虚拟场景运行时的图形处理软件参数查询所述性能参数配置文件,得到与所述虚拟场景运行时的图形处理软件参数对应的所述待渲染的虚拟对象的渲染精度;
其中,所述图形处理软件参数包括以下至少之一:存储器空闲容量、处理器空闲计算能力。
上述技术方案中,对应至少一个部位的所述纹理图像包括基础颜色纹理图像、法线纹理图像、粗糙度纹理图像;
所述第一映射模块还用于针对对应至少一个部位的所述纹理图像执行以下处理:
对所述基础颜色纹理图像进行纹理映射处理,得到包括基础颜色纹理参数的渲染目标纹理图像;
对所述法线纹理图像进行纹理映射处理,得到包括法线纹理参数的渲染目标纹理图像;
对所述粗糙度纹理图像进行纹理映射处理,得到包括粗糙度纹理参数的渲染目标纹理图像;
所述第二映射模块还用于将所述包括基础颜色纹理参数的渲染目标纹理图像、所述包括法线纹理参数的渲染目标纹理图像以及所述包括粗糙度纹理参数的渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质。
上述技术方案中,所述获取模块还用于从缓存空间中获取所述待渲染的虚拟对象的多个纹理图像;
在所述将所述多个纹理图像进行纹理映射处理,得到渲染目标纹理图像之后,从所述缓存空间中释放所述待渲染的虚拟对象的多个纹理图像。
上述技术方案中,所述获取模块还用于显示多个候选展示信息,其中,所述候选展示信息用于修饰所述待渲染的虚拟对象的至少一个部位;
响应于针对所述多个候选展示信息的选择操作,将被选中的所述候选展示信息作为目标展示信息;
将所述目标展示信息对应的纹理图像作为所述待渲染的虚拟对象的纹理图像。
上述技术方案中,所述装置还包括:
处理模块,用于当所述渲染后的虚拟对象的显示期限到达时,对所述映射后的渲染材质进行逆映射处理,得到所述渲染目标纹理图像;
将所述渲染目标纹理图像存储至存储空间;
其中,所述渲染目标纹理图像用于后续映射所述渲染目标纹理图像时,从所述存储空间中读取。
本申请实施例提供一种用于图像渲染的电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的图像渲染方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的图像渲染方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现本申请实施例提供的图像渲染方法。
本申请实施例具有以下有益效果:
通过将多个纹理图像进行纹理映射,以得到渲染目标纹理图像,并将渲染目标纹理图像映射至渲染材质中,以基于映射后的渲染材质对待渲染的虚拟对象的至少一个部位进行图像渲染,以充分有效地利用渲染目标纹理图像进行图像渲染,节约了相关的存储空间以及计算资源,进而提高虚拟对象的显示效果。
附图说明
图1A-图1B是本申请实施例提供的图像渲染方法的应用模式示意图;
图2是本申请实施例提供的用于图像渲染的电子设备的结构示意图;
图3-图5是本申请实施例提供的图像渲染方法的流程示意图;
图6是本申请实施例提供的待渲染的虚拟对象的示意图;
图7是本申请实施例提供的展示信息的示意图;
图8-图9是本申请实施例提供的渲染后的虚拟对象的示意图;
图10是相关技术提供的图像渲染方法的流程图;
图11是本申请实施例提供的图像渲染方法的流程示意图;
图12是本申请实施例提供的图像渲染方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)响应于:用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
2)客户端:终端中运行的用于提供各种服务的应用程序,例如视频播放客户端、游戏客户端等。
3)虚拟场景:应用程序在终端上运行时显示(或提供)的虚拟场景。该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本申请实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行移动。
4)虚拟对象:虚拟场景中可以进行交互的各种人和物的形象,或在虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,例如在虚拟场景中显示的人物、动物等。该虚拟对象可以是虚拟场景中的一个虚拟的用于代表用户的虚拟形象。虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
5)场景数据:表示虚拟场景的特征数据,例如可以是虚拟场景中建造区域的面积、虚拟场景当前所处的建筑风格等;也可以包括虚拟建筑在虚拟场景中所处的位置、以及虚拟建筑的占地面积等。
6)展示信息:用于修饰虚拟对象的至少一个部位的信息,例如用于修饰虚拟角色面部的妆容(例如唇形、眼影、瞳孔、虹膜等)、用于修饰虚拟角色的四肢的服饰(例如古装、战斗服等)。
7)图像烘焙:采用光照贴图技术烘焙物体,是一种增强场景光照效果的技术,通过较低的性能来使得场景看上去更加真实、丰富,以及更加有立体感。烘焙就是把高精度模型上的细节用贴图渲染出来,然后把渲染出来的贴图再贴到低精度模型上,让低精度模型看上去有高精度模型的细节。
8)内存优化:提高内存的使用效率,尽可能地提高运行速度,减少内存的占用量。
本申请实施例提供一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够充分有效地利用渲染目标纹理图像,节约相关的存储空间以及计算资源。为便于更容易理解本申请实施例提供的图像渲染方法,首先说明本申请实施例提供的图像渲染方法的示例性实施场景,本申请实施例提供的图像渲染方法中的虚拟对象可以完全基于终端输出,或者基于终端和服务器协同输出。
在一些实施例中,虚拟场景可以是供游戏角色交互的环境,例如可以是供游戏角色在虚拟场景中进行对战,通过控制游戏角色的行动可以在虚拟场景中进行双方互动,从而使用户能够在游戏的过程中舒缓生活压力。
在一个实施场景中,参见图1A,图1A是本申请实施例提供的图像渲染方法的应用模式示意图,适用于一些完全依赖于终端400的图形处理硬件计算能力即可完成虚拟场景100的相关数据计算的应用模式,例如单机版/离线模式的游戏,通过智能手机、平板电脑和虚拟现实/增强现实设备等各种不同类型的终端400完成虚拟场景的输出。
作为示例,图形处理硬件的类型包括中央处理器(CPU,Central Processin gUnit)和图形处理器(GPU,Graphics Processing Unit)。
当形成虚拟场景100的视觉感知时,终端400通过图形计算硬件计算显示所需要的数据,并完成显示数据的加载、解析和渲染,在图形输出硬件输出能够对虚拟场景形成视觉感知的视频帧,例如,在智能手机的显示屏幕呈现二维的视频帧,或者,在增强现实/虚拟现实眼镜的镜片上投射实现三维显示效果的视频帧;此外,为了丰富感知效果,终端400还可以借助不同的硬件来形成听觉感知、触觉感知、运动感知和味觉感知的一种或多种。
作为示例,终端400上运行有客户端410(例如单机版的游戏应用),在客户端410的运行过程中输出包括有角色扮演的虚拟场景,虚拟场景可以是供游戏角色交互的环境,例如可以是用于供游戏角色进行对战的平原、街道、山谷等等;以第一人称视角显示虚拟场景100为例,在虚拟场景100中显示渲染后的虚拟对象101,渲染后的虚拟对象101可以是受用户(或称玩家)控制的游戏角色,将响应于真实用户针对按钮(包括摇杆按钮、攻击按钮、防御按钮等)的操作而在虚拟场景中操作,例如当真实用户向左移动摇杆按钮时,虚拟对象将在虚拟场景中向左部移动,还可以保持原地静止、跳跃以及使用各种功能(如技能和道具);渲染后的虚拟对象101也可以是通过训练设置在虚拟场景对战中的人工智能(AI,Artificial Intelligence);渲染后的虚拟对象101还可以是设置在虚拟场景互动中的非用户角色(NPC,Non-Player Character);渲染后的虚拟对象101还可以是虚拟场景100中不可活动对象或者可活动对象。
举例来说,以第一人称视角显示虚拟场景100为例,在虚拟场景100中显示待渲染的虚拟对象,在对战游戏开始前,玩家通过自定义待渲染的虚拟对象,例如为待渲染的虚拟对象配置妆容(例如眼影、腮红灯)、服饰、头饰102等展示信息,并通过图像渲染方法,将展示信息对应的多个纹理图像进行纹理映射处理,得到渲染目标纹理图像,将渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质,基于映射后的渲染材质对待渲染的虚拟对象的至少一个部位进行图像渲染处理,以通过妆容、服饰等展示信息修饰待渲染的虚拟对象,并基于渲染后的虚拟对象101进行虚拟场景的人机交互,例如游戏对抗,玩家可以调整这些展示信息达到自定义虚拟对象的效果,提高游戏的可玩性和多样性,也提高了用户的使用体验。
在另一个实施场景中,参见图1B,图1B是本申请实施例提供的图像渲染方法的应用模式示意图,应用于终端400和服务器200,适用于依赖于服务器200的计算能力完成虚拟场景计算、并在终端400输出虚拟场景的应用模式。
以形成虚拟场景100的视觉感知为例,服务器200进行虚拟场景相关显示数据(例如场景数据)的计算并通过网络300发送到终端400,终端400依赖于图形计算硬件完成计算显示数据的加载、解析和渲染,依赖于图形输出硬件输出虚拟场景以形成视觉感知,例如可以在智能手机的显示屏幕呈现二维的视频帧,或者,在增强现实/虚拟现实眼镜的镜片上投射实现三维显示效果的视频帧;对于虚拟场景的形式的感知而言,可以理解,可以借助于终端400的相应硬件输出,例如使用麦克风形成听觉感知,使用振动器形成触觉感知等等。
作为示例,终端400上运行有客户端410(例如网络版的游戏应用),通过连接服务器200(例如游戏服务器)与其他用户进行游戏互动,终端400输出客户端410的虚拟场景100,以第一人称视角显示虚拟场景100为例,在虚拟场景100中显示渲染后的虚拟对象101,渲染后的虚拟对象101可以是受用户(或称玩家)控制的游戏角色,将响应于真实用户针对按钮(包括摇杆按钮、攻击按钮、防御按钮等)的操作而在虚拟场景中操作,例如当真实用户向左移动摇杆按钮时,虚拟对象将在虚拟场景中向左部移动,还可以保持原地静止、跳跃以及使用各种功能(如技能和道具);渲染后的虚拟对象101也可以是通过训练设置在虚拟场景对战中的人工智能(AI,Artificial Intelligence);渲染后的虚拟对象101还可以是设置在虚拟场景互动中的非用户角色(NPC,Non-Playe r Character);渲染后的虚拟对象101还可以是虚拟场景100中不可活动对象或者可活动对象。
举例来说,以第一人称视角显示虚拟场景100为例,在虚拟场景100中显示待渲染的虚拟对象,在对战游戏的过程中,玩家通过自定义调整待渲染的虚拟对象,例如为待渲染的虚拟对象重新配置妆容(例如眼影、腮红灯)、服饰、头饰102等展示信息,并通过图像渲染方法,将重新配置的展示信息对应的多个纹理图像进行纹理映射处理,得到渲染目标纹理图像,将渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质,基于映射后的渲染材质对待渲染的虚拟对象的至少一个部位进行图像渲染处理,以通过妆容、服饰等展示信息重新修饰待渲染的虚拟对象,并基于重新渲染后的虚拟对象101进行虚拟场景的人机交互,例如游戏对抗,玩家可以随时调整这些展示信息达到自定义虚拟对象的效果,提高游戏的可玩性和多样性,也提高了用户的使用体验。
在一些实施例中,终端400可以通过运行计算机程序来实现本申请实施例提供的图像渲染方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,APPlication),即需要在操作系统中安装才能运行的程序,例如换装游戏APP(即上述的客户端410);也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的游戏小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
以计算机程序为应用程序为例,在实际实施时,终端400安装和运行有支持虚拟场景的应用程序。该应用程序可以是第一人称射击游戏(FPS,First-Per son Shootinggame)、第三人称射击游戏、虚拟现实应用程序、三维地图程序或者多人枪战类生存游戏中的任意一种。用户使用终端400操作位于虚拟场景中的虚拟对象进行活动,该活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、跳跃、驾驶、拾取、射击、攻击、投掷、建造虚拟建筑中的至少一种。示意性的,该虚拟对象可以是虚拟人物,比如仿真人物角色或动漫人物角色等。
在一些实施例中,本申请实施例还可以借助于云技术(Cloud Technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源。
示例的,图1B中的服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端400以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
参见图2,图2是本申请实施例提供的用于图像渲染的电子设备的结构示意图,以电子设备为终端400为例进行说明,图2所示的电子设备400包括:至少一个处理器420、存储器460、至少一个网络接口430和用户接口440。终端400中的各个组件通过总线系统450耦合在一起。可理解,总线系统450用于实现这些组件之间的连接通信。总线系统450除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统450。
处理器420可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口440包括使得能够呈现媒体内容的一个或多个输出装置441,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口440还包括一个或多个输入装置442,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器460可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器460可选地包括在物理位置上远离处理器420的一个或多个存储设备。
存储器460包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器460旨在包括任意适合类型的存储器。
在一些实施例中,存储器460能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统461,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块462,用于经由一个或多个(有线或无线)网络接口430到达其他计算设备,示例性的网络接口430包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块463,用于经由一个或多个与用户接口440相关联的输出装置441(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块464,用于对一个或多个来自一个或多个输入装置442之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的图像渲染装置可以采用软件方式实现,图2示出了存储在存储器460中的图像渲染装置465,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块4651、第一映射模块4652、第二映射模块4653、渲染模块4654以及处理模块4655,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
在另一些实施例中,本申请实施例提供的图像渲染装置可以采用硬件方式实现,作为示例,本申请实施例提供的图像渲染装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的图像渲染方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Progra mmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmabl e Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
下面将结合附图对本申请实施例提供的图像渲染方法进行具体说明。本申请实施例提供的图像渲染方法可以由图1A中的终端400单独执行,也可以由图1B中的终端400和服务器200协同执行。
下面,以由图1A中的终端400单独执行本申请实施例提供的图像渲染方法为例进行说明。参见图3,图3是本申请实施例提供的图像渲染方法的流程示意图,将结合图3示出的步骤进行说明。
需要说明的是,图3示出的方法可以由终端400上运行的各种形式的计算机程序执行,并不局限于上述的客户端410,还可以是上文的操作系统461、软件模块和脚本,因此客户端不应视为对本申请实施例的限定。
在步骤101中,获取待渲染的虚拟对象的多个纹理图像,其中,每个纹理图像对应待渲染的虚拟对象的至少一个部位。
需要说明的是,待渲染的虚拟对象的纹理图像为对应展示信息的纹理图像,其中展示信息用于修饰待渲染的虚拟对象的至少一个部位,例如用于修饰虚拟角色面部的妆容(例如唇形、眼影、瞳孔、虹膜、腮红等)、用于修饰虚拟角色的四肢的服饰(例如古装、战斗服等)。其中,待渲染的虚拟对象不包括展示信息,例如,如图6所示的待渲染的虚拟对象601为基础对象模型,需要为基础对象模型添加装饰,例如妆容、服饰等。
在一些实施例中,获取待渲染的虚拟对象的多个纹理图像,包括:显示多个候选展示信息,其中,候选展示信息用于修饰待渲染的虚拟对象的至少一个部位;响应于针对多个候选展示信息的选择操作,将被选中的候选展示信息作为目标展示信息;将目标展示信息对应的纹理图像作为待渲染的虚拟对象的纹理图像。
如图7所示,在人机交互界面显示多个候选展示信息,例如服饰1、服饰2、服饰3等,当选中服饰1时,则将服饰1对应的纹理图像作为待渲染的虚拟对象601的纹理图像,以便后续在待渲染的虚拟对象601的身体部位添加服饰1,从而形象地为待渲染的虚拟对象601穿上服饰1。
在步骤102中,将多个纹理图像进行纹理映射处理,得到渲染目标纹理图像。
例如,每个纹理图像对应待渲染的虚拟对象的至少一个部位,将多个纹理图像进行纹理映射处理,得到一个渲染目标纹理图像,从而在后续渲染过程中,只需要引用这一个渲染目标纹理图像,进而可以释放原始的纹理资源(例如对应唇形、眼影、瞳孔、虹膜等纹理图像),以达到减小存储空间(例如内存)使用量的效果。
参见图4,图4是本申请实施例提供的图像渲染方法的一个可选的流程示意图,图4示出图3中的步骤102可以通过步骤1021-步骤1022实现:在步骤1021中,对多个纹理图像进行纹理定位处理,得到包括纹理参数的烘焙材质;在步骤1022中,通过烘焙材质,将多个纹理图像进行纹理烘焙处理,得到渲染目标纹理图像。
例如,基于纹理图像设置烘焙材质的纹理参数,得到包括纹理参数的烘焙材质,并通过烘焙材质将纹理图像绘制至渲染目标纹理图像,从而在后续渲染过程中,只需要引用这一个渲染目标纹理图像,以达到减小内存使用量的效果。
需要说明的是,烘焙材质为用于加工纹理图像的工具,烘焙材质有两个作用:1)承载原始的纹理图像,通过设置的纹理参数,将原始的纹理图像按顺序放置到烘焙材质(作用类似于一种临时相框);2)将加工后的纹理图像原模原样绘制(复制)到渲染目标纹理图像上(一种工具作用)。
作为示例,纹理图像类似于9宫格拼图里面的子图块(例如眉毛、腮红、眼影等展示信息对应的子图块)。烘焙材质用于承载子图块,能将子图块放置到烘焙材质中(类似于临时相框),并将拼好的子图块原模原样绘制(复制)到画布(即渲染目标纹理图像)上。
在一些实施例中,对多个纹理图像进行纹理定位处理,得到包括纹理参数的烘焙材质,包括:基于多个纹理图像,确定纹理参数;按照纹理参数,将多个纹理图像填充至烘焙材质中,得到包括纹理参数的烘焙材质。
例如,基于纹理图像的属性,确定对应的纹理参数,并按照纹理参数,将多个纹理图像放置到烘焙材质中,以得到包括纹理参数的烘焙材质。例如,纹理图像1对应嘴唇,纹理图像2对应脸颊,则基于纹理图像1,确定对应的纹理参数为参数1,基于纹理图像2,确定对应的纹理参数为参数2,按照参数1和参数2的顺序,将纹理图像1和纹理图像2填充至对应的位置,得到包括纹理参数的烘焙材质。
作为示例,纹理图像类似于9宫格拼图里面的子图块(例如眉毛、腮红、眼影等展示信息对应的子图块),纹理参数类似于子图块的顺序。烘焙材质用于承载子图块,按照子图块的顺序,将子图块放置到烘焙材质中。
在一些实施例中,烘焙材质包括多个纹理单元;将多个纹理图像填充至烘焙材质中,得到包括纹理参数的烘焙材质,包括:将多个纹理图像填充至烘焙材质中对应的纹理单元中,得到包括纹理参数的烘焙材质;其中,纹理单元中填充有至少一个纹理图像。
例如,如果对于更多的角色妆容部位划分,则需要更多的纹理单元。例如,OpenGL至少保证有16个纹理单元可用,也就是说可以从GL_TEXTURE0到GL_TEXTURE15任取纹理单元进行输入,但是当要使用第17个纹理单元时,OpenGL并没有不能支持,使用DrawMaterialToRenderTarget函数则可以巧妙的将需要输入某些纹理单元的纹理图像进行合并输出一张图,并将合并输出的纹理图像作为纹理单元的输入,从而间接达到了更多的纹理输入单元的目的。
在一些实施例中,将多个纹理图像进行纹理烘焙处理,得到渲染目标纹理图像,包括:确定用于纹理烘焙的渲染纹理图像;通过烘焙材质,将多个纹理图像绘制至渲染纹理图像,得到渲染目标纹理图像。
例如,确定用于纹理烘焙的渲染纹理图像后,通过烘焙材质,将多个纹理图像绘制至渲染纹理图像,以得到渲染目标纹理图像。
作为示例,纹理图像类似于9宫格拼图里面的子图块(例如眉毛、腮红、眼影等展示信息对应的子图块),纹理参数类似于子图块的顺序,渲染纹理图像类似于画布,这个画布最终需要放到相框进行展示。烘焙材质用于承载子图块,按照子图块的顺序,将子图块放置到烘焙材质中,通过烘焙材质将合并后的子图块原模原样地绘制到画布上。
在一些实施例中,确定用于纹理烘焙的渲染纹理图像,包括:确定待渲染的虚拟对象的渲染精度;基于待渲染的虚拟对象的渲染精度查询配置文件,得到与待渲染的虚拟对象的渲染精度对应的尺寸的渲染纹理图像;其中,配置文件包括不同渲染精度与不同尺寸的渲染纹理图像的关联关系。
例如,不同渲染精度的虚拟对象对应不同尺寸的渲染纹理图像,例如高精度的游戏角色模型对应大尺寸的渲染纹理图像,低精度的游戏模型对应小尺寸的渲染纹理图像,从而通过对渲染纹理图像更细粒度的划分,充分利用存储空间以及计算资源,进而提高虚拟对象的显示效果。
作为示例,游戏内游戏角色的模型分为两种,一种是高精度模型(高渲染精度),用于展示角色详细信息的高清模型,一种是游戏内第三方低精度模型(低渲染精度),高低精度模型的区分不仅仅在于模型顶点和面片的区别,还有尺寸的区别,对于低精度模型而言,使用1024*1024的渲染纹理图像远远超过其精度需求的,则使用258*258的渲染纹理图像即可,从而节约存储空间以及计算资源。
在一些实施例中,确定待渲染的虚拟对象的渲染精度,包括:获取用于图像渲染的图形处理性能参数;基于图形处理性能参数查询性能参数配置文件,得到与图形处理性能参数对应的待渲染的虚拟对象的渲染精度;其中,性能参数配置文件包括不同图形处理性能参数与不同渲染精度的关联关系。
例如,预先配置不同图形处理性能参数与不同渲染精度的关联关系,并保存于性能参数配置文件中,在获取用于图像渲染的图形处理性能参数后,基于用于图像渲染的图形处理性能参数查询性能参数配置文件包括的不同图形处理性能参数与不同渲染精度的关联关系,以查询到与图形处理性能参数对应的待渲染的虚拟对象的渲染精度,后续基于待渲染的虚拟对象的渲染精度查询配置文件,得到与待渲染的虚拟对象的渲染精度对应的尺寸的渲染纹理图像。
作为示例,用于图像渲染的图形处理性能参数为性能强,基于用于图像渲染的图形处理性能参数查询性能参数配置文件,得到与与图形处理性能参数对应的待渲染的虚拟对象的渲染精度为高精度模型;用于图像渲染的图形处理性能参数为性能弱,基于用于图像渲染的图形处理性能参数查询性能参数配置文件,得到与与图形处理性能参数对应的待渲染的虚拟对象的渲染精度为低精度模型。
在一些实施例中,图形处理性能参数包括图形处理硬件参数,性能参数配置文件包括不同图形处理硬件参数与不同渲染精度的关联关系;基于图形处理性能参数查询性能参数配置文件,得到与图形处理性能参数对应的待渲染的虚拟对象的渲染精度,包括:在虚拟场景运行结束前,基于图形处理硬件参数查询性能参数配置文件,得到与图形处理性能参数对应的待渲染的虚拟对象的渲染精度;其中,图形处理硬件参数是根据显示渲染后的虚拟对象的电子设备的机型查询到的,且包括以下至少之一:处理器型号、存储器容量。
例如,处理器包括中央处理器、图形处理器等,不同型号的处理器、不同容量的存储器,其运行软件的速率不同,在虚拟场景开始运行时或者虚拟场景运行中,基于虚拟场景的图形处理硬件参数查询性能参数配置文件,得到与图形处理性能参数对应的待渲染的虚拟对象的渲染精度,例如,当显示虚拟场景的电子设备的存储器容量大、处理器能力强,则与图形处理性能参数对应的待渲染的虚拟对象的渲染精度的模型精度高。
在一些实施例中,图形处理性能参数包括图形处理软件参数,性能参数配置文件包括不同图形处理软件参数与不同渲染精度的关联关系;基于图形处理性能参数查询性能参数配置文件,得到与图形处理性能参数对应的待渲染的虚拟对象的渲染精度,包括:基于虚拟场景运行时的图形处理软件参数查询性能参数配置文件,得到与虚拟场景运行时的图形处理软件参数对应的待渲染的虚拟对象的渲染精度;其中,图形处理软件参数包括以下至少之一:存储器空闲容量、处理器空闲计算能力。
例如,处理器包括中央处理器、图形处理器等,当电子设备运行软件后,其运行软件的速率不同,在虚拟场景运行中,基于虚拟场景的图形处理软件参数查询性能参数配置文件,得到与虚拟场景运行时的图形处理软件参数对应的待渲染的虚拟对象的渲染精度,例如,当显示虚拟场景的电子设备的存储器空闲容量大、处理器空闲计算能力强,则与虚拟场景的图形处理硬件参数对应的待渲染的虚拟对象的渲染精度的模型精度高。其中,计算能力取决于核心的个数、核心的频率、核心单时钟周期等。
在一些实施例中,获取待渲染的虚拟对象的多个纹理图像,包括:从缓存空间中获取待渲染的虚拟对象的多个纹理图像;在将多个纹理图像进行纹理映射处理,得到渲染目标纹理图像之后,从缓存空间中释放待渲染的虚拟对象的多个纹理图像。
例如,从缓存空间中获取待渲染的虚拟对象的多个纹理图像,并将多个纹理图像进行纹理映射处理,得到一个渲染目标纹理图像之后,则释放原始的纹理图像资源,在虚拟对象的生命周期内仅引用渲染目标纹理图像即可,以减小内存占用。
在步骤103中,将渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质。
例如,渲染材质为最终真实用于展示虚拟对象的材质,将渲染目标纹理图像绘制至渲染材质中,得到映射后的渲染材质,后续基于映射后的渲染材质进行图像渲染,以呈现渲染后的虚拟对象。
作为示例,渲染材质类似于相框,需要向相框中填充画布,渲染纹理图像类似于画布,这个画布最终需要放到相框进行展示。通过烘焙材质将合并后的子图块原模原样地绘制到画布上后,将画布填充至相框中。
参见图5,图5是本申请实施例提供的图像渲染方法的一个可选的流程示意图,图5示出图3中的步骤102可以通过步骤1023-步骤1025实现:对应至少一个部位的纹理图像包括基础颜色纹理图像、法线纹理图像、粗糙度纹理图像;在步骤1023中,针对对应至少一个部位的纹理图像执行以下处理:对基础颜色纹理图像进行纹理映射处理,得到包括基础颜色纹理参数的渲染目标纹理图像;在步骤1024中,对法线纹理图像进行纹理映射处理,得到包括法线纹理参数的渲染目标纹理图像;在步骤1025中,对粗糙度纹理图像进行纹理映射处理,得到包括粗糙度纹理参数的渲染目标纹理图像;图5示出图3中的步骤103可以通过步骤1031实现:将包括基础颜色纹理参数的渲染目标纹理图像、包括法线纹理参数的渲染目标纹理图像以及包括粗糙度纹理参数的渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质。
例如,若要精细的表达虚拟对象的展示信息,需要提供虚拟对象对应部位的基础颜色(BaseColor)、法线(Normal)、粗糙度(Rougness)等信息,所以共需要生成3张渲染目标纹理图像(TextureRenderTarget2D),即BaseColor、Normal和Roughness,虚拟对象最终由这三张贴图进行采样渲染。由于需要三张TextureRenderTaraget2D来表达虚拟对象的部位信息,则需要有3份烘焙材质分别绘制BaseColor、Normal和Rougness。基于基础颜色纹理图像、法线纹理图像、粗糙度纹理图像,分别生成包括基础颜色纹理参数的渲染目标纹理图像、包括法线纹理参数的渲染目标纹理图像以及包括粗糙度纹理参数的渲染目标纹理图像,并将包括基础颜色纹理参数的渲染目标纹理图像、包括法线纹理参数的渲染目标纹理图像以及包括粗糙度纹理参数的渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质,从而精细的表达虚拟对象。
在步骤104中,基于映射后的渲染材质对待渲染的虚拟对象的至少一个部位进行图像渲染处理,得到渲染后的虚拟对象。
例如,获取映射后的渲染材质之后,基于映射后的渲染材质对待渲染的虚拟对象的至少一个部位进行图像渲染,以呈现渲染后的虚拟对象,从而玩家通过调节一些参数达到自定义虚拟对象的功能,例如为游戏角色添加眼影、腮红等妆容,从而吸引特定的用户群体以增加游戏的基础用户数量,提高游戏的可玩性和多样性。
作为示例,在人机交互界面显示多个候选展示信息,例如服饰1、服饰2、服饰3等,当选中服饰1时,则将服饰1对应的纹理图像作为待渲染的虚拟对象601的纹理图像,如图8所示,将待渲染的虚拟对象601的纹理图像进行纹理映射处理,得到渲染目标纹理图像,将渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质,基于映射后的渲染材质对待渲染的虚拟对象601的身体部位进行图像渲染处理,得到渲染后的虚拟对象602,渲染后的虚拟对象602的身体部位添加服饰1,从而形象地为虚拟对象601穿上服饰1。
作为示例,在人机交互界面显示多个候选展示信息,例如睫毛、嘴巴、眼影、头发等,当选中嘴唇和眼影时,则将嘴唇和眼影对应的纹理图像作为待渲染的虚拟对象601的纹理图像,如图9所示,将待渲染的虚拟对象601的纹理图像进行纹理映射处理,得到渲染目标纹理图像,将渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质,基于映射后的渲染材质对待渲染的虚拟对象601的嘴巴和眼睛部位进行图像渲染处理,得到渲染后的虚拟对象,渲染后的虚拟对象的眼睛部位添加眼影、嘴巴部位添加嘴唇。
在一些实施例中,当渲染后的虚拟对象的显示期限到达时,对映射后的渲染材质进行逆映射处理,得到渲染目标纹理图像;将渲染目标纹理图像存储至存储空间;其中,渲染目标纹理图像用于后续映射渲染目标纹理图像时,从存储空间中读取。
例如,当渲染后的虚拟对象再次更换展示信息或者渲染后的虚拟对象被击败,无法在虚拟场景中显示时,将渲染目标纹理图像从映射后的渲染材质中还原出来,即回收渲染目标纹理图像,并将渲染目标纹理图像存储至存储空间,以便后续再次映射渲染目标纹理图像时,从从存储空间中读取渲染目标纹理图像,从而实现重复利用渲染目标纹理图像的功能,并释放渲染材质,以减小内存占用。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例可以应用于具有调整角色面部妆容功能等的游戏,例如对角色面部有精细控制需求且对游戏品质和性能要求较高的产品。玩家通过游戏面板调节一些参数从而达到自定义角色的功能,例如为游戏角色添加眼影、腮红等妆容,从而吸引特定的用户群体以增加游戏的基础用户数量,提高游戏的可玩性和多样性。
下面以虚拟场景为游戏为例进行说明:
相关技术中,通过直接设置材质(Material)的纹理(Texture)方式,无中间层操作,在游戏内角色生成时加载纹理,角色销毁时进行纹理回收及释放。如图10所示,1)加载角色;2)角色加载完成,加载角色所需的纹理;3)角色未加载完成,等待加载;4)设置材质纹理参数;5)当需要销毁角色时,纹理回收;6)当不需要销毁角色时,等待角色销毁。
因此,相关技术存在以下问题:1)无法对某些游戏角色的纹理做出精度区分,所有游戏角色统一纹理精度,当游戏角色过远时,只能依赖纹理映射技术(例如mipmap)进行渲染加速,但这样方式又会增加额外的内存使用量;2)内存不可控,当游戏角色过多时,每一个游戏角色的生命周期内都需要持有原始纹理引用,造成较大的内存浪费;3)多角色的引用关系增加纹理回收系统设计的复杂度。
为了解决上述问题,本申请实施例提供一种图像渲染方法,对有妆容逻辑且需要进行内存优化的游戏提供方法,能够达到最大程度的减少妆容的内存占用量,且实现效果佳,内存占用量可调整,在性能和内存二者之间取较佳优化点。
需要说明的是,游戏内角色尤其是第三方角色(第三方玩家控制的角色),由于手机屏幕大小限制,使用高精度纹理和低精度纹理视觉差别不大,从而可以通过减小纹理尺寸来限制内存。此外,本申请实施例将游戏角色所有的妆容的纹理通过一个中间的烘焙(bake)材质绘制到一张渲染目标纹理图像(TextureRenderTarget2D)上,然后再将这张TextureRenderTarget2D作为网格(Mesh)的基础材质输入,然后输出到屏幕,整个过程仅需在游戏角色的生命周期内保留TextureRenderTarget2D即可,进而可以释放原始的妆容纹理资源(例如唇形、眼影、瞳孔、虹膜等),从而达到减小内存使用量的效果。
下面结合图11具体说明本申请实施例提供的图像渲染方法:
步骤11、加载游戏角色。
步骤12、游戏角色加载完成,加载游戏角色所需的纹理。
需要说明的是,角色所需纹理就是妆容(例如眉毛、腮红、眼影)对应的纹理。
步骤13、游戏角色未加载完成,则等待加载。
步骤14、设置烘焙材质的纹理参数。
需要说明的是,bake材质为用于对原始的妆容纹理资源进行加工的工具。bake材质有两个作用:1)承载原始的妆容纹理资源,通过设置的纹理参数,将原始的妆容纹理资源按顺序放置到bake材质(作用类似于一种临时相框);2)将加工后的妆容纹理资源原模原样绘制(复制)到TextureRenderTarget2D上(工具作用)。
步骤15、生成用于烘焙的渲染纹理图像(初始的TextureRenderTarget2D)。
步骤16、绘制渲染纹理图像。
需要说明的是,通过烘焙材质的工具作用,将加工后的妆容纹理资源原模原样绘制到初始的TextureRenderTarget2D上,得到渲染后渲染目标纹理图像(TextureRenderTarget2D可以设置不同的尺寸,电脑的高中低配置决定TextureRenderTarget2D的尺寸)。
步骤17、将渲染目标纹理图像设置到用于实际渲染的材质上。
需要说明的是,实际渲染的材质是最终真实用于展示游戏角色的材质,将将绘制后的渲染纹理图像(即渲染目标纹理图像)设置到用于实际渲染的材质上。
步骤18、当需要销毁游戏角色时,则回收纹理。
需要说明的是,纹理回收就是从实际渲染的材质中把渲染目标纹理图像取出来,下次接着用。其中,纹理回收是销毁角色的子步骤。
步骤19、当不需要销毁游戏角色时,则等待角色销毁。
因此,本申请实施例提供的图像渲染方法需要两套材质,分别为材质1和材质2,下面具体说明材质1和材质2:
材质1:烘焙材质,用于将用户修改的原始纹理以及除原始纹理之外的其他材质参数设置到材质1,然后调用DrawMaterialToRenderTarget函数将材质内容输出到一张临时的渲染目标纹理图像(TextureRenderTarget2D)上。
材质2:真实用于实际渲染目标角色的材质。将材质1输出的TextureRenderTarget2D作为材质2的输入,并最终渲染到屏幕上。
需要说明的是,TextureRenderTaraget2D用于接收材质1的渲染结果,并且通过中间烘焙介质将渲染结果传输至材质2,在目标角色的生命周期内,这个TextureRenderTarget2D应被始终持有,并且在生命周期的末尾进行回收释放。
若要精细的表达角色面部信息,需要提供角色面部的基础颜色(BaseColor)、法线(Normal)、粗糙度(Rougness)等信息,所以图5所示的流程中加载纹理到纹理回收的过程,共需要生成3张TextureRenderTarget2D,即BaseColor、Normal和Roughness,角色最终由这三张贴图进行采样渲染。由于需要三张TextureRenderTaraget2D来表达面部信息,则需要有3份材质分别绘制BaseColor、Normal和Rougness。上图中,从加载角色纹理到纹理回收流程更精细的划分如图12所示,图11中的步骤12精细划分为加载基础颜色纹理、加载法线纹理、加载粗糙度纹理;图11中的步骤14精细划分为设置基础颜色纹理参数、设置法线纹理参数、设置粗糙度纹理参数;图11中的步骤15精细划分为生成基础颜色的渲染纹理图像(RT(BaseColor))、生成法线的渲染纹理图像(RT(Normal))、生成粗糙度的渲染纹理图像(RT(Rougness));图11中的步骤16精细划分为绘制基础颜色的渲染目标纹理图像(DrawRT(BaseColor))、绘制法线的渲染目标纹理图像(DrawRT(Normal))、绘制粗糙度的渲染目标纹理图像(DrawRT(Rougness));图11中的步骤17是分别将DrawRT(BaseColor)、DrawRT(Normal)、DrawRT(Rougness)设置到用于实际渲染的材质上;图5中的步骤18精细划分为回收基础颜色纹理、法线纹理、粗糙度纹理。
需要说明的是,本申请实施例可以对TextureRenderTarget2D进行粒度划分。游戏内游戏角色的模型分为两种,一种是高精度模型,用于展示角色详细信息的高清模型,一种是游戏内第三方低精度模型,高低精度模型的区分不仅仅在于模型顶点和面片的区别,还有尺寸的区别,对于低精度模型而言,使用1024*1024大小贴图远远超过其精度需求的,并且场景角色越多则占用的内存越大,对于不同精度的角色,在图11中的步骤15对TextureRenderTarget2D有更细粒度的大小划分,如表1所示。
表1
高清模型 | 第三方低精度模型 | |
BaseColor | 1024*1024 | 256*256 |
Normal | 1024*1024 | 128*128 |
Rougness | 1024*1024 | 128*128 |
需要说明的是,如果对于更多的角色妆容部位划分,则需要更多的纹理输入单元。例如,OpenGL至少保证有16个纹理单元可用,也就是说可以从GL_TEXTURE0到GL_TEXTURE15任取纹理单元进行输入,但是当要使用第17个纹理单元时,OpenGL并没有不能支持,仅部分硬件厂商开放更多的纹理单元,使用DrawMaterialToRenderTarget函数则可以巧妙的将某些纹理单元进行合并输出到一张图,然后再将合并输出作为纹理单元的输入,从而间接达到了更多的纹理输入单元的目的。
综上,本申请实施例提供的游戏内角色妆容内存优化的方法具有以下有益效果:
1)不需要在角色生命周期内一直维护最初始的纹理输入,这些纹理在材质1作用完毕之后即可立即释放,达到即用即可删除的目的,而这些纹理的内容被输出到TextureRenderTarget2D,且只需要维护这一张TextureRenderTarget2D即可,大大减少了设计的复杂度。
2)TextureRenderTarget2D的尺寸可自定义,对于某一类精度要求较高的角色(比如距离较近)可以使用更大的尺寸来提高精度,对于不同的机型或者不同的应用场景,亦可通过配置的方式动态选择不同的策略,大大增加了软件的可控程度。
至此已经结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的图像渲染方法,下面继续说明本申请实施例提供的图像渲染装置465中各个模块配合实现图像渲染方案。
获取模块4651,用于获取待渲染的虚拟对象的多个纹理图像,其中,每个所述纹理图像对应所述待渲染的虚拟对象的至少一个部位;第一映射模块4652,用于将所述多个纹理图像进行纹理映射处理,得到渲染目标纹理图像;第二映射模块4653,用于将所述渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质;渲染模块4654,用于基于所述映射后的渲染材质对所述待渲染的虚拟对象的至少一个部位进行图像渲染处理,得到渲染后的虚拟对象。
在一些实施例中,所述第一映射模块4652还用于对所述多个纹理图像进行纹理定位处理,得到包括纹理参数的烘焙材质;通过所述烘焙材质,将所述多个纹理图像进行纹理烘焙处理,得到渲染目标纹理图像。
在一些实施例中,所述第一映射模块4652还用于基于所述多个纹理图像,确定所述纹理参数;按照所述纹理参数,将所述多个纹理图像填充至所述烘焙材质中,得到包括所述纹理参数的烘焙材质。
在一些实施例中,所述烘焙材质包括多个纹理单元;所述第一映射模块4652还用于将所述多个纹理图像填充至所述烘焙材质中对应的纹理单元中,得到包括所述纹理参数的烘焙材质;其中,所述纹理单元中填充有至少一个所述纹理图像。
在一些实施例中,所述第一映射模块4652还用于确定用于纹理烘焙的渲染纹理图像;通过所述烘焙材质,将所述多个纹理图像绘制至所述渲染纹理图像,得到所述渲染目标纹理图像。
在一些实施例中,所述第一映射模块4652还用于确定所述待渲染的虚拟对象的渲染精度;基于所述待渲染的虚拟对象的渲染精度查询配置文件,得到与所述待渲染的虚拟对象的渲染精度对应的尺寸的渲染纹理图像;其中,所述配置文件包括不同渲染精度与不同尺寸的渲染纹理图像的关联关系。
在一些实施例中,所述第一映射模块4652还用于获取用于图像渲染的图形处理性能参数;基于所述图形处理性能参数查询性能参数配置文件,得到与所述图形处理性能参数对应的所述待渲染的虚拟对象的渲染精度;其中,所述性能参数配置文件包括不同所述图形处理性能参数与不同渲染精度的关联关系。
在一些实施例中,所述图形处理性能参数包括图形处理硬件参数,所述性能参数配置文件包括不同所述图形处理硬件参数与不同渲染精度的关联关系;所述第一映射模块4652还用于在虚拟场景运行结束前,基于所述图形处理硬件参数查询所述性能参数配置文件,得到与所述图形处理性能参数对应的所述待渲染的虚拟对象的渲染精度;其中,所述图形处理硬件参数是根据显示所述渲染后的虚拟对象的电子设备的机型查询到的,且包括以下至少之一:处理器型号、存储器容量。
在一些实施例中,所述图形处理性能参数包括图形处理软件参数,所述性能参数配置文件包括不同所述图形处理软件参数与不同渲染精度的关联关系;所述第一映射模块4652还用于基于虚拟场景运行时的图形处理软件参数查询所述性能参数配置文件,得到与所述虚拟场景运行时的图形处理软件参数对应的所述待渲染的虚拟对象的渲染精度;其中,所述图形处理软件参数包括以下至少之一:存储器空闲容量、处理器空闲计算能力。
在一些实施例中,对应至少一个部位的所述纹理图像包括基础颜色纹理图像、法线纹理图像、粗糙度纹理图像;所述第一映射模块4652还用于针对对应至少一个部位的所述纹理图像执行以下处理:对所述基础颜色纹理图像进行纹理映射处理,得到包括基础颜色纹理参数的渲染目标纹理图像;对所述法线纹理图像进行纹理映射处理,得到包括法线纹理参数的渲染目标纹理图像;对所述粗糙度纹理图像进行纹理映射处理,得到包括粗糙度纹理参数的渲染目标纹理图像;所述第二映射模块4653还用于将所述包括基础颜色纹理参数的渲染目标纹理图像、所述包括法线纹理参数的渲染目标纹理图像以及所述包括粗糙度纹理参数的渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质。
在一些实施例中,所述获取模块4651还用于从缓存空间中获取所述待渲染的虚拟对象的多个纹理图像;在所述将所述多个纹理图像进行纹理映射处理,得到渲染目标纹理图像之后,从所述缓存空间中释放所述待渲染的虚拟对象的多个纹理图像。
在一些实施例中,所述获取模块4651还用于显示多个候选展示信息,其中,所述候选展示信息用于修饰所述待渲染的虚拟对象的至少一个部位;响应于针对所述多个候选展示信息的选择操作,将被选中的所述候选展示信息作为目标展示信息;将所述目标展示信息对应的纹理图像作为所述待渲染的虚拟对象的纹理图像。
在一些实施例中,所述装置还包括:处理模块4655,用于当所述渲染后的虚拟对象的显示期限到达时,对所述映射后的渲染材质进行逆映射处理,得到所述渲染目标纹理图像;将所述渲染目标纹理图像存储至存储空间;其中,所述渲染目标纹理图像用于后续映射所述渲染目标纹理图像时,从所述存储空间中读取。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的图像渲染方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的图像渲染方法,例如,如图3-图5示出的图像渲染方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (17)
1.一种图像渲染方法,其特征在于,所述方法包括:
获取待渲染的虚拟对象的多个纹理图像,其中,每个所述纹理图像对应所述待渲染的虚拟对象的至少一个部位;
将所述多个纹理图像进行纹理映射处理,得到渲染目标纹理图像;
将所述渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质;
基于所述映射后的渲染材质对所述待渲染的虚拟对象的至少一个部位进行图像渲染处理,得到渲染后的虚拟对象。
2.根据权利要求1所述的方法,其特征在于,所述将所述多个纹理图像进行纹理映射处理,得到渲染目标纹理图像,包括:
对所述多个纹理图像进行纹理定位处理,得到包括纹理参数的烘焙材质;
通过所述烘焙材质,将所述多个纹理图像进行纹理烘焙处理,得到渲染目标纹理图像。
3.根据权利要求2所述的方法,其特征在于,所述对所述多个纹理图像进行纹理定位处理,得到包括纹理参数的烘焙材质,包括:
基于所述多个纹理图像,确定所述纹理参数;
按照所述纹理参数,将所述多个纹理图像填充至所述烘焙材质中,得到包括所述纹理参数的烘焙材质。
4.根据权利要求3所述的方法,其特征在于,
所述烘焙材质包括多个纹理单元;
所述将所述多个纹理图像填充至所述烘焙材质中,得到包括所述纹理参数的烘焙材质,包括:
将所述多个纹理图像填充至所述烘焙材质中对应的纹理单元中,得到包括所述纹理参数的烘焙材质;
其中,所述纹理单元中填充有至少一个所述纹理图像。
5.根据权利要求2所述的方法,其特征在于,所述将所述多个纹理图像进行纹理烘焙处理,得到渲染目标纹理图像,包括:
确定用于纹理烘焙的渲染纹理图像;
通过所述烘焙材质,将所述多个纹理图像绘制至所述渲染纹理图像,得到所述渲染目标纹理图像。
6.根据权利要求5所述的方法,其特征在于,所述确定用于纹理烘焙的渲染纹理图像,包括:
确定所述待渲染的虚拟对象的渲染精度;
基于所述待渲染的虚拟对象的渲染精度查询配置文件,得到与所述待渲染的虚拟对象的渲染精度对应的尺寸的渲染纹理图像;
其中,所述配置文件包括不同渲染精度与不同尺寸的渲染纹理图像的关联关系。
7.根据权利要求6所述的方法,其特征在于,所述确定所述待渲染的虚拟对象的渲染精度,包括:
获取用于图像渲染的图形处理性能参数;
基于所述图形处理性能参数查询性能参数配置文件,得到与所述图形处理性能参数对应的所述待渲染的虚拟对象的渲染精度;
其中,所述性能参数配置文件包括不同所述图形处理性能参数与不同渲染精度的关联关系。
8.根据权利要求7所述的方法,其特征在于,
所述图形处理性能参数包括图形处理硬件参数,所述性能参数配置文件包括不同所述图形处理硬件参数与不同渲染精度的关联关系;
所述基于所述图形处理性能参数查询性能参数配置文件,得到与所述图形处理性能参数对应的所述待渲染的虚拟对象的渲染精度,包括:
在虚拟场景运行结束前,基于所述图形处理硬件参数查询所述性能参数配置文件,得到与所述图形处理性能参数对应的所述待渲染的虚拟对象的渲染精度;
其中,所述图形处理硬件参数是根据显示所述渲染后的虚拟对象的电子设备的机型查询到的,且包括以下至少之一:处理器型号、存储器容量。
9.根据权利要求7所述的方法,其特征在于,
所述图形处理性能参数包括图形处理软件参数,所述性能参数配置文件包括不同所述图形处理软件参数与不同渲染精度的关联关系;
所述基于所述图形处理性能参数查询性能参数配置文件,得到与所述图形处理性能参数对应的所述待渲染的虚拟对象的渲染精度,包括:
基于虚拟场景运行时的图形处理软件参数查询所述性能参数配置文件,得到与所述虚拟场景运行时的图形处理软件参数对应的所述待渲染的虚拟对象的渲染精度;
其中,所述图形处理软件参数包括以下至少之一:存储器空闲容量、处理器空闲计算能力。
10.根据权利要求1所述的方法,其特征在于,
对应至少一个部位的所述纹理图像包括基础颜色纹理图像、法线纹理图像、粗糙度纹理图像;
所述将所述多个纹理图像进行纹理映射处理,得到渲染目标纹理图像,包括:
针对对应至少一个部位的所述纹理图像执行以下处理:
对所述基础颜色纹理图像进行纹理映射处理,得到包括基础颜色纹理参数的渲染目标纹理图像;
对所述法线纹理图像进行纹理映射处理,得到包括法线纹理参数的渲染目标纹理图像;
对所述粗糙度纹理图像进行纹理映射处理,得到包括粗糙度纹理参数的渲染目标纹理图像;
所述将所述渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质,包括:
将所述包括基础颜色纹理参数的渲染目标纹理图像、所述包括法线纹理参数的渲染目标纹理图像以及所述包括粗糙度纹理参数的渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质。
11.根据权利要求1所述的方法,其特征在于,
所述获取待渲染的虚拟对象的多个纹理图像,包括:
从缓存空间中获取所述待渲染的虚拟对象的多个纹理图像;
在所述将所述多个纹理图像进行纹理映射处理,得到渲染目标纹理图像之后,所述方法还包括:
从所述缓存空间中释放所述待渲染的虚拟对象的多个纹理图像。
12.根据权利要求1所述的方法,其特征在于,所述获取待渲染的虚拟对象的多个纹理图像,包括:
显示多个候选展示信息,其中,所述候选展示信息用于修饰所述待渲染的虚拟对象的至少一个部位;
响应于针对所述多个候选展示信息的选择操作,将被选中的所述候选展示信息作为目标展示信息;
将所述目标展示信息对应的纹理图像作为所述待渲染的虚拟对象的纹理图像。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述渲染后的虚拟对象的显示期限到达时,对所述映射后的渲染材质进行逆映射处理,得到所述渲染目标纹理图像;
将所述渲染目标纹理图像存储至存储空间;
其中,所述渲染目标纹理图像用于后续映射所述渲染目标纹理图像时,从所述存储空间中读取。
14.一种图像渲染装置,其特征在于,所述装置包括:
获取模块,用于获取待渲染的虚拟对象的多个纹理图像,其中,每个所述纹理图像对应所述待渲染的虚拟对象的至少一个部位;
第一映射模块,用于将所述多个纹理图像进行纹理映射处理,得到渲染目标纹理图像;
第二映射模块,用于将所述渲染目标纹理图像映射至渲染材质中,得到映射后的渲染材质;
渲染模块,用于基于所述映射后的渲染材质对所述待渲染的虚拟对象的至少一个部位进行图像渲染处理,得到渲染后的虚拟对象。
15.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至13任一项所述的图像渲染方法。
16.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时实现权利要求1至13任一项所述的图像渲染方法。
17.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现权利要求1至13任一项所述的图像渲染方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111313680 | 2021-11-08 | ||
CN2021113136809 | 2021-11-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114067042A true CN114067042A (zh) | 2022-02-18 |
Family
ID=80230746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111664453.0A Pending CN114067042A (zh) | 2021-11-08 | 2021-12-31 | 一种图像渲染方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114067042A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114894354A (zh) * | 2022-04-11 | 2022-08-12 | 汕头大学 | 基于表面结构色的压力感知反馈装置及深度学习识别方法 |
CN115908663A (zh) * | 2022-12-19 | 2023-04-04 | 支付宝(杭州)信息技术有限公司 | 一种虚拟形象的衣物渲染方法、装置、设备及介质 |
WO2023160054A1 (zh) * | 2022-02-25 | 2023-08-31 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
WO2023165198A1 (zh) * | 2022-03-03 | 2023-09-07 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
CN117270721A (zh) * | 2023-11-21 | 2023-12-22 | 虚拟现实(深圳)智能科技有限公司 | 基于多用户交互xr场景的数字形象渲染方法及装置 |
-
2021
- 2021-12-31 CN CN202111664453.0A patent/CN114067042A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023160054A1 (zh) * | 2022-02-25 | 2023-08-31 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
WO2023165198A1 (zh) * | 2022-03-03 | 2023-09-07 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
CN114894354A (zh) * | 2022-04-11 | 2022-08-12 | 汕头大学 | 基于表面结构色的压力感知反馈装置及深度学习识别方法 |
CN114894354B (zh) * | 2022-04-11 | 2023-06-13 | 汕头大学 | 基于表面结构色的压力感知反馈装置及深度学习识别方法 |
CN115908663A (zh) * | 2022-12-19 | 2023-04-04 | 支付宝(杭州)信息技术有限公司 | 一种虚拟形象的衣物渲染方法、装置、设备及介质 |
CN115908663B (zh) * | 2022-12-19 | 2024-03-12 | 支付宝(杭州)信息技术有限公司 | 一种虚拟形象的衣物渲染方法、装置、设备及介质 |
CN117270721A (zh) * | 2023-11-21 | 2023-12-22 | 虚拟现实(深圳)智能科技有限公司 | 基于多用户交互xr场景的数字形象渲染方法及装置 |
CN117270721B (zh) * | 2023-11-21 | 2024-02-13 | 虚拟现实(深圳)智能科技有限公司 | 基于多用户交互xr场景的数字形象渲染方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114067042A (zh) | 一种图像渲染方法、装置、设备、存储介质及程序产品 | |
CN108176048B (zh) | 图像的处理方法和装置、存储介质、电子装置 | |
CN111659115B (zh) | 虚拟角色控制方法、装置、计算机设备和存储介质 | |
CN112156464B (zh) | 虚拟对象的二维形象展示方法、装置、设备及存储介质 | |
US20240037839A1 (en) | Image rendering | |
JP7050883B2 (ja) | 中心窩レンダリングシステムにおける、遅延ライティングの最適化、パーティクルの中心窩適応、及びシミュレーションモデル | |
JP2020523687A (ja) | 中心窩レンダリングシステムにおけるシャドーの最適化及びメッシュスキンの適応 | |
CN110689604A (zh) | 个性化脸部模型显示方法、装置、设备及存储介质 | |
CN112927332B (zh) | 骨骼动画更新方法、装置、设备及存储介质 | |
CN112669194B (zh) | 虚拟场景中的动画处理方法、装置、设备及存储介质 | |
KR20180081557A (ko) | 눈 이미지를 생성하는 방법 및 디바이스 | |
CN114359458A (zh) | 一种图像渲染方法、装置、设备、存储介质及程序产品 | |
CN115082608A (zh) | 虚拟角色服装渲染方法、装置、电子设备和存储介质 | |
US20230405452A1 (en) | Method for controlling game display, non-transitory computer-readable storage medium and electronic device | |
CN110930484A (zh) | 动画配置方法和装置、存储介质及电子装置 | |
WO2023202254A1 (zh) | 图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN116958344A (zh) | 虚拟形象的动画生成方法、装置、计算机设备及存储介质 | |
CN113643417B (zh) | 图像调整方法、装置、电子设备及存储介质 | |
CN115082607A (zh) | 虚拟角色头发渲染方法、装置、电子设备和存储介质 | |
CN114399580A (zh) | 一种图像渲染方法、装置、设备、存储介质及程序产品 | |
CN114742970A (zh) | 虚拟三维模型的处理方法、非易失性存储介质及电子装置 | |
CN113222178A (zh) | 模型训练方法、用户界面的生成方法、装置及存储介质 | |
WO2023165198A1 (zh) | 图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN114219924B (zh) | 虚拟场景的适配显示方法、装置、设备、介质及程序产品 | |
CN107038737B (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 |