CN114359458A - 一种图像渲染方法、装置、设备、存储介质及程序产品 - Google Patents
一种图像渲染方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN114359458A CN114359458A CN202111661012.5A CN202111661012A CN114359458A CN 114359458 A CN114359458 A CN 114359458A CN 202111661012 A CN202111661012 A CN 202111661012A CN 114359458 A CN114359458 A CN 114359458A
- Authority
- CN
- China
- Prior art keywords
- baking
- material information
- map
- maps
- detail
- 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
- 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
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品;方法包括:获取第一细节层次模型的多个材质信息,其中,每个材质信息包括至少一种贴图;对每个材质信息包括的贴图进行图像烘焙处理,得到每个材质信息对应的烘焙贴图;对至少部分材质信息分别对应的烘焙贴图进行融合处理,得到融合烘焙贴图;基于融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型;其中,第一细节层次模型的细节程度高于第二细节层次模型的细节程度。通过本申请,节约相关的计算资源以及通信资源。
Description
本申请要求申请号为202111453285.0,申请日为2021年12月01日,名称为:一种图像渲染方法、装置、设备、存储介质及程序产品的优先权。
技术领域
本申请涉及计算机图形图像技术,尤其涉及一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
基于图形处理硬件的显示技术,扩展了感知环境以及获取信息的渠道,尤其是虚拟场景的显示技术,能够根据实际应用需求实现受控于用户或人工智能的虚拟对象之间的多样化的交互,具有各种典型的应用场景,例如在游戏等的虚拟场景中,能够模拟虚拟对象之间的真实的对战过程。
在虚拟场景中,当摄像机视野中的虚拟对象离摄像机很远时,可以看到虚拟对象的细节会减少,即虚拟对象对应的细节层次模型的细节程度低;当摄像机视野中的虚拟对象离摄像机很近时,可以看到虚拟对象的细节会增加,即虚拟对象对应的细节层次模型的细节程度高。
相关技术中,通过多个材质参与图像渲染,以渲染出对应虚拟对象的细节层次模型。由于一个材质参与的渲染过程就是一次渲染接口调用(DC,DrawCall),因此这种方案会导致多个DrawCall,将浪费大量的计算资源以及通信资源,进而影响图像渲染的整体性能。
发明内容
本申请实施例提供一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够充分利用融合烘焙贴图,节约相关的计算资源以及通信资源。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种图像渲染方法,包括:
获取第一细节层次模型的多个材质信息,其中,每个所述材质信息包括至少一种贴图;
对每个所述材质信息包括的贴图进行图像烘焙处理,得到每个所述材质信息对应的烘焙贴图;
对至少部分所述材质信息分别对应的烘焙贴图进行融合处理,得到融合烘焙贴图;
基于所述融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型;
其中,所述第一细节层次模型的细节程度高于所述第二细节层次模型的细节程度。
本申请实施例提供一种图像渲染装置,包括:
获取模块,用于获取第一细节层次模型的多个材质信息,其中,每个所述材质信息包括至少一种贴图;
烘焙模块,用于对每个所述材质信息包括的贴图进行图像烘焙处理,得到每个所述材质信息对应的烘焙贴图;
融合模块,用于对至少部分所述材质信息分别对应的烘焙贴图进行融合处理,得到融合烘焙贴图;
渲染模块,用于基于所述融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型;其中,所述第一细节层次模型的细节程度高于所述第二细节层次模型的细节程度。
上述技术方案中,所述烘焙模块还用于针对每个所述材质信息包括的任一种贴图执行以下处理:
通过烘焙工具对所述贴图进行纹理空间映射处理,得到映射后的贴图;
对所述映射后的贴图进行材质参数调整处理,得到所述贴图对应的烘焙贴图;
将每个所述材质信息包括的贴图对应的烘焙贴图的集合,作为每个所述材质信息对应的烘焙贴图。
上述技术方案中,所述烘焙模块还用于确定所述第一细节层次模型包括的顶点色;
基于所述第一细节层次模型包括的顶点色对所述映射后的贴图进行参数调整处理,得到所述贴图对应的烘焙贴图;
其中,所述顶点色对应所述第一细节层次模型的材质属性。
上述技术方案中,所述烘焙模块还用于获取用于烘焙的配置参数;
基于所述用于烘焙的配置参数对所述映射后的贴图进行参数调整处理,得到所述贴图对应的烘焙贴图;
其中,所述配置参数包括以下至少之一:烘焙通道、烘焙分辨率。
上述技术方案中,所述融合模块还用于针对任一种烘焙贴图执行以下处理:
将至少部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图;
所述渲染模块还用于将至少一种所述烘焙贴图对应的融合烘焙贴图的集合,作为新的材质信息;
基于所述新的材质信息,对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。
上述技术方案中,所述融合模块还用于基于所述烘焙贴图,确定用于采样的二维纹理坐标集;
基于所述二维纹理坐标集对至少部分所述材质信息对应所述烘焙贴图进行采样处理,得到包括多个遮罩区域的采样图,其中,所述遮罩区域与所述材质信息对应;
基于所述包括多个遮罩区域的采样图对所述烘焙贴图进行贴图通道合并处理,得到所述烘焙贴图对应的融合烘焙贴图。
上述技术方案中,所述融合模块还用于将所有所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图。
上述技术方案中,所述融合模块还用于将部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图;
所述渲染模块还用于将至少一种所述烘焙贴图对应的融合烘焙贴图的集合,作为新的材质信息;
基于所述新的材质信息以及未进行合并的烘焙贴图对应的材质信息,对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。
上述技术方案中,所述将部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图之前,所述融合模块还用于显示所述多个材质信息分别对应的烘焙贴图;
响应于针对所述多个材质信息分别对应的烘焙贴图的选择操作,将选中的所述烘焙贴图作为部分所述材质信息分别对应的所述烘焙贴图。
上述技术方案中,所述将部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图之前,所述融合模块还用于基于所述多个材质信息的合并特征对所述多个材质信息进行筛选处理,得到用于合并的部分所述材质信息。
上述技术方案中,所述多个材质信息的合并特征包括所述材质信息之间的相似度;所述融合模块还用于对所述多个材质信息进行相似度处理,得到任意两个材质信息之间的相似度;
基于所述任意两个材质信息之间的相似度对所述多个材质信息进行降序排序处理,将降序排序结果中排序在前的所述材质信息作为部分所述材质信息。
上述技术方案中,所述多个材质信息的合并特征包括所述材质信息的细节程度;所述融合模块还用于确定所述多个材质信息分别对应所述第一细节层次模型的区域;
基于所述区域对应的细节程度,确定所述材质信息的细节程度;
基于所述多个材质信息的细节程度对所述多个材质信息进行升序排序处理,将升序排序结果中排序在前的所述材质信息作为部分所述材质信息。
本申请实施例提供一种用于图像渲染的电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的图像渲染方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的图像渲染方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现本申请实施例提供的图像渲染方法。
本申请实施例具有以下有益效果:
通过对至少部分材质信息分别对应的烘焙贴图进行融合,以得到融合烘焙贴图,并基于融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理,以充分利用融合烘焙贴图,减小渲染接口调用,从而节约渲染相关的计算资源以及通信资源,提高图像渲染的整体性能。
附图说明
图1A-图1B是本申请实施例提供的图像渲染方法的应用模式示意图;
图2是本申请实施例提供的用于图像渲染的电子设备的结构示意图;
图3A-图3C是本申请实施例提供的图像渲染方法的流程示意图;
图4是相关技术提供的引擎中不同级别的细节层次模型的示意图;
图5是本申请实施例提供的图像渲染方法的流程示意图;
图6是本申请实施例提供的烘焙过程中的配置设置示意图;
图7是本申请实施例提供的采样图(ID Map)示意图;
图8是本申请实施例提供的建筑模型的示意图;
图9是本申请实施例提供的烘焙后的贴图;
图10是本申请实施例提供的贴图合并后的合并结果;
图11是本申请实施例提供的渲染后的建筑模型;
图12是本申请实施例提供的渲染所需各通道信息及最终结果对比示意图;
图13是本申请实施例提供的材质示意图;
图14是本申请实施例提供的材质示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)响应于:用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
2)客户端:终端中运行的用于提供各种服务的应用程序,例如视频播放客户端、游戏客户端等。
3)虚拟场景:应用程序在终端上运行时显示(或提供)的虚拟场景。该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本申请实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行移动。
4)虚拟对象:虚拟场景中可以进行交互的各种人和物的形象,或在虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,例如在虚拟场景中显示的人物、动物等。该虚拟对象可以是虚拟场景中的一个虚拟的用于代表用户的虚拟形象。虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
5)场景数据:表示虚拟场景的特征数据,例如可以是虚拟场景中建造区域的面积、虚拟场景当前所处的建筑风格等;也可以包括虚拟建筑在虚拟场景中所处的位置、以及虚拟建筑的占地面积等。
6)图像烘焙:采用光照贴图技术烘焙物体,是一种增强场景光照效果的技术,通过较低的性能来使得场景看上去更加真实、丰富,以及更加有立体感。烘焙就是把高精度模型上的细节用贴图渲染出来,然后把渲染出来的贴图再贴到低精度模型上,让低精度模型看上去有高精度模型的细节。
7)多细节层次模型(LOD,Level Of Detail for Model):根据模型在3D环境中所处的位置和重要度,决定物体渲染的资源分配(如面数、着色器数量等),是一种优化渲染效率的技术。当虚拟场景中的虚拟对象离摄像机很远时,可以看到的细节量会大大减少,可以根据虚拟对象距离摄像机的距离来调整虚拟对象的细节量(即细节程度),也就是三角网格数,根据不同的距离开启相对应的不同精度的细节层次模型,以基于不同精度的细节层次模型(Lod)呈现虚拟场景中的虚拟对象。
8)图像处理器实例化(gpu instance):使用gpu instance可以一次渲染(render)相同网格的多个副本,仅使用少量描绘指令(DrawCalls),适用于渲染诸如建筑、树木、草等在场景中重复出现的物体。
9)渲染接口调用(DC,DrawCall):中央处理器(CPU,Central Processing Unit)调用图形编程接口(比如DirectX或OpenGL)命令图形处理器(GPU,Graphics ProcessingUnit)进行渲染的操作,用于衡量渲染性能。CPU通过图像编程接口向命令缓存区添加命令,而GPU通过缓存区获取命令处理。DrawCall是openGL的渲染次数,一个简单的openGL的绘图次序是:设置颜色→绘图方式→顶点坐标→绘制→结束。
10)图像渲染:将三维的光能传递处理转换为一个二维图像的过程。场景和物体用三维形式表示,更接近于现实世界,便于操纵和变换,而图像的显示设备大多是二维的光栅显示器和点阵化打印机。从三维场景的表示N维光栅和点阵化的表示就是图像渲染,即光栅化。光栅显示器可以看作是一个像素矩阵,在光栅显示器上显示的任何一个图像,实际上都是一些具有一种或多种颜色和灰度像素的集合。
本申请实施例提供一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够充分利用融合烘焙贴图,节约相关的计算资源以及通信资源。为便于更容易理解本申请实施例提供的图像渲染方法,首先说明本申请实施例提供的图像渲染方法的示例性实施场景,本申请实施例提供的图像渲染方法中的虚拟对象可以完全基于终端输出,或者基于终端和服务器协同输出。
在一些实施例中,虚拟场景可以是供游戏角色交互的环境,例如可以是供游戏角色在虚拟场景中进行对战,通过控制游戏角色的行动可以在虚拟场景中进行双方互动,从而使用户能够在游戏的过程中舒缓生活压力。
在一个实施场景中,参见图1A,图1A是本申请实施例提供的图像渲染方法的应用模式示意图,适用于一些完全依赖于终端400的图形处理硬件计算能力即可完成虚拟场景100的相关数据计算的应用模式,例如单机版/离线模式的游戏,通过智能手机、平板电脑和虚拟现实/增强现实设备等各种不同类型的终端400完成虚拟场景的输出。
作为示例,图形处理硬件的类型包括中央处理器(CPU,Central ProcessingUnit)和图形处理器(GPU,Graphics Processing Unit)。
当形成虚拟场景100的视觉感知时,终端400通过图形计算硬件计算显示所需要的数据,并完成显示数据的加载、解析和渲染,在图形输出硬件输出能够对虚拟场景形成视觉感知的视频帧,例如,在智能手机的显示屏幕呈现二维的视频帧,或者,在增强现实/虚拟现实眼镜的镜片上投射实现三维显示效果的视频帧;此外,为了丰富感知效果,终端400还可以借助不同的硬件来形成听觉感知、触觉感知、运动感知和味觉感知的一种或多种。
作为示例,终端400上运行有客户端410(例如单机版的游戏应用),在客户端410的运行过程中输出包括有角色扮演的虚拟场景,虚拟场景可以是供游戏角色交互的环境,例如可以是用于供游戏角色进行对战的平原、街道、山谷等等;以第一人称视角显示虚拟场景100为例,在虚拟场景100中位于摄像机的视野中的虚拟对象101,虚拟对象101可以是受用户(或称玩家)控制的游戏角色,即虚拟对象101受控于真实用户(敌方),将响应于真实用户针对按钮(包括摇杆按钮、攻击按钮、防御按钮等)的操作而在虚拟场景中操作,例如当真实用户向左移动摇杆按钮时,虚拟对象将在虚拟场景中向左部移动,还可以保持原地静止、跳跃以及使用各种功能(如技能和道具);虚拟对象101也可以是通过训练设置在虚拟场景对战中的人工智能(AI,Artificial Intelligence);虚拟对象101还可以是设置在虚拟场景互动中的非用户角色(NPC,Non-Player Character);虚拟对象101还可以是虚拟场景100中不可活动对象或者可活动对象。
举例来说,以第一人称视角的俯视视角显示虚拟场景100为例,在虚拟场景中显示摄像机的视野中的虚拟对象101,虚拟对象101是通过多个不同细节程度的细节层次模型显示的,例如,其中虚拟对象101的细节层次模型是通过以下方式快速获取:细节层次模型获取虚拟对象101的第一细节层次模型的多个材质信息,对至少部分材质信息分别对应的烘焙贴图进行融合,得到融合烘焙贴图,基于融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。在获得虚拟对象101的多个细节层次模型后,在虚拟场景中受控于玩家的虚拟对象进行俯冲,即摄像机进行俯冲,则摄像机的视野中的虚拟对象101距离摄像机越来越近,确定出与摄像机距离适配的细节层次模型,从而基于准确且适配的细节层次模型进行虚拟对象101的流畅切换,提高虚拟场景的人机交互的效果,也提高了用户的使用体验。
在另一个实施场景中,参见图1B,图1B是本申请实施例提供的图像渲染方法的应用模式示意图,应用于终端400和服务器200,适用于依赖于服务器200的计算能力完成虚拟场景计算、并在终端400输出虚拟场景的应用模式。
以形成虚拟场景100的视觉感知为例,服务器200进行虚拟场景相关显示数据(例如场景数据)的计算并通过网络300发送到终端400,终端400依赖于图形计算硬件完成计算显示数据的加载、解析和渲染,依赖于图形输出硬件输出虚拟场景以形成视觉感知,例如可以在智能手机的显示屏幕呈现二维的视频帧,或者,在增强现实/虚拟现实眼镜的镜片上投射实现三维显示效果的视频帧;对于虚拟场景的形式的感知而言,可以理解,可以借助于终端400的相应硬件输出,例如使用麦克风形成听觉感知,使用振动器形成触觉感知等等。
作为示例,终端400上运行有客户端410(例如网络版的游戏应用),通过连接服务器200(例如游戏服务器)与其他用户进行游戏互动,终端400输出客户端410的虚拟场景100,以第一人称视角显示虚拟场景100为例,在虚拟场景100中位于摄像机的视野中的虚拟对象101,虚拟对象101可以是受用户(或称玩家)控制的游戏角色,即虚拟对象101受控于真实用户(敌方),将响应于真实用户针对按钮(包括摇杆按钮、攻击按钮、防御按钮等)的操作而在虚拟场景中操作,例如当真实用户向左移动摇杆按钮时,虚拟对象将在虚拟场景中向左部移动,还可以保持原地静止、跳跃以及使用各种功能(如技能和道具);虚拟对象101也可以是通过训练设置在虚拟场景对战中的人工智能(AI,Artificial Intelligence);虚拟对象101还可以是设置在虚拟场景互动中的非用户角色(NPC,Non-Player Character);虚拟对象101还可以是虚拟场景100中不可活动对象或者可活动对象。
举例来说,以第一人称视角的俯视视角显示虚拟场景100为例,在虚拟场景中显示摄像机的视野中的虚拟对象101,虚拟对象101是通过多个不同细节程度的细节层次模型显示的,例如,其中虚拟对象101的细节层次模型是通过图像渲染方法快速获取:细节层次模型获取虚拟对象101的第一细节层次模型的多个材质信息,对至少部分材质信息分别对应的烘焙贴图进行融合,得到融合烘焙贴图,基于融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。在获得虚拟对象101的多个细节层次模型后,在虚拟场景中受控于玩家的虚拟对象进行俯冲,即摄像机进行俯冲,则摄像机的视野中的虚拟对象101距离摄像机越来越近,确定出与摄像机距离适配的细节层次模型,从而基于准确且适配的细节层次模型进行虚拟对象101的流畅切换,提高虚拟场景的人机交互的效果,也提高了用户的使用体验。
在一些实施例中,终端400可以通过运行计算机程序来实现本申请实施例提供的图像渲染方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,APPlication),即需要在操作系统中安装才能运行的程序,例如换装游戏APP(即上述的客户端410);也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的游戏小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
以计算机程序为应用程序为例,在实际实施时,终端400安装和运行有支持虚拟场景的应用程序。该应用程序可以是第一人称射击游戏(FPS,First-Person 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 Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器460旨在包括任意适合类型的存储器。
在一些实施例中,存储器460能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统461,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块462,用于经由一个或多个(有线或无线)网络接口430到达其他计算设备,示例性的网络接口430包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块463,用于经由一个或多个与用户接口440相关联的输出装置441(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块464,用于对一个或多个来自一个或多个输入装置442之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的图像渲染装置可以采用软件方式实现,图2示出了存储在存储器460中的图像渲染装置465,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块4651、烘焙模块4652、融合块4653以及渲染模块4654,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
在另一些实施例中,本申请实施例提供的图像渲染装置可以采用硬件方式实现,作为示例,本申请实施例提供的图像渲染装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的图像渲染方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
下面将结合附图对本申请实施例提供的图像渲染方法进行具体说明。本申请实施例提供的图像渲染方法可以由图1A中的终端400单独执行,也可以由图1B中的终端400和服务器200协同执行。
下面,以由图1A中的终端400单独执行本申请实施例提供的图像渲染方法为例进行说明。参见图3A,图3A是本申请实施例提供的图像渲染方法的流程示意图,将结合图3A示出的步骤进行说明。
需要说明的是,图3A示出的方法可以由终端400上运行的各种形式的计算机程序执行,并不局限于上述的客户端410,还可以是上文的操作系统461、软件模块和脚本,因此客户端不应视为对本申请实施例的限定。
在下面步骤中,第一细节层次模型的细节程度高于第二细节层次模型的细节程度。
在步骤101中,获取第一细节层次模型的多个材质信息,其中,每个材质信息包括至少一种贴图。
需要说明的是,在虚拟场景中,通过多个不同级别(细节程度)的细节层次模型呈现虚拟对象,当虚拟对象将距离虚拟场景中的摄像机比较近时,需要通过级别较低的细节层次模型进行呈现,例如第一细节层次模型(例如LOD0),当虚拟对象将距离虚拟场景中的摄像机比较远时,需要通过级别较高的细节层次模型进行呈现,例如第二细节层次模型(例如LOD1)。
为了能够快速获取更多级别的细节层次模型,将第一细节层次模型作为基础,并获取渲染第一细节层次模型所需的多个材质信息,其中,每个材质信息(由材质标识(ID,Identity Document)区分)包括至少一种贴图,例如某一材质信息包括漫反射(diffuse)贴图、法线(normal)贴图、RMA贴图(表示RBG通道分别存储的是粗糙度(roughness)、金属度(metallic)、环境遮挡(AO,Ambient Occlusion)信息))。
在步骤102中,对每个材质信息包括的贴图进行图像烘焙处理,得到每个材质信息对应的烘焙贴图。
例如,在基于材质信息包括的贴图进行图像渲染之前,需要对每个材质信息包括的贴图进行图像烘焙处理,以得到每个材质信息对应的烘焙贴图(即烘焙后的贴图),从而基于每个材质信息对应的烘焙贴图进行图像渲染,以得到比第一细节层次模型的级别更高的第二细节层次模型。
参见图3B,图3B是本申请实施例提供的图像渲染方法的一个可选的流程示意图,图3B示出图3A中的步骤102可以通过步骤1021-步骤1023实现:在步骤1021中,针对每个材质信息包括的任一种贴图执行以下处理:通过烘焙工具对贴图进行纹理空间映射处理,得到映射后的贴图;在步骤1022中,对映射后的贴图进行材质参数调整处理,得到贴图对应的烘焙贴图;在步骤1023中,将每个材质信息包括的贴图对应的烘焙贴图的集合,作为每个材质信息对应的烘焙贴图。
例如,针对每个材质信息包括的任一种贴图执行以下处理:通过虚幻引擎(UE4,Unreal Engine 4)中的Bake Out Materials函数将贴图输出到整张贴图,即映射到平展的二维纹理坐标集(UV Set),以得到映射后的贴图,并基于材质参数配置对映射后的贴图进行材质参数调整处理,得到贴图对应的烘焙贴图,将每个材质信息包括的贴图对应的烘焙贴图的集合,作为每个材质信息对应的烘焙贴图。如图9所示,贴图901、贴图902、贴图903为烘焙后的贴图。
需要说明的是,针对每个材质信息包括的任一种贴图执行以下处理:通过烘焙工具对贴图进行材质参数调整处理,得到贴图对应的烘焙贴图,对贴图对应的烘焙贴图进行纹理空间映射处理,得到贴图对应的映射贴图(映射后的贴图),将每个材质信息包括的贴图对应的映射贴图的集合,作为每个材质信息对应的烘焙贴图。
在一些实施例中,对映射后的贴图进行材质参数调整处理,得到贴图对应的烘焙贴图,包括:确定第一细节层次模型包括的顶点色;基于第一细节层次模型包括的顶点色对映射后的贴图进行参数调整处理,得到贴图对应的烘焙贴图;其中,顶点色对应第一细节层次模型的材质属性。
例如,获取材质参数的配置信息,当配置信息中的Use Mesh Data开关开启,表明第一细节层次模型的顶点色参与烘焙计算,其中,顶点色参与细节层次模型的材质属性计算,如颜色、金属度等属性,基于第一细节层次模型包括的顶点色对映射后的贴图进行参数调整处理,烘焙出的贴图可以反馈颜色、金属度等影响后的烘焙结果,从而体现出细节层次模型的颜色、金属度等影响。
在一些实施例中,对映射后的贴图进行材质参数调整处理,得到贴图对应的烘焙贴图,包括:获取用于烘焙的配置参数;基于用于烘焙的配置参数对映射后的贴图进行参数调整处理,得到贴图对应的烘焙贴图;其中,配置参数包括以下至少之一:烘焙通道、烘焙分辨率。
例如,获取材质参数的配置信息,并基于配置信息中的用于烘焙的配置参数对映射后的贴图进行参数调整处理,例如用于烘焙的配置参数包括需要烘焙的通道(烘焙通道)及输出贴图的分辨率(烘焙分辨率),例如设置贴图分辨率(例如512、1024等),即输出的烘焙贴图的分辨率为512、1024等,其中,分辨率可以直接影响烘焙贴图的质量。
在步骤103中,对至少部分材质信息分别对应的烘焙贴图进行融合处理,得到融合烘焙贴图。
例如,在获取每个材质信息对应的烘焙贴图(即烘焙后的贴图)之后,对至少部分材质信息分别对应的烘焙贴图进行融合处理,得到融合烘焙贴图,从而基于融合烘焙贴图进行图像渲染,以得到比第一细节层次模型的级别更高的第二细节层次模型,从而基于较少的贴图进行图像渲染,减小渲染接口调用,从而节约渲染相关的计算资源以及通信资源,提高图像渲染的整体性能。
在步骤104中,基于融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。
例如,在获取融合烘焙贴图(即融合后的烘焙贴图)之后,基于融合烘焙贴图进行图像渲染,以得到比第一细节层次模型的级别更高的第二细节层次模型,从而基于较少的贴图进行图像渲染,减小渲染接口调用,从而节约渲染相关的计算资源以及通信资源,提高图像渲染的整体性能。
需要说明的是,基于融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理为一次渲染接口调用,而基于多个材质信息包括的烘焙贴图分别对待渲染的第二细节层次模型进行图像渲染处理为多次渲染接口调用,例如第一细节层次模型包括三个材质信息,则需要三次渲染接口调用,从而增加渲染接口调用,降低了图像渲染的整体性能。
参见图3C,图3C是本申请实施例提供的图像渲染方法的一个可选的流程示意图,图3C示出图3A中的步骤103可以通过步骤1031实现:在步骤1031中,针对任一种烘焙贴图执行以下处理:将至少部分材质信息分别对应烘焙贴图进行合并处理,得到烘焙贴图对应的融合烘焙贴图;图3C示出图3A中的步骤104可以通过步骤1041-步骤1042实现:在步骤1041中,将至少一种烘焙贴图对应的融合烘焙贴图的集合,作为新的材质信息;在步骤1042中,基于新的材质信息,对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。
例如,针对多个材质信息中的任一种烘焙贴图(例如diffuse贴图),例如第一细节层次模型包括三个材质信息,则具有如图9所示的三张diffuse贴图,合并这三张diffuse贴图,会得到如图10所示的合并结果(即diffuse贴图对应的融合烘焙贴图),最后将合并结果作为最终的diffuse贴图,将至少一种烘焙贴图对应的融合烘焙贴图的集合,作为新的材质信息,即将至少部分材质信息合并为一个新的材质信息,从而基于新的材质信息对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型,从而基于较少的材质信息进行图像渲染,减小渲染接口调用,从而节约渲染相关的计算资源以及通信资源,提高图像渲染的整体性能。
在一些实施例中,将至少部分材质信息分别对应烘焙贴图进行合并处理,得到烘焙贴图对应的融合烘焙贴图,包括:基于烘焙贴图,确定用于采样的二维纹理坐标集;基于二维纹理坐标集对至少部分材质信息对应烘焙贴图进行采样处理,得到包括多个遮罩区域的采样图,其中,遮罩区域与材质信息对应;基于包括多个遮罩区域的采样图对烘焙贴图进行贴图通道合并处理,得到烘焙贴图对应的融合烘焙贴图。
例如,烘焙过程还会将烘焙贴图映射到一个完全展开的初始的二维纹理坐标集(UV Set),以得到用于采样的二维纹理坐标集,其中,一个模型或顶点可以同时有多套UVSet,UV Set之间互不影响,本申请实施例中完全展开的UV Set表示第2套二维纹理坐标(UV)。基于二维纹理坐标集对至少部分材质信息对应烘焙贴图进行采样处理,得到包括多个遮罩区域的采样图(ID Map),其中,遮罩区域与材质信息对应,例如,遮罩区域通过不同颜色进行区分,则一个颜色的遮罩区域对应一个材质信息。通过烘焙ID Map的工具结合包括多个遮罩区域的采样图对烘焙贴图进行贴图通道合并,得到烘焙贴图对应的融合烘焙贴图,即将不同的材质信息的烘焙贴图用不同颜色区分,并存在贴图颜色通道中,单独抠取某个颜色对应的遮罩区域即可提取该材质信息在第二套UV中的遮罩区域,并基于抠取的遮罩区域进行合并,以得到烘焙贴图对应的融合烘焙贴图。
在一些实施例中,将至少部分材质信息分别对应烘焙贴图进行合并处理,得到烘焙贴图对应的融合烘焙贴图,包括:将所有材质信息分别对应烘焙贴图进行合并处理,得到烘焙贴图对应的融合烘焙贴图。
例如,为了尽可能减少渲染接口调用,将所有材质信息分别对应烘焙贴图进行合并处理,即将所有材质信息合并为一个新的材质信息,从而基于一个新的材质信息包括的贴图进行渲染,使得整体的采样数量减小,渲染效率得以提高。
作为示例,第一细节层次模型具有三个材质信息,将三个材质信息合并成一个新的材质信息,并基于一个新的材质信息包括的贴图进行渲染,得到如图11所示的建筑模型1101,建筑模型1101是通过一个材质信息1102渲染得来的。
在一些实施例中,将至少部分材质信息分别对应烘焙贴图进行合并处理,得到烘焙贴图对应的融合烘焙贴图,包括:将部分材质信息分别对应烘焙贴图进行合并处理,得到烘焙贴图对应的融合烘焙贴图;基于融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型,包括:将至少一种烘焙贴图对应的融合烘焙贴图的集合,作为新的材质信息;基于新的材质信息以及未进行合并的烘焙贴图对应的材质信息,对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。
例如,考虑到有些材质信息包括的贴图的区别较大,本申请实施例可以合并部分材质信息分别对应烘焙贴图进行合并处理,得到烘焙贴图对应的融合烘焙贴图,并将至少一种烘焙贴图对应的融合烘焙贴图的集合,作为新的材质信息,从而基于新的材质信息以及未进行合并的烘焙贴图对应的材质信息,对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。通过保留部分材质信息,以减小第二细节层次模型与第一细节层次模型的区别,从而在保证远距离高品质渲染效果的同时,优化远景渲染逻辑且达到LOD间平滑过渡,提高场景渲染的整体性能。
作为示例,第一细节层次模型包括三个材质信息(例如材质1、材质2、材质3),每个材质信息需要三张贴图(例如漫反射(diffuse)贴图、法线(normal)贴图、RMA)。将材质1和材质2进行合并,得到新的材质信息(包括diffuse贴图、normal贴图、RMA),基于新的材质信息(包括diffuse贴图、normal贴图、RMA)以及材质信息3(包括diffuse贴图、normal贴图、RMA),对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。
在一些实施例中,将部分材质信息分别对应烘焙贴图进行合并处理,得到烘焙贴图对应的融合烘焙贴图之前,显示多个材质信息分别对应的烘焙贴图;响应于针对多个材质信息分别对应的烘焙贴图的选择操作,将选中的烘焙贴图作为部分材质信息分别对应的烘焙贴图。
例如,显示多个材质信息分别对应的烘焙贴图,通过手动选择部分材质信息分别对应的烘焙贴图进行合并,基于新的材质信息以及未进行合并的烘焙贴图对应的材质信息,对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。从而根据用户的喜好合并部分材质信息,减小渲染接口调用,提高场景渲染的整体性能。
在一些实施例中,将部分材质信息分别对应烘焙贴图进行合并处理,得到烘焙贴图对应的融合烘焙贴图之前,基于多个材质信息的合并特征对多个材质信息进行筛选处理,得到用于合并的部分材质信息。
例如,在获得烘焙贴图之后,结合多个材质信息的合并特征,从多个材质信息中自动选择用于合并的部分材质信息,从而实现全自动的图像渲染,提高场景渲染的整体性能。
在一些实施例中,多个材质信息的合并特征包括材质信息之间的相似度;基于多个材质信息的合并特征对多个材质信息进行筛选处理,得到用于合并的部分材质信息,包括:对多个材质信息进行相似度处理,得到任意两个材质信息之间的相似度;基于任意两个材质信息之间的相似度对多个材质信息进行降序排序处理,将降序排序结果中排序在前的材质信息作为部分材质信息。
例如,对多个材质信息(包括至少一种贴图)进行相似度处理,得到任意两个材质信息之间的相似度,例如针对任意两个材质信息包括的烘焙贴图进行相似度计算,将计算出的相似度作为任意两个材质信息之间的相似度,基于任意两个材质信息之间的相似度对烘焙贴图进行降序排序处理,将降序排序结果中排序在前的材质信息作为部分材质信息。因此,将较为相似的材质信息进行合并,从而减小第二细节层次模型与第一细节层次模型的区别,在保证远距离高品质渲染效果的同时,优化远景渲染逻辑且达到LOD间平滑过渡,提高场景渲染的整体性能。
在一些实施例中,多个材质信息的合并特征包括材质信息的细节程度;基于多个材质信息的合并特征对多个材质信息进行筛选处理,得到用于合并的部分材质信息,包括:确定多个材质信息分别对应第一细节层次模型的区域;基于区域对应的细节程度,确定材质信息的细节程度;基于多个材质信息的细节程度对多个材质信息进行升序排序处理,将升序排序结果中排序在前的材质信息作为部分材质信息。
例如,确定多个材质信息分别对应第一细节层次模型的区域,将区域对应的细节程度,作为材质信息的细节程度,基于多个材质信息的细节程度对多个材质信息进行升序排序处理,将升序排序结果中排序在前的材质信息作为部分材质信息。因此,将细节程度较低的材质信息进行合并,从而避免忽略减小第二细节层次模型的细节,在保证远距离高品质渲染效果的同时,优化远景渲染逻辑且达到LOD间平滑过渡,提高场景渲染的整体性能。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例可以应用于具有多细节层次模型(LOD,Level Of Detail forModel)的游戏,根据模型在3D环境中所处的位置和重要度,决定物体渲染的资源分配(如面数、着色器数量等)。例如当虚拟场景中的虚拟对象离摄像机很远时,可以看到的模型细节量会大大减少,可以根据虚拟对象距离摄像机的距离来调整虚拟对象的细节量(即细节程度),根据不同的距离开启相对应的不同细节程度的细节层次模型,以基于不同精度的细节层次模型呈现虚拟场景中的虚拟对象。
下面以虚拟场景为游戏为例进行说明:
相关技术中,应用较广的模型渲染优化方案就是使用LOD来做模型的面数分级。这种方案是近景使用的LOD0模型面数高,远景使用的LOD1模型面数低。对于简单模型来说可以达到优化需求,即不同LOD使用着色器数量相同的模型。
但建筑模型的效果较为复杂,如果需要让不同模型部分可替换不同的贴图或贴图混合,需要将建筑模型的面分配到不同的材质标识(ID,Identity Document)上,对应不同的着色器。如图4所示,贴图混合时还会使用蒙版贴图或顶点色做区域区分,引擎中对LOD级别的选择,LOD级别越高,面数越低,例如LOD0具有1498个模型面片,LOD1具有771个模型面片,LOD2具有28个模型面片。
对于多贴图混合渲染的建筑模型,为了满足LOD0的效果需要多个材质ID,且每个材质ID需要多张颜色贴图采样混合来达到最终渲染目的。这种技术方案会导致LOD1及以上级别也需要使用多个材质ID以保持效果一致,这样会导致渲染过程有多个DrawCall,从而给整个场景渲染带来较大的性能负荷。其中,模型的一个材质参与的渲染过程就是一个DrawCall。
为了解决上述问题,本申请实施例提供了一种用一个DrawCall渲染建筑LOD1模型的方法,达到和使用多个可变贴图混合、多个DrawCall渲染LOD0模型在视觉上近乎一样的渲染效果。将多个材质减少到了一个材质,从贴图烘焙到材质渲染的全流程,可以在保证近距离高品质渲染效果的同时,优化远景渲染逻辑且达到LOD间平滑过渡,降低场景渲染的整体性能。
如图5所示,本申请实施例用一个DrawCall渲染建筑LOD1模型的方法的流程包括LOD0的材质(每个材质使用多个颜色贴图采样)效果调整、烘焙最终渲染信息的贴图、根据平展的二维纹理坐标集(UV Set)合并贴图、使用新的材质制作非LOD0的材质示例。需要说明的是,二维纹理坐标(UV)包括多边形网格的顶点信息,下面将结合数字内容制作(DCC,Digital Content Creation)工具和引擎实际使用详细介绍整体技术方案。
1)关于烘焙
烘焙过程在虚幻引擎(UE4,Unreal Engine 4)中进行,通过UE4中的Bake OutMaterials函数完成,此函数可以将每个材质ID最终的渲染结果输出到整张贴图(即烘焙出经过材质计算和顶点色混合后的最终效果),包括颜色贴图、法线贴图、粗糙度金属度等的混合贴图。
烘焙过程中的配置设置如图6所示,其中LODs(601)表示参与烘焙的模型质量等级,Use Mesh Data开关602用于确保模型顶点色等信息参与烘焙计算,顶点色参与模型的材质属性计算,如颜色、金属度等属性,烘焙出的贴图可以反馈影响后的结果;MaterialProperties用于设置需要烘焙的通道及输出贴图分辨率,例如设置贴图分辨率(例如512、1024等),分辨率可以直接影响贴图质量。
2)关于合并贴图
烘焙完成后可以在模型同目录下找到输出文件,输出文件包括每个材质ID的渲染结果贴图及引擎自动生成的预览材质实例。此外,烘焙过程还会将纹理最终计算结果映射到一个完全展开的UV Set(一个模型/顶点可以同时有多套UV集合,它们互不影响)中,其中完全展开的UV Set被美术人员指认为模型的第2套UV。
贴图合并过程在PhotoShop工具中进行,将上述烘焙后的贴图导出到PS中,并基于ID Map(一张贴图,其中不同颜色的区域表示模型UV对应的这部分区域使用了不同的材质)进行图层混合。此处为了方便美术人员根据材质ID合并贴图,使用了基于Maya Python API开发的ID Bake(烘焙ID Map的工具)工具烘焙ID Map,如图7所示,将不同的材质ID存在颜色通道里,单独提取某通道即可提取该材质ID的UV遮罩(Mask)区域,区域701对应一个材质,区域702对应另一个材质。
以建筑模型为例,如图8所示,构成建筑模型包括三个材质,用三种颜色来区分这个三个材质,例如屋檐对应材质801、墙体表面对应材质802、墙体内部对应材质803。在引擎里进行渲染,原本每个材质需要三张贴图(例如漫反射(diffuse)贴图、法线(normal)贴图、RMA(表示RBG通道分别存储的是粗糙度(roughness)、金属度(metallic)、环境遮挡(AO,Ambient Occlusion)信息))。本申请的优化方案就是在引擎里烘焙出根据第二套UV采样的贴图。
例如,针对diffuse贴图进行烘焙,原本三个材质对应的三张diffuse贴图变成如图9所示的三张diffuse贴图(diffuse贴图901、diffuse贴图902、diffuse贴图903),但这个烘焙过程不仅仅只是UV空间的变化,还包括材质里一些参数计算,例如乘某个颜色、乘顶点色,对最终diffuse渲染输入产生影响。将图9所示的三张diffuse贴图,根据ID Map进行合并,会得到如图10所示的合并结果,最后将合并结果作为最终的diffuse贴图(将不同的材质ID用不同颜色区分,并存在贴图颜色通道中,单独抠取某个颜色对应的遮罩区域即可提取该材质ID在第二套UV中的遮罩区域,并基于抠取的遮罩区域进行合并)。法线和其他贴图也是同理,就能够把三个材质的三个贴图合并成一个材质的三个贴图,最后基于一个材质的三个贴图进行渲染,得到如图11所示的建筑模型1101,从而整体的采样数量减小,渲染效率就能提高。
3)关于材质渲染
在引擎中制作一个针对远距离LOD的建筑专用母材质,只是用基础的基于物理的渲染材质(PBR,Physically Based Rendering),渲染过程采样了颜色贴图、法线贴图及粗糙度金属度混合贴图。材质实例中配置合并后的贴图,即可还原LOD0的渲染效果。
渲染所需各通道信息及最终结果对比如图12所示,最终LOD1的渲染结果,除贴图精度导致整体效果微模糊外,颜色及法线信息都可以与LOD0匹配,并完成LOD级别切换时的平滑过渡。
综上,如图13所示,远距离LOD模型的渲染需要三个材质,即LOD0需要三个材质ID(材质1301、材质1302、材质1303)完成渲染,共三个DrawCall,如图14所示,本申请实施例将远距离LOD模型的渲染所需DrawCall从三个降为一个(将三个材质合并为一个材质1401),即LOD1需要一个材质ID完成渲染,共一个DrawCall,其中,每个DrawCall的贴图采样数量也优化到了所需的最低数量。因此,本申请实施例在保留了高品质渲染结果的同时降低了场景整体的性能,提高了游戏运行效率,尤其适用于手游。
至此已经结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的图像渲染方法,下面继续说明本申请实施例提供的图像渲染装置465中各个模块配合实现图像渲染方案。
获取模块4651,用于获取第一细节层次模型的多个材质信息,其中,每个所述材质信息包括至少一种贴图;烘焙模块4652,用于对每个所述材质信息包括的贴图进行图像烘焙处理,得到每个所述材质信息对应的烘焙贴图;融合模块4653,用于对至少部分所述材质信息分别对应的烘焙贴图进行融合处理,得到融合烘焙贴图;渲染模块4654,用于基于所述融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型;其中,所述第一细节层次模型的细节程度高于所述第二细节层次模型的细节程度。
在一些实施例中,所述烘焙模块4652还用于针对每个所述材质信息包括的任一种贴图执行以下处理:通过烘焙工具对所述贴图进行纹理空间映射处理,得到映射后的贴图;对所述映射后的贴图进行材质参数调整处理,得到所述贴图对应的烘焙贴图;将每个所述材质信息包括的贴图对应的烘焙贴图的集合,作为每个所述材质信息对应的烘焙贴图。
在一些实施例中,所述烘焙模块4652还用于确定所述第一细节层次模型包括的顶点色;基于所述第一细节层次模型包括的顶点色对所述映射后的贴图进行参数调整处理,得到所述贴图对应的烘焙贴图;其中,所述顶点色对应所述第一细节层次模型的材质属性。
在一些实施例中,所述烘焙模块4652还用于获取用于烘焙的配置参数;基于所述用于烘焙的配置参数对所述映射后的贴图进行参数调整处理,得到所述贴图对应的烘焙贴图;其中,所述配置参数包括以下至少之一:烘焙通道、烘焙分辨率。
在一些实施例中,所述融合模块4653还用于针对任一种烘焙贴图执行以下处理:将至少部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图;所述渲染模块4654还用于将至少一种所述烘焙贴图对应的融合烘焙贴图的集合,作为新的材质信息;基于所述新的材质信息,对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。
在一些实施例中,所述融合模块4653还用于基于所述烘焙贴图,确定用于采样的二维纹理坐标集;基于所述二维纹理坐标集对至少部分所述材质信息对应所述烘焙贴图进行采样处理,得到包括多个遮罩区域的采样图,其中,所述遮罩区域与所述材质信息对应;基于所述包括多个遮罩区域的采样图对所述烘焙贴图进行贴图通道合并处理,得到所述烘焙贴图对应的融合烘焙贴图。
在一些实施例中,所述融合模块4653还用于将所有所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图。
在一些实施例中,所述融合模块4653还用于将部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图;所述渲染模块4654还用于将至少一种所述烘焙贴图对应的融合烘焙贴图的集合,作为新的材质信息;基于所述新的材质信息以及未进行合并的烘焙贴图对应的材质信息,对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。
在一些实施例中,所述将部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图之前,所述融合模块4653还用于显示所述多个材质信息分别对应的烘焙贴图;响应于针对所述多个材质信息分别对应的烘焙贴图的选择操作,将选中的所述烘焙贴图作为部分所述材质信息分别对应的所述烘焙贴图。
在一些实施例中,所述将部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图之前,所述融合模块4653还用于基于所述多个材质信息的合并特征对所述多个材质信息进行筛选处理,得到用于合并的部分所述材质信息。
在一些实施例中,所述多个材质信息的合并特征包括所述材质信息之间的相似度;所述融合模块4653还用于对所述多个材质信息进行相似度处理,得到任意两个材质信息之间的相似度;基于所述任意两个材质信息之间的相似度对所述多个材质信息进行降序排序处理,将降序排序结果中排序在前的所述材质信息作为部分所述材质信息。
在一些实施例中,所述多个材质信息的合并特征包括所述材质信息的细节程度;所述融合模块4653还用于确定所述多个材质信息分别对应所述第一细节层次模型的区域;基于所述区域对应的细节程度,确定所述材质信息的细节程度;基于所述多个材质信息的细节程度对所述多个材质信息进行升序排序处理,将升序排序结果中排序在前的所述材质信息作为部分所述材质信息。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的图像渲染方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的图像渲染方法,例如,如图3A-图3C示出的图像渲染方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (16)
1.一种图像渲染方法,其特征在于,所述方法包括:
获取第一细节层次模型的多个材质信息,其中,每个所述材质信息包括至少一种贴图;
对每个所述材质信息包括的贴图进行图像烘焙处理,得到每个所述材质信息对应的烘焙贴图;
对至少部分所述材质信息分别对应的烘焙贴图进行融合处理,得到融合烘焙贴图;
基于所述融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型;
其中,所述第一细节层次模型的细节程度高于所述第二细节层次模型的细节程度。
2.根据权利要求1所述的方法,其特征在于,所述对每个所述材质信息包括的贴图进行图像烘焙处理,得到每个所述材质信息对应的烘焙贴图,包括:
针对每个所述材质信息包括的任一种贴图执行以下处理:
通过烘焙工具对所述贴图进行纹理空间映射处理,得到映射后的贴图;
对所述映射后的贴图进行材质参数调整处理,得到所述贴图对应的烘焙贴图;
将每个所述材质信息包括的贴图对应的烘焙贴图的集合,作为每个所述材质信息对应的烘焙贴图。
3.根据权利要求2所述的方法,其特征在于,所述对所述映射后的贴图进行材质参数调整处理,得到所述贴图对应的烘焙贴图,包括:
确定所述第一细节层次模型包括的顶点色;
基于所述第一细节层次模型包括的顶点色对所述映射后的贴图进行参数调整处理,得到所述贴图对应的烘焙贴图;
其中,所述顶点色对应所述第一细节层次模型的材质属性。
4.根据权利要求2所述的方法,其特征在于,所述对所述映射后的贴图进行材质参数调整处理,得到所述贴图对应的烘焙贴图,包括:
获取用于烘焙的配置参数;
基于所述用于烘焙的配置参数对所述映射后的贴图进行参数调整处理,得到所述贴图对应的烘焙贴图;
其中,所述配置参数包括以下至少之一:烘焙通道、烘焙分辨率。
5.根据权利要求1所述的方法,其特征在于,
所述对至少部分所述材质信息分别对应的烘焙贴图进行融合处理,得到融合烘焙贴图,包括:
针对任一种烘焙贴图执行以下处理:
将至少部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图;
所述基于所述融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型,包括:
将至少一种所述烘焙贴图对应的融合烘焙贴图的集合,作为新的材质信息;
基于所述新的材质信息,对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。
6.根据权利要求5所述的方法,其特征在于,所述将至少部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图,包括:
基于所述烘焙贴图,确定用于采样的二维纹理坐标集;
基于所述二维纹理坐标集对至少部分所述材质信息对应所述烘焙贴图进行采样处理,得到包括多个遮罩区域的采样图,其中,所述遮罩区域与所述材质信息对应;
基于所述包括多个遮罩区域的采样图对所述烘焙贴图进行贴图通道合并处理,得到所述烘焙贴图对应的融合烘焙贴图。
7.根据权利要求5所述的方法,其特征在于,所述将至少部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图,包括:
将所有所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图。
8.根据权利要求5所述的方法,其特征在于,
所述将至少部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图,包括:
将部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图;
所述基于所述融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型,包括:
将至少一种所述烘焙贴图对应的融合烘焙贴图的集合,作为新的材质信息;
基于所述新的材质信息以及未进行合并的烘焙贴图对应的材质信息,对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型。
9.根据权利要求8所述的方法,其特征在于,所述将部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图之前,所述方法还包括:
显示所述多个材质信息分别对应的烘焙贴图;
响应于针对所述多个材质信息分别对应的烘焙贴图的选择操作,将选中的所述烘焙贴图作为部分所述材质信息分别对应的所述烘焙贴图。
10.根据权利要求8所述的方法,其特征在于,所述将部分所述材质信息分别对应所述烘焙贴图进行合并处理,得到所述烘焙贴图对应的融合烘焙贴图之前,所述方法还包括:
基于所述多个材质信息的合并特征对所述多个材质信息进行筛选处理,得到用于合并的部分所述材质信息。
11.根据权利要求10所述的方法,其特征在于,
所述多个材质信息的合并特征包括所述材质信息之间的相似度;
所述基于所述多个材质信息的合并特征对所述多个材质信息进行筛选处理,得到用于合并的部分所述材质信息,包括:
对所述多个材质信息进行相似度处理,得到任意两个材质信息之间的相似度;
基于所述任意两个材质信息之间的相似度对所述多个材质信息进行降序排序处理,将降序排序结果中排序在前的所述材质信息作为部分所述材质信息。
12.根据权利要求10所述的方法,其特征在于,
所述多个材质信息的合并特征包括所述材质信息的细节程度;
所述基于所述多个材质信息的合并特征对所述多个材质信息进行筛选处理,得到用于合并的部分所述材质信息,包括:
确定所述多个材质信息分别对应所述第一细节层次模型的区域;
基于所述区域对应的细节程度,确定所述材质信息的细节程度;
基于所述多个材质信息的细节程度对所述多个材质信息进行升序排序处理,将升序排序结果中排序在前的所述材质信息作为部分所述材质信息。
13.一种图像渲染装置,其特征在于,所述装置包括:
获取模块,用于获取第一细节层次模型的多个材质信息,其中,每个所述材质信息包括至少一种贴图;
烘焙模块,用于对每个所述材质信息包括的贴图进行图像烘焙处理,得到每个所述材质信息对应的烘焙贴图;
融合模块,用于对至少部分所述材质信息分别对应的烘焙贴图进行融合处理,得到融合烘焙贴图;
渲染模块,用于基于所述融合烘焙贴图对待渲染的第二细节层次模型进行图像渲染处理,得到渲染后的第二细节层次模型;其中,所述第一细节层次模型的细节程度高于所述第二细节层次模型的细节程度。
14.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至12任一项所述的图像渲染方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时实现权利要求1至12任一项所述的图像渲染方法。
16.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现权利要求1至12任一项所述的图像渲染方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021114532850 | 2021-12-01 | ||
CN202111453285 | 2021-12-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114359458A true CN114359458A (zh) | 2022-04-15 |
Family
ID=81105739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111661012.5A Pending CN114359458A (zh) | 2021-12-01 | 2021-12-31 | 一种图像渲染方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114359458A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115294251A (zh) * | 2022-06-13 | 2022-11-04 | 无人智境(北京)技术有限公司 | 一种海量集装箱批量渲染方法和设备 |
CN117437372A (zh) * | 2023-12-20 | 2024-01-23 | 中国电子科技集团公司第十五研究所 | 塔台模拟用三维视景地形图处理方法、服务器及存储介质 |
-
2021
- 2021-12-31 CN CN202111661012.5A patent/CN114359458A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115294251A (zh) * | 2022-06-13 | 2022-11-04 | 无人智境(北京)技术有限公司 | 一种海量集装箱批量渲染方法和设备 |
CN117437372A (zh) * | 2023-12-20 | 2024-01-23 | 中国电子科技集团公司第十五研究所 | 塔台模拟用三维视景地形图处理方法、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4394713A1 (en) | Image rendering method and apparatus, electronic device, computer-readable storage medium, and computer program product | |
CN114067042A (zh) | 一种图像渲染方法、装置、设备、存储介质及程序产品 | |
JP7050883B2 (ja) | 中心窩レンダリングシステムにおける、遅延ライティングの最適化、パーティクルの中心窩適応、及びシミュレーションモデル | |
CN114359458A (zh) | 一种图像渲染方法、装置、设备、存储介质及程序产品 | |
US20230405452A1 (en) | Method for controlling game display, non-transitory computer-readable storage medium and electronic device | |
CN112843704B (zh) | 动画模型处理方法、装置、设备及存储介质 | |
CN113230659B (zh) | 一种游戏的显示控制方法及装置 | |
CN115082608B (zh) | 虚拟角色服装渲染方法、装置、电子设备和存储介质 | |
CN114119818A (zh) | 场景模型的渲染方法、装置及设备 | |
CN112669194B (zh) | 虚拟场景中的动画处理方法、装置、设备及存储介质 | |
CN115082607B (zh) | 虚拟角色头发渲染方法、装置、电子设备和存储介质 | |
CN116958344A (zh) | 虚拟形象的动画生成方法、装置、计算机设备及存储介质 | |
CN117101127A (zh) | 虚拟场景中的图像渲染方法、装置、电子设备及存储介质 | |
WO2023202254A1 (zh) | 图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN114219924B (zh) | 虚拟场景的适配显示方法、装置、设备、介质及程序产品 | |
CN117635891A (zh) | 虚拟场景中的模型展示方法、装置、设备及存储介质 | |
CN113313796B (zh) | 场景生成方法、装置、计算机设备和存储介质 | |
CN115761105A (zh) | 光照渲染方法、装置、电子设备及存储介质 | |
CN114399580A (zh) | 一种图像渲染方法、装置、设备、存储介质及程序产品 | |
CN111744196B (zh) | 一种游戏任务中的任务目标引导方法及装置 | |
CN113192173A (zh) | 三维场景的图像处理方法、装置及电子设备 | |
WO2023165198A1 (zh) | 图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN112473135A (zh) | 移动游戏的实时光照模拟方法、装置、设备及存储介质 | |
Zhu et al. | Integrated Co-Designing Using Building Information Modeling and Mixed Reality with Erased Backgrounds for Stock Renovation | |
GB2432500A (en) | Image generation using vertex and pixel processing sections |
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 |