CN114943795A - 模型的渲染方法、装置、电子设备及存储介质 - Google Patents
模型的渲染方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114943795A CN114943795A CN202210451372.0A CN202210451372A CN114943795A CN 114943795 A CN114943795 A CN 114943795A CN 202210451372 A CN202210451372 A CN 202210451372A CN 114943795 A CN114943795 A CN 114943795A
- Authority
- CN
- China
- Prior art keywords
- target model
- model
- virtual scene
- illumination
- target
- 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/50—Lighting effects
-
- 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
技术领域
本公开涉及计算机动画技术领域,尤其涉及一种模型的渲染方法、装置、电子设备及存储介质。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在计算机动画领域,对于一个虚拟场景,从零开始进行渲染可能将花费大量的时间,为了降低时间成本和延时,一般的,以光照效果为例,可以对场景中的模型的光照效果进行预先计算-即烘焙,具体的,将该场景中的模型的光照信息预先制作成光照贴图并存储,在加载该场景时,根据光照贴图对于场景中的模型进行渲染,在这种情况下,因为场景中的模型的颜色不需要重新计算,整个场景的渲染将会加快。
然而,单个场景能承载的模型的数量有上限,单次烘焙的模型的数量也有上限,因此,在针对较大的场景时,现有的基于烘焙的模型渲染方案,不能满足需求。
发明内容
有鉴于此,本公开的目的在于提出一种模型的渲染方法、装置、电子设备及存储介质。
基于上述目的,本公开示例性实施例提供了一种模型的渲染方法,包括:
构建包含目标模型组的第一虚拟场景;其中,所述目标模型组中包括至少一个目标模型;
根据所述目标模型在所述第一虚拟场景中的光照信息,生成所述目标模型的光照贴图;
响应于确定在第二虚拟场景中加载所述目标模型组,根据所述光照贴图对所述目标模型进行渲染。
在一些示例性实施例中,所述根据所述目标模型在所述第一虚拟场景中的光照信息,生成所述目标模型的光照贴图,包括:
根据所述目标模型和所述第一虚拟场景中的光源的位置关系,确定所述光照信息;
根据所述光照信息生成所述光照贴图。
在一些示例性实施例中,所述根据所述目标模型和所述第一虚拟场景中的光源的位置关系,确定所述光照信息,包括:
对所述目标模型进行细分,得到细分后的目标模型,根据所述细分后的目标模型的顶点和所述第一虚拟场景中的光源的位置关系,确定所述光照信息。
在一些示例性实施例中,所述对所述目标模型进行细分,得到细分后的目标模型,包括:
对于所述目标模型的三角面,确定该三角面的中心点,并将所述中心点分别与该三角面的顶点相连,得到所述细分后的目标模型。
在一些示例性实施例中,所述响应于确定在第二虚拟场景中加载所述目标模型组,根据所述光照贴图对所述目标模型进行渲染,包括:
根据所述光照贴图得到所述光照信息,并将所述光照信息融合到所述目标模型的材质固有色中。
在一些示例性实施例中,所述构建包含目标模型组的第一虚拟场景,包括:
对于任一所述目标模型,按照预设的位置坐标和缩放比例放置于所述第一虚拟场景中。
在一些示例性实施例中,还包括:
解析所述第一虚拟场景的参数得到所述目标模型组的参数;
将所述目标模型组的参数添加到所述第二虚拟场景的参数中,以将所述目标模型组加载在所述第二虚拟场景中。
基于同一发明构思,本公开示例性实施例还提供了一种模型的渲染装置,包括:
第一虚拟场景构建模块,被配置为构建包含目标模型组的第一虚拟场景;其中,所述目标模型组中包括至少一个目标模型;
光照贴图生成模块,被配置为根据所述目标模型在所述第一虚拟场景中的光照信息,生成所述目标模型的光照贴图;
模型渲染模块,被配置为响应于确定在第二虚拟场景中加载所述目标模型组,根据所述光照贴图对所述目标模型进行渲染。
基于同一发明构思,本公开示例性实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项所述的方法。
基于同一发明构思,本公开示例性实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上任一所述方法。
从上面所述可以看出,本公开实施例提供的模型的渲染方法、装置、电子设备及存储介质,该方法包括:构建包含目标模型组的第一虚拟场景;其中,所述目标模型组中包括至少一个目标模型;根据所述目标模型在所述第一虚拟场景中的光照信息,生成所述目标模型的光照贴图;响应于确定在第二虚拟场景中加载所述目标模型组,根据所述光照贴图对所述目标模型进行渲染。本公开可以对模型进行分组并在烘焙场景中进行烘焙得到光照贴图,当模型组加载到应用场景中时,将烘焙得到的光照贴图中的光照信息传递到应用场景中的模型组中,在针对较大的场景时,也能满足渲染模型的需求。
附图说明
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本公开实施例提供的示例性虚拟场景的示意图;
图2为根据本公开实施例提供的示例性烘焙方案的第一种示意图;
图3为根据本公开实施例提供的示例性烘焙方案的第二种示意图;
图4为本公开实施例提供的模型的渲染方法的流程示意图;
图5为本公开实施例提供的模型的渲染装置的结构示意图;
图6为本公开实施例提供的电子设备的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
根据本公开的实施方式,提出了一种模型的渲染方法、装置、电子设备及存储介质。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
相关技术中,在模型渲染阶段,尤其是在其中的着色阶段,不仅要实现虚拟场景中的模型的基本着色效果,还要实现模型的光照效果、阴影效果以及表面纹理效果等。对于一个虚拟场景,从零开始进行渲染可能将花费大量的时间,为了降低时间成本和延时,一般的,以光照效果为例,可以对场景中的模型的光照效果进行预先计算-即烘焙,具体的,将该场景中的模型的光照信息预先制作成光照贴图并存储,在加载该场景时,根据光照贴图对于场景中的模型进行渲染,在这种情况下,因为场景中的模型的颜色不需要重新计算,整个场景的渲染将会加快。
参考图1,其示出了根据本公开实施例提供的示例性虚拟场景的示意图。
该虚拟场景中包括若干模型,例如树木模型和房屋模型。相关技术中,通常是以场景为单位进行烘焙,在这种方案中,对于参与烘焙的模型都需要制作单独的贴图,这些贴图共同以贴图集合的形式保存在该场景的相关文件中,同时,在这种方案中,场景中的模型的样式、数量、位置以及模型之间的相互关系是固定不变的。
然而,单个场景的能承载的模型的数量有实际上限,单次烘焙的模型的数量也有实际上限。特别是随着计算机动画技术的发展,以LBS(Location Based Service,基于位置的服务)类基于现实地图构建的项目为例,基于现实地图构建的场景地图较大,编辑器无法支持数量如此庞大的物体同时烘焙,因此,很难通过烘焙将光照信息烘焙到光照贴图,以照亮整个场景。同时,由于对于参与烘焙的模型都需要制作单独的贴图,在这种场景较大的项目中,模型实例个数较多,单次烘焙产生的贴图的大小和贴图的数量就较大,对于设备的存储性能和处理性能要求较高。
参考图2,其示出了根据本公开实施例提供的示例性烘焙方案的示意图。
该虚拟场景中包括若干子场景,子场景中包括若干模型,例如树木模型和房屋模型。为了解决上述基于整体烘焙的技术方案不能很好的适应于地图较大的场景的技术问题,相关技术的方案是,将一个场景划分为多个子场景,以多个子场景分别为单位进行烘焙,在用户操控的角色到达任一子场景之前,基于烘焙的信息加载该子场景。
然而,在这种方案中,虽然在一定程度上解决了对于地图较大的场景不能一次性进行烘焙的问题,但是,在这种方案中,场景中的模型的样式、数量、位置以及模型之间的相互关系仍然是固定不变的。当需要对于场景中的至少一个模型进行调整例如增、删以及替换,需要基于该模型所在的子场景整体重新进行烘焙,时效性较差且成本较高。
参考图3,其示出了根据本公开实施例提供的示例性烘焙方案的示意图。
为了解决上述问题,本公开提供了一种模型的渲染方案,具体包括:构建包含目标模型组的第一虚拟场景;其中,所述目标模型组中包括至少一个目标模型;根据所述目标模型在所述第一虚拟场景中的光照信息,生成所述目标模型的光照贴图;响应于确定在第二虚拟场景中加载所述目标模型组,根据所述光照贴图对所述目标模型进行渲染。如图3所示,在本公开中,不以整体场景为单位,也无需划分成若干子场景,以模型或者模型组为单位,按照预设或者需求加载模型或者模型组的同时,根据预先烘焙的光照贴图进行渲染着色,同时,在本公开中,模型或者模型组可以分批、动态的加载到场景中,在针对较大的场景时,也能满足渲染模型的需求。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。下面结合图3的应用场景,来描述根据本公开示例性实施方式的模型的渲染方案。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
参考图4,其为本公开实施例提供的模型的渲染方法的流程示意图。
模型的渲染方法,包括以下步骤:
步骤S410、构建包含目标模型组的第一虚拟场景;其中,所述目标模型组中包括至少一个目标模型。
具体实施时,预先构建模型组,作为一个示例,可以按照模型的种类成组,例如一组树木、一组山石或者一组房屋等。按照模型的种类成组的优势在于,同一种类的模型的美术风格类似,且方便替换,例如将一组樱花树替换为一组桃花树。
在一些示例性实施例中,S410具体包括:
对于任一所述目标模型,按照预设的位置坐标和缩放比例放置于所述第一虚拟场景中。
具体实施时,第一虚拟场景为烘焙场景。需要说明的是,与相关技术相区别的,用于烘焙的第一虚拟场景与用于实际加载模型的第二虚拟场景之间,不存在必然的联系,第一虚拟场景既不是第二虚拟场景本身及其镜像,也不是由第二虚拟场景划分得到的子场景。
步骤S420、根据所述目标模型在所述第一虚拟场景中的光照信息,生成所述目标模型的光照贴图。
在一些示例性实施例中,S420具体包括:
根据所述目标模型和所述第一虚拟场景中的光源的位置关系,确定所述光照信息;
根据所述光照信息生成所述光照贴图。
其中,模型表面包含若干顶点,可以通过确定这些顶点与光源的位置关系,从而确定模型和光源的位置关系。
通常情况下,模型表面的顶点数量有限,在顶点较少的情况下,光照信息不够丰富,将会影响最终的渲染效果。
为了解决这个问题,本公开对于模型的表面进行细分,以在模型表面生成若干新的顶点,从而在此基础上进行光照信息的获取,以丰富光照信息,提高最终的渲染效果。
在一些示例性实施例中,确定光照信息的方法,具体包括:
对所述目标模型进行细分,根据所述细分后的目标模型的顶点和所述第一虚拟场景中的光源的位置关系,确定所述光照信息。
在一些示例性实施例中,对目标模型的表面进行细分的方法,具体包括:
对于所述目标模型的三角面,确定该三角面的中心点,并将所述中心点分别与该三角面的顶点相连,得到细分后的目标模型。
具体实施时,可以重复执行上述细分操作,直到模型上产生了一定数量的三角面,使模型具有一定的精细度,以便于提高渲染效果。
步骤S430、响应于确定在第二虚拟场景中加载所述目标模型组,根据所述光照贴图对所述目标模型进行渲染。
在一些示例性实施例中,在第二虚拟场景中加载目标模型组的方法,具体包括:
解析所述第一虚拟场景的参数得到所述目标模型组的参数;
将所述目标模型组的参数添加到所述第二虚拟场景的参数中,以将所述目标模型组加载在所述第二虚拟场景中。
在一些示例性实施例中,S430具体包括:
根据所述光照贴图得到所述光照信息,并将所述光照信息融合到所述目标模型的材质固有色中。
作为一个示例,在场景文件(scn)中,以XML格式的参数描述Mesh(其中,构造一个物体边界的一组多边形就被称为Mesh,简单来说,模型的三角面即可以看作是Mesh)在场景下的光照贴图(Lightmap)信息:
a)texture_index表示引用的Lightmap的索引序号,例如第几张Lightmap;
b)uv_ofs表示Lightmap的UV的偏移值,即UV采样的Lightmap位置;
c)uv_scale表示Lightmap的UV的采样位置大小;
d)encode_type是编码类型;
e)lightmap_scale表示模型在场景中的实例Lightmap的大小;
f)lightmap_add表示模型在场景中的实例Lightmap的偏移量;
g)lightmap_scale_directional表示模型在场景中的实例SH Lightmap的大小;
h)lightmap_add_directional表示模型在场景中的实例SH Lightmap的偏移量;
i)is_alpha_shadow表示是否为半透阴影。
具体实施时,可以利用python脚本对于第一虚拟场景的scn文件中的XML格式的参数中的模型信息进行处理,通过对于XML格式的参数进行解析分解,并再生成MeshInformation参数:此参数包含scn文件中的mesh Lightmap信息。将Mesh Information参数添加到第二虚拟场景的scn文件中,使得运行时(runtime),第二虚拟场景有相应的模型信息(包括模型Lightmap)。在第二虚拟场景中加载目标模型组时,将光照贴图信息也传递到第二虚拟场景中。
在Shader中需要对Lightmap进行解码以及运算,将输出光照结果增加到模型本身的材质固有色(BaseColor)上,具体包括:
a)将模型的Texture Coordinate参数输入Lightmap GPU Instance,作为Lightmap GPU Instance的矩阵变化数据。
作为一个示例,Texture Coordinate参数如下:
texcoord2表示Lightmap的大小比例、偏移量和方向;
texcoord3表示Lightmap的颜色、偏移量大小以及UV的U方向;
texcoord4表示Lightmap的法线偏移量大小以及UV的V方向;
texcoord5-7表示世界矩阵(World Matrix)参数。
b)将TexCoord数据输入Lightmap计算函数中。
c)将模型的Lightmap GPU Instance参数输入宏方法,调用解码函数。
d)解析在GPU Instance时Lightmap的UV的Scale值和Add值。
e)以上参数解析在GPU Instance时Lightmap的Scale和Add以及SH Lightmap的Scale和Add值。
f)以上参数将最后计算得出的Lightmap值添加给模型BaseColor上。
从上面所述可以看出:
在本公开中,可以对模型进行分组并在烘焙场景中进行烘焙得到光照贴图,当模型组加载到应用场景中时,将烘焙得到的光照贴图中的光照信息传递到应用场景中的模型组中,因此,即使在针对较大的场景时,也能满足渲染模型的需求。
在本公开中,与相关技术相区别的,用于烘焙的第一虚拟场景与用于实际加载模型的第二虚拟场景之间,不存在必然的联系,第一虚拟场景既不是第二虚拟场景本身及其镜像,也不是由第二虚拟场景划分得到的子场景。以模型或者模型组为单位,按照预设或者需求加载模型或者模型组的同时,根据预先烘焙的光照贴图进行渲染着色。
在本公开中,对于实时加载的动态物品,也能赋予烘焙光照信息。能保证物件间正常的相互反射及投影,并且处于同样的光照环境下。模型或者模型组可以分批、动态的加载到场景中。
在本公开中,场景可以统一为同一种shader,不需要多种材质,降低了DP;实时加载的动态物品也用同一种渲染方式,表现效果更统一;突破模型烘焙的数量上限,理论上可以在LBS地图上实时加载庞大数量的烘焙光照模型;能保证物件间正常的相互反射及投影,并且处于同样的光照环境下,表现效果统一;相较实时光照方案,降低了性能消耗,提升了光照细节精度;相较光照探针,能保留高频光照信息,对大型物体及带有凹面的物体有更好的表现。
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种模型的渲染装置。
参考图5,所述模型的渲染装置,包括:
第一虚拟场景构建模块510,被配置为构建包含目标模型组的第一虚拟场景;其中,所述目标模型组中包括至少一个目标模型。
在一些示例性实施例中,第一虚拟场景构建模块510,具体被配置为:
对于任一所述目标模型,按照预设的位置坐标和缩放比例放置于所述第一虚拟场景中。
光照贴图生成模块520,被配置为根据所述目标模型在所述第一虚拟场景中的光照信息,生成所述目标模型的光照贴图;
在一些示例性实施例中,光照贴图生成模块520,具体被配置为:
根据所述目标模型和所述第一虚拟场景中的光源的位置关系,确定所述光照信息;
根据所述光照信息生成所述光照贴图。
在一些示例性实施例中,光照贴图生成模块520,具体被配置为:
对所述目标模型进行细分,得到细分后的目标模型,根据所述细分后的目标模型的顶点和所述第一虚拟场景中的光源的位置关系,确定所述光照信息。
在一些示例性实施例中,光照贴图生成模块520,具体被配置为:
对于所述目标模型的三角面,确定该三角面的中心点,并将所述中心点分别与该三角面的顶点相连,得到细分后的目标模型。
模型渲染模块530,被配置为响应于确定在第二虚拟场景中加载所述目标模型组,根据所述光照贴图对所述目标模型进行渲染。
在一些示例性实施例中,模型渲染模块530,具体被配置为:
根据所述光照贴图得到所述光照信息,并将所述光照信息融合到所述目标模型的材质固有色中。
在一些示例性实施例中,模型渲染模块530,具体还被配置为:
解析所述第一虚拟场景的参数得到所述目标模型组的参数;
将所述目标模型组的参数添加到所述第二虚拟场景的参数中,以将所述目标模型组加载在所述第二虚拟场景中。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的模型的渲染方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的模型的渲染方法。
图6示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的模型的渲染方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的模型的渲染方法。
上述非暂态计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上示例性方法部分中任一实施例所述的模型的渲染方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
本领域技术技术人员知道,本公开的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本公开还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
申请文件中提及的动词“包括”、“包含”及其词形变化的使用不排除除了申请文件中记载的那些元素或步骤之外的元素或步骤的存在。元素前的冠词“一”或“一个”不排除多个这种元素的存在。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (10)
1.一种模型的渲染方法,其特征在于,包括:
构建包含目标模型组的第一虚拟场景;其中,所述目标模型组中包括至少一个目标模型;
根据所述目标模型在所述第一虚拟场景中的光照信息,生成所述目标模型的光照贴图;
响应于确定在第二虚拟场景中加载所述目标模型组,根据所述光照贴图对所述目标模型进行渲染。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标模型在所述第一虚拟场景中的光照信息,生成所述目标模型的光照贴图,包括:
根据所述目标模型和所述第一虚拟场景中的光源的位置关系,确定所述光照信息;
根据所述光照信息生成所述光照贴图。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标模型和所述第一虚拟场景中的光源的位置关系,确定所述光照信息,包括:
对所述目标模型进行细分,得到细分后的目标模型,根据所述细分后的目标模型的顶点和所述第一虚拟场景中的光源的位置关系,确定所述光照信息。
4.根据权利要求1所述的方法,其特征在于,所述对所述目标模型进行细分,得到细分后的目标模型,包括:
对于所述目标模型的三角面,确定该三角面的中心点,并将所述中心点分别与该三角面的顶点相连,得到所述细分后的目标模型。
5.根据权利要求1所述的方法,其特征在于,所述响应于确定在第二虚拟场景中加载所述目标模型组,根据所述光照贴图对所述目标模型进行渲染,包括:
根据所述光照贴图得到所述光照信息,并将所述光照信息融合到所述目标模型的材质固有色中。
6.根据权利要求1所述的方法,其特征在于,所述构建包含目标模型组的第一虚拟场景,包括:
对于任一所述目标模型,按照预设的位置坐标和缩放比例放置于所述第一虚拟场景中。
7.根据权利要求1所述的方法,其特征在于,还包括:
解析所述第一虚拟场景的参数得到所述目标模型组的参数;
将所述目标模型组的参数添加到所述第二虚拟场景的参数中,以将所述目标模型组加载在所述第二虚拟场景中。
8.一种模型的渲染装置,其特征在于,包括:
第一虚拟场景构建模块,被配置为构建包含目标模型组的第一虚拟场景;其中,所述目标模型组中包括至少一个目标模型;
光照贴图生成模块,被配置为根据所述目标模型在所述第一虚拟场景中的光照信息,生成所述目标模型的光照贴图;
模型渲染模块,被配置为响应于确定在第二虚拟场景中加载所述目标模型组,根据所述光照贴图对所述目标模型进行渲染。
9.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行权利要求1至7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210451372.0A CN114943795A (zh) | 2022-04-26 | 2022-04-26 | 模型的渲染方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210451372.0A CN114943795A (zh) | 2022-04-26 | 2022-04-26 | 模型的渲染方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114943795A true CN114943795A (zh) | 2022-08-26 |
Family
ID=82907605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210451372.0A Pending CN114943795A (zh) | 2022-04-26 | 2022-04-26 | 模型的渲染方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114943795A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116347003A (zh) * | 2023-05-30 | 2023-06-27 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种虚拟灯光实时渲染方法及装置 |
-
2022
- 2022-04-26 CN CN202210451372.0A patent/CN114943795A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116347003A (zh) * | 2023-05-30 | 2023-06-27 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种虚拟灯光实时渲染方法及装置 |
CN116347003B (zh) * | 2023-05-30 | 2023-08-11 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种虚拟灯光实时渲染方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | OpenSceneGraph 3.0: Beginner's guide | |
US8310484B2 (en) | Efficient processing of operator graphs representing three-dimensional character animation | |
US9818221B2 (en) | Start node determination for tree traversal for shadow rays in graphics processing | |
CN107393013B (zh) | 虚拟漫游文件生成、显示方法、装置、介质、设备和系统 | |
US11379943B2 (en) | Optimizing compilation of shaders | |
US20180005427A1 (en) | Devices and methods for generating elementary geometries | |
US11094036B2 (en) | Task execution on a graphics processor using indirect argument buffers | |
CN111045675A (zh) | 一种基于Flutter的页面生成方法、装置、设备和存储介质 | |
US11282260B2 (en) | Bounded volume hierarchy (BVH) tree traversal using spatial division | |
CN111179391A (zh) | 一种三维动画制作方法、系统及存储介质 | |
WO2013104504A1 (en) | Method and device for compiling a source program | |
CN114943795A (zh) | 模型的渲染方法、装置、电子设备及存储介质 | |
CN115080016A (zh) | 基于ue编辑器的扩展功能实现方法、装置、设备及介质 | |
CN109448123B (zh) | 模型的控制方法及装置、存储介质、电子设备 | |
Kosarevsky et al. | 3D Graphics Rendering Cookbook: A comprehensive guide to exploring rendering algorithms in modern OpenGL and Vulkan | |
Stenning | Direct3D Rendering Cookbook | |
EP3834080B1 (en) | Static reconcilliation of application view hierarchies | |
Jackson | Pro android wearables: Building apps for smartwatches | |
CN114816972A (zh) | 着色语言的测试方法、装置、电子设备以及存储介质 | |
CN110930499A (zh) | 一种3d数据处理方法及装置 | |
CN114077433B (zh) | 一种跨平台模块化的着色器语言通用集成方法 | |
CN117635775A (zh) | 模型特效实现方法和装置、计算机存储介质、电子设备 | |
Atella | Rendering Hypercomplex Fractals | |
Creati et al. | Field Animation | |
CN115272559A (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 |