CN112231020B - 模型切换方法和装置、电子设备和存储介质 - Google Patents
模型切换方法和装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112231020B CN112231020B CN202011487643.5A CN202011487643A CN112231020B CN 112231020 B CN112231020 B CN 112231020B CN 202011487643 A CN202011487643 A CN 202011487643A CN 112231020 B CN112231020 B CN 112231020B
- Authority
- CN
- China
- Prior art keywords
- target
- scene
- model
- models
- scene models
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 98
- 230000007704 transition Effects 0.000 claims abstract description 58
- 230000008569 process Effects 0.000 claims abstract description 29
- 238000009877 rendering Methods 0.000 claims description 84
- 239000000463 material Substances 0.000 claims description 53
- 238000004891 communication Methods 0.000 claims description 19
- 239000013077 target material Substances 0.000 claims description 16
- 238000001914 filtration Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 230000000007 visual effect Effects 0.000 abstract description 17
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000005070 sampling Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 244000025254 Cannabis sativa Species 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000002156 mixing Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009191 jumping Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 229920000433 Lyocell Polymers 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 241000209504 Poaceae Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种模型切换方法和装置、电子设备和存储介质,其中,该方法包括:在目标客户端上显示目标关卡的多个第一场景模型,其中,所述多个第一场景模型中的每个第一场景模型为一个场景物体的多细节层次LOD模型;加载所述目标关卡待切换到的目标流关卡,其中,所述目标流关卡中包含多个第二场景模型,所述多个第二场景模型中的每个第二场景模型为所述多个第一场景模型中的部分场景模型进行模型合并所得到的场景模型;在向所述目标流关卡切换的过程中,控制所述多个第一场景模型通过渐变抖动过渡到所述多个第二场景模型。通过本申请,解决了相关技术中的模型切换方式存在由于视觉信息跳转导致的用户视觉体验差的问题。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种模型切换方法和装置、电子设备和存储介质。
背景技术
目前,在3D(3 Dimensions,三维)游戏开发的过程中,需要对游戏性能进行优化,而性能优化的一个重要过程是对模型的渲染优化。为了提高模型渲染效率,可以对模型做LOD(Levels of Detail,多细节层次),离目标人物远的位置的模型可以从高配模型切换到低配模型,通过渲染大量的低配模型来提高性能。
在切换一个关卡上显示的模型时,由于切换前后模型的精度不同,存在由于视觉信息跳转导致的用户视觉体验差的问题。
发明内容
本申请提供了一种模型切换方法和装置、电子设备和存储介质,以至少解决相关技术中的模型切换方式存在由于视觉信息跳转导致的用户视觉体验差的问题。
根据本申请实施例的一个方面,提供了一种模型切换方法,包括:在目标客户端上显示目标关卡的多个第一场景模型,其中,所述多个第一场景模型中的每个第一场景模型为一个场景物体的LOD模型;加载所述目标关卡待切换到的目标流关卡,其中,所述目标流关卡中包含多个第二场景模型,所述多个第二场景模型中的每个第二场景模型为所述多个第一场景模型中的部分场景模型进行模型合并所得到的场景模型;在向所述目标流关卡切换的过程中,控制所述多个第一场景模型通过渐变抖动过渡到所述多个第二场景模型。
可选地,控制所述多个第一场景模型通过渐变抖动过渡到所述多个第二场景模型包括:在向所述目标流关卡切换的过渡时间内,调整与目标关卡对应的抖动参数,将调整的所述抖动参数传入到渲染参数中;按照所述渲染参数同时渲染所述多个第一场景模型和所述多个第二场景模型,以控制所述多个第一场景模型渲染的像素点逐渐减少,所述多个第二场景模型渲染的像素点逐渐增加。
可选地,在按照所述渲染参数同时渲染所述多个第一场景模型和所述多个第二场景模型之前,所述方法还包括:获取所述多个第一场景模型的第一深度图信息和所述多个第二场景模型的第二深度图信息;按照所述第一深度图信息过滤所述多个第一场景模型中处于目标深度范围以外的物体像素,得到多个第一目标模型;按照所述第二深度图信息过滤所述多个第二场景模型中处于所述目标深度范围以外的物体像素,得到多个第二目标模型;其中,所述多个第一目标模型和所述多个第二目标模型为待渲染的物体模型。
可选地,按照所述渲染参数同时渲染所述多个第一场景模型和所述多个第二场景模型包括:按照所述渲染参数,从所述多个第一目标模型和所述多个第二目标模型中选取出与各个像素点所对应的待渲染模型;在所述各个像素点上渲染为所述各个像素点选取的所述待渲染模型。
可选地,在加载所述目标关卡待切换到的所述目标流关卡之前,所述方法还包括:检测到所述目标关卡与目标虚拟角色之间的距离由小于目标距离阈值转换为大于或者等于所述目标距离阈值,其中,所述目标虚拟角色为通过所述目标客户端所控制的虚拟角色。
可选地,在加载所述目标关卡待切换到的所述目标流关卡之前,所述方法还包括:将所述多个第二场景模型中的每个第二场景模型的模型材质配置为目标模型材质,其中,所述目标模型材质具有激活的目标材质属性,所述目标材质属性用于指示在流关卡切换时通过渐变抖动进行模型过渡。
可选地,在加载所述目标关卡待切换到的所述目标流关卡之前,所述方法还包括以下至少之一:通过合并所述多个第一场景模型中的多个第一子场景模型的模型顶点、模型贴图和模型材质,将所述多个第一子场景模型烘焙成一个场景模型,得到所述多个第二场景模型的一个场景模型;通过对所述多个第一场景模型中的多个第二子场景模型进行距离场采样,将所述多个第二子场景模型烘焙成一个场景模型,得到所述多个第二场景模型的一个场景模型;按照目标采样精度对所述多个第一场景模型的多个第三子场景模型进行随机采样,得到多个待烘焙子模型,其中,所述多个第三子场景模型为相同的模型;按照一个批次提交所述多个待烘焙子模型,将所述多个待烘焙子模型烘焙成一个场景模型,得到所述多个第二场景模型的一个场景模型,其中,按照一个批次提交的顶点数为一个所述第三子场景模型的顶点数。
可选地,在所述控制所述多个第一场景模型通过渐变抖动过渡到所述多个第二场景模型之后,所述方法还包括:在所述目标流关卡中的全部物体模型均已显示的情况下,卸载所述目标关卡中的全部物体模型。
根据本申请实施例的另一个方面,还提供了一种模型切换装置,包括:显示单元,用于在目标客户端上显示目标关卡的多个第一场景模型,其中,所述多个第一场景模型中的每个第一场景模型为一个场景物体的多细节层次LOD模型;加载单元,用于加载所述目标关卡待切换到的目标流关卡,其中,所述目标流关卡中包含多个第二场景模型,所述多个第二场景模型中的每个第二场景模型为所述多个第一场景模型中的部分场景模型进行模型合并所得到的场景模型;控制单元,用于在向所述目标流关卡切换的过程中,控制所述多个第一场景模型通过渐变抖动过渡到所述多个第二场景模型。
可选地,所述控制单元包括:调整模块,用于在向所述目标流关卡切换的过渡时间内,调整与目标关卡对应的抖动参数,将调整的所述抖动参数传入到渲染参数中;渲染模块,用于按照所述渲染参数同时渲染所述多个第一场景模型和所述多个第二场景模型,以控制所述多个第一场景模型渲染的像素点逐渐减少,所述多个第二场景模型渲染的像素点逐渐增加。
可选地,所述装置还包括:获取单元,用于在按照所述渲染参数同时渲染所述多个第一场景模型和所述多个第二场景模型之前,获取所述多个第一场景模型的第一深度图信息和所述多个第二场景模型的第二深度图信息;第一过滤单元,用于按照所述第一深度图信息过滤所述多个第一场景模型中处于目标深度范围以外的物体像素,得到多个第一目标模型;第二过滤单元,用于按照所述第二深度图信息过滤所述多个第二场景模型中处于所述目标深度范围以外的物体像素,得到多个第二目标模型;其中,所述多个第一目标模型和所述多个第二目标模型为待渲染的物体模型。
可选地,所述渲染模块包括:选取子模块,用于按照所述渲染参数,从所述多个第一目标模型和所述多个第二目标模型中选取出与各个像素点所对应的待渲染模型;渲染子模块,用于在所述各个像素点上渲染为所述各个像素点选取的所述待渲染模型。
可选地,所述装置还包括:检测单元,用于在加载所述目标关卡待切换到的所述目标流关卡之前,检测到所述目标关卡与目标虚拟角色之间的距离由小于目标距离阈值转换为大于或者等于所述目标距离阈值,其中,所述目标虚拟角色为通过所述目标客户端所控制的虚拟角色。
可选地,所述装置还包括:配置单元,用于在加载所述目标关卡待切换到的所述目标流关卡之前,将所述多个第二场景模型中的每个第二场景模型的模型材质配置为目标模型材质,其中,所述目标模型材质具有激活的目标材质属性,所述目标材质属性用于指示在流关卡切换时通过渐变抖动进行模型过渡。
可选地,所述装置还包括以下至少之一:第一烘焙单元,用于在加载所述目标关卡待切换到的所述目标流关卡之前,通过合并所述多个第一场景模型中的多个第一子场景模型的模型顶点、模型贴图和模型材质,将所述多个第一子场景模型烘焙成一个场景模型,得到所述多个第二场景模型的一个场景模型;第二烘焙单元,用于通过对所述多个第一场景模型中的多个第二子场景模型进行距离场采样,将所述多个第二子场景模型烘焙成一个场景模型,得到所述多个第二场景模型的一个场景模型;采样单元,用于按照目标采样精度对所述多个第一场景模型的多个第三子场景模型进行随机采样,得到多个待烘焙子模型,其中,所述多个第三子场景模型为相同的模型;第三烘焙单元,用于按照一个批次提交所述多个待烘焙子模型,将所述多个待烘焙子模型烘焙成一个场景模型,得到所述多个第二场景模型的一个场景模型,其中,按照一个批次提交的顶点数为一个所述第三子场景模型的顶点数。
可选地,所述装置还包括:卸载单元,用于在所述控制所述多个第一场景模型通过渐变抖动过渡到所述多个第二场景模型之后,在所述目标流关卡中的全部物体模型均已显示的情况下,卸载所述目标关卡中的全部物体模型。
根据本申请实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。
根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。
在本申请实施例中,采用模型合并、以及通过渐变抖动进行模型过渡的方式,通过在目标客户端上显示目标关卡的多个第一场景模型,其中,多个第一场景模型中的每个第一场景模型为一个场景物体的LOD模型;加载目标关卡待切换到的目标流关卡,其中,目标流关卡中包含多个第二场景模型,多个第二场景模型中的每个第二场景模型为多个第一场景模型中的部分场景模型进行模型合并所得到的场景模型;在向目标流关卡切换的过程中,控制多个第一场景模型通过渐变抖动过渡到多个第二场景模型,由于将多个模型合并成一个模型,可以实现多对1(多个模型到一个模型)的过渡,减少模型渲染的提交次数,可以在尽量保证模型精度的情况下,节省CPU(Central Processing Unit,中央处理器)和GPU(Graphics Processing Unit,图形处理器)的开销,采用渐变抖动的方式进行模型过渡,可以减弱模型差异,从而实现模型平滑过渡的目的,达到提高模型切换的平滑度、提升用户的视觉体验的技术效果,进而解决了相关技术中的模型切换方式存在由于视觉信息跳转导致的用户视觉体验差的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的一种可选的模型切换方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的模型切换方法的流程示意图;
图3是根据本申请实施例的一种可选的模型切换方法的示意图;
图4是根据本申请实施例的另一种可选的模型切换方法的流程示意图;
图5是根据本申请实施例的一种可选的模型切换装置的结构框图;
图6是根据本申请实施例的一种可选的电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
(1) UE4(Unreal Engine 4,虚幻引擎4):是一款由 Epic Games 公司开发的开源游戏引擎;
(2) Streaming Level(流关卡):在游戏时异步加载和卸载关卡,降低内存使用率,创建无缝的世界场景;
(3) HLOD(Hierarchical LOD,分层细节级别):通过合并模型、材质、贴图来减少新模型的内存,并且提升渲染效率;
(4) StreamingLevelLOD:流式加载LOD的方案,通过预烘焙整个地图的模型合并模型材质贴图,加载好新的模型后会卸载原有模型。
根据本申请实施例的一个方面,提供了一种模型切换方法。可选地,在本实施例中,上述模型切换方法可以应用于如图1所示的由终端102和服务器104所构成的硬件环境中。如图1所示,服务器104通过网络与终端102进行连接,可用于为终端或终端上安装的客户端(例如,游戏客户端)提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器104提供数据存储服务。
上述网络包括但不限于:有线网络,无线网络,上述有线网络可以包括但不限于:广域网、城域网或局域网。终端102并不限定于PC(Personal Computer,个人计算机)、手机、平板电脑等。
本申请实施例的模型切换方法可以由终端102来执行,也可以由服务器104来执行,还可以是由终端102和服务器104共同执行。其中,终端102执行本申请实施例的模型切换方法也可以是由安装在其上的客户端(例如,目标游戏的客户端)来执行。
以由终端102来执行本实施例中的模型切换方法为例,图2是根据本申请实施例的一种可选的模型切换方法的流程示意图,如图2所示,该方法的流程可以包括以下步骤:
步骤S202,在目标客户端上显示目标关卡的多个第一场景模型,其中,多个第一场景模型中的每个第一场景模型为一个场景物体的LOD模型。
本实施例中的模型切换方法可以应用于由多个关卡拼接而成的游戏场景(目标游戏场景,例如,大世界),该游戏场景可以是目标游戏的游戏场景(例如,三维游戏场景)。
目标游戏可以是单人游戏,也可以是多人游戏(例如,开放式大世界游戏);可以是对战游戏,也可以是非对战游戏(例如,经营类游戏);可以是端游,也可以是手游,本实施例中对于目标游戏的游戏类型不作限定。
例如,目标游戏可以是MMORPG(Massive或Massively Multiplayer Online Role-Playing Game,大型多人在线角色扮演游戏),或者,AR(Augmented Reality,增强现实)游戏,或者,VR(Virtual Reality,虚拟现实)游戏,或者其他类型的游戏。
目标用户(目标玩家)的终端设备上可以运行有目标游戏应用的目标客户端。该目标客户端可以与服务器进行通信连接,上述服务器为目标游戏的后台服务器。目标用户可以使用帐号和密码、动态密码、关联应用(第三方应用)登录等方式登录到其终端设备上运行的目标客户端,并通过操作目标客户端进入到目标游戏场景(目标游戏地图,例如,大世界)。
以大世界为例,一个大世界是由许多关卡拼接而成,不同的关卡上面有高低起伏的山脉,河流,建筑物,一个关卡的尺寸可以根据需要进行配置,例如,可以是128×128米的正方形(地块),一个正方形挨着另一个,一个大世界可以由许许多多这样的正方形拼接而成。
在目标游戏场景中,目标用户通过目标客户端所控制的虚拟角色为目标虚拟角色。目标游戏场景中可以包含有多个关卡,目标客户端上当前显示的关卡中可以包括目标关卡。对于目标关卡,在目标虚拟角色与目标关卡的距离较近时,可以在目标关卡上显示多个第一场景模型,每个第一场景模型对应于目标关卡中的第一个场景物体,是该物体的LOD模型(例如,多级LOD模型)。
需要说明的是,目标关卡与目标虚拟角色的距离可以是:关卡与人物(例如,目标虚拟角色)之间的距离不是关卡内某一物体和人物之间的距离,而是关卡的地块中心点与人物之间的距离。
每个第一场景模型所对应的场景物件可以是不同的,不同的第一场景模型对应于场景物件的类型可以是相同的,也可以是不同的。场景物件可以包括但不限于以下至少之一:建筑,树木,草地。
例如,目标关卡中包含3个物件,当前显示的目标关卡上可以显示每个物件的LOD模型。
按照模型面数和细节数,同一物件的不同级LOD模型可以对应于不同的精度,面数和细节数越多,精度越高。根据物体模型的节点在场景所处的位置和重要度,目标客户端可以决定物体渲染的资源分配,也就是,渲染哪一级的LOD模型。
步骤S204,加载目标关卡待切换到的目标流关卡,其中,目标流关卡中包含多个第二场景模型,多个第二场景模型中的每个第二场景模型为多个第一场景模型中的部分场景模型进行模型合并所得到的场景模型。
由于每个模型都有自己的多级LOD,如果在场景中的场景模型采用多级LOD模型,当场景模型数量过多时,每个模型都有自己的不同LOD的简模和应对的贴图材质,需要单独渲染(渲染一个模型叫一个批次,如果场景中有1000个不同的模型,那么,就需要渲染1000个批次,都要按着一定的顺序依次单独渲染),无法保证效率,也无法减少内存占用。
在目标关卡距离目标人物(目标虚拟角色)较远时(例如,超过设定的距离阈值),其上的景色没有必要使用高精度的模型,为了保证渲染效率,减少内容占用,可以将其替换为低精度模型,而不会太影响整体效果。
在本实施例中,目标游戏场景中的各个关卡(具有目标尺寸的地块)可以采用流式加载的方案进行加载,从而可以实现高精度模型向低精度模型切换。对于各个关卡,可以为其预先烘焙好一个或多个流关卡,即,StreamingLevelLOD(LOD流送关卡)。LOD流送关卡(流关卡)类似于网格体LOD,可以根据流送距离设置,关卡可以替换为相应的流关卡。
流关卡(Streaming Level)是指:在游戏时异步加载和卸载关卡,可以降低内存使用率,创建无缝的世界场景。StreamingLevelLOD是指:通过预烘焙整个地图的模型合并模型材质贴图,并且加载好新的模型后会卸载原有模型。
在进行模型切换过渡时,由于关卡中的多个LOD模型的数据一般会放在同一个mesh(网格)里,因此,一般只能实现单个模型的LOD Dither过渡(即,1对1的过渡)。如果把多个模型烘焙到一起,例如,HLOD,不同的LOD数据放在了不同的mesh中,引擎无法执行多对1的过渡。
为了实现多对1的过渡,从而提高模型切换方式的适用性,在流关卡烘焙时,可以将关卡中的场景模型划分成多个不同的部分,不同部分的场景模型可以场景不同的方式进行模型合并,分别烘焙成一个场景模型。
在烘焙各个场景模型之后,烘焙好的模型可以组成流光卡,或者,结合其他信息组成流关卡。烘焙好的流关卡可以保存在服务器中或者其他存储设备中,从而在游戏运行时可以被加载到运行目标游戏的客户端(例如,目标客户端)中。
需要说明的是,烘焙模型只是烘焙模型本身,并不记录模型的光影信息,光照是在渲染时通过材质实时计算的。对于模型烘焙,储存模型的网格数据是一方面,还可以包括:存储贴图数据,例如,有的模型渲染需要多张基础颜色贴图混合,那么可以直接计算出混合后的贴图。示例性地,对模型烘焙可以包括:获取模型的网格信息、材质和贴图等。
需要说明的是,流关卡的烘焙过程需要大量计算,为了提高游戏运行的流畅性,可以通过服务器预先进行场景或者流关卡烘焙。相对于目标游戏的运行过程而言,场景的烘焙过程可以作为离线准备过程,而不是在目标游戏运行时执行的。
在目标虚拟角色与目标关卡的距离较远时,或者在其他关卡切换条件满足时,目标客户端可以确定将目标关卡切换到目标流关卡。目标客户端可以与服务器进行交互,从而加载目标流关卡,或者,直接加载本地保存的目标流关卡。
目标流关卡中可以包含多个第二场景模型。多个第二场景模型中的每个第二场景模型为多个第一场景模型中的部分场景模型进行模型合并所得到的场景模型。按照对应的场景物件不同和场景物件的重要程度,可以采用相同或者不同的烘焙方式对多个第一场景模型中的各个部分场景模型进行烘焙,得到各第二场景模型。
例如,目标关卡上显示的场景物体的数量为10个。在目标流关卡烘焙时,可以将4个场景物件进行模型合并,将其烘焙成目标流关卡中的一个场景模型,将3个场景物件进行模型合并,将其烘焙成目标流关卡中的一个场景模型,将剩余的3个场景物件进行模型合并,将其烘焙成目标流关卡中的一个场景模型。烘焙完成之后,得到的场景模型的数量为3个。
步骤S206,在向目标流关卡切换的过程中,控制多个第一场景模型通过渐变抖动过渡到多个第二场景模型。
在目标流关卡加载完成之后,可以进行关卡切换,将目标关卡上显示的场景模型由多个第一场景模型切换到多个第二场景模型。
为了避免模型切换时存在的视觉信息变化过大,可以采用渐变抖动的方式进行不同模型之间的过渡。对于目标关卡,目标客户端可以控制目标关卡上的LOD模型采用Dither(抖动,例如,渐变抖动)的方式过渡到目标流关卡中对应的模型。
需要说明的是,渐变抖动是指:同时渲染两个模型,一个渲染的像素越来越多,另一个渲染的像素越来越少,从而进行切换过渡,上述渐变抖动可以为LOD Dither。抖动(即抖色,混色)是像素的抖动,指像素增多、减少的过程。
在模型切换时,切换前后的模型精度是不同的,颜色上也会有差别。由于渐变抖动包含了颜色的渐变以及模型精度的变化,通过渐变抖动,可以让两者都做一个渐变,使得整个Level上全部物体可以柔和的从一个模型精度过渡到另一个模型精度(例如,从高配模型过渡到低配模型),而不让用户感受到画面突然变化的视觉感受。
例如,如图3所示,图3中的桶开启了Dither(LOD抖动,抖动的一种示例),在其由一个颜色(例如,绿色)过渡到另一个颜色(例如,黄色)时,并不是一下子由(a)过渡到(c),而是有颜色融合的渐变过程(b),这样的过渡更加自然。
可选地,在本实施例中,为了标识一起过渡的第一场景模型,可以在模型材质增加目标材质属性(例如,StreamingLevelDitherLOD),当该属性激活时,使用该模型材质的场景模型会开启渐变抖动(例如,StreamingDitherLOD)的效果。
需要说明的是,本实施例中以终端设备单独执行流关卡切换为例进行说明,对于服务器和客户端共同执行、或者由服务器单独执行目标游戏中的数据计算(客户端仅显示服务器同步来的数据)的方式,本实施例中的模型切换方法同样适用。
通过上述步骤S202至步骤S206,在目标客户端上显示目标关卡的多个第一场景模型,其中,多个第一场景模型中的每个第一场景模型为一个场景物体的LOD模型;加载目标关卡待切换到的目标流关卡,其中,目标流关卡中包含多个第二场景模型,多个第二场景模型中的每个第二场景模型为多个第一场景模型中的部分场景模型进行模型合并所得到的场景模型;在向目标流关卡切换的过程中,控制多个第一场景模型通过渐变抖动过渡到多个第二场景模型,解决了相关技术中的模型切换方式存在由于视觉信息跳转导致的用户视觉体验差的问题,提高了模型切换的平滑度、提升了用户的视觉体验。
作为一种可选的实施例,控制多个第一场景模型通过渐变抖动过渡到多个第二场景模型包括:
S11,在向目标流关卡切换的过渡时间内,调整与目标关卡对应的抖动参数,将调整的抖动参数传入到渲染参数中;
S12,按照渲染参数同时渲染多个第一场景模型和多个第二场景模型,以控制多个第一场景模型渲染的像素点逐渐减少,多个第二场景模型渲染的像素点逐渐增加。
在实时渲染时,在异步加载好LOD关卡(目标流关卡)之后,目标客户端可以在流关卡的过渡时间内,实时调整与目标关卡对应的抖动参数,并将抖动参数作为参数传入每帧的渲染参数中,从而可以使用该渲染参数同时渲染多个第一场景模型和多个第二场景模型。
抖动参数(DitherFactor)可以与过渡时间关联,可以用于描述如何同时渲染不同的模型。抖动参数可以根据过渡时间进行调整,也就是,在过渡时间内的不同时间点,抖动参数可以存在区别,以便控制多个第一场景模型渲染的像素点逐渐减少,多个第二场景模型渲染的像素点逐渐增加
例如,在异步加载好LOD关卡之后,目标客户端可以通过时间过渡调整设置整个关卡的DitherFactor(抖动参数),将两个关卡(目标关卡和目标流关卡)所有的物体(多个第一场景模型和多个第二场景模型)通过动态渲染的方法同时渲染,并将DitherFactor作为参数在渲染每帧时传入所有物体的shader参数(渲染参数)里。
通过本实施例,通过将DitherFactor作为参数每帧传入所有物体的渲染参数里,并同时渲染两个关卡内的所有物体,可以保证模型渲染的准确性,提高流关卡过渡的流畅性。
作为一种可选的实施例,在按照渲染参数同时渲染多个第一场景模型和多个第二场景模型之前,上述方法还包括:
S21,获取多个第一场景模型的第一深度图信息和多个第二场景模型的第二深度图信息;
S22,按照第一深度图信息过滤多个第一场景模型中处于目标深度范围以外的物体像素,得到多个第一目标模型;
S23,按照第二深度图信息过滤多个第二场景模型中处于目标深度范围以外的物体像素,得到多个第二目标模型;
其中,多个第一目标模型和多个第二目标模型为待渲染的物体模型。
为了在如移动终端平台(例如,手机平台)等目标平台上节省效率,可以采用stencil(模板)的方式过滤不同模型的像素,例如,可以在渲染时通过深度图信息过滤掉不需要渲染的物体像素。
对于多个第一场景模型,目标客户端可以获取多个第一场景模型的第一深度图信息。对于一个第一场景模型,第一深度图信息可以用于表示该第一场景模型对应的贴图中的各个像素点的深度。
按照第一深度图信息,目标客户端可以过滤多个第一场景模型中处于目标深度范围以外的物体像素,这些物体像素是不需要渲染的物体像素,从而可以得到多个第一目标模型,得到的多个第一目标模型是待渲染的物体模型。
对于多个第二场景模型,目标客户端可以获取第二初始模型的第二深度图信息。对于一个第二图场景模型,第二深度图信息可以用于表示该第二场景模型对应的贴图中的各个像素点的深度。
按照第二深度图信息,目标客户端可以过滤多个第一场景模型中处于目标深度范围以外的物体像素,这些物体像素是不需要渲染的物体像素,从而可以得到多个第二目标模型,得到的多个第二目标模型是待渲染的物体模型。
通过本实施例,通过在渲染时通过深度图信息过滤掉不需要渲染的物体像素,可以节省渲染的资源消耗,提高模型渲染的效率。
作为一种可选的实施例,按照渲染参数同时渲染多个第一场景模型和多个第二场景模型包括:
S31,按照渲染参数,从多个第一目标模型和多个第二目标模型中选取出与各个像素点所对应的待渲染模型;
S32,在各个像素点上渲染为各个像素点选取的待渲染模型。
在渲染每个图像帧时,目标客户端可以按照当前的渲染参数(包括当前的抖动参数),从多个第一目标模型和多个第二目标模型中选取出与各个像素点所对应的待渲染模型。
在由多个第一场景模型向多个第二场景模型过渡的过渡时间内,渲染参数会随着时间进行调整。在渲染不同的帧时,同一像素点所渲染的模型可以是不同的。
可选地,在进行渲染时,也可以混合不同模型在同一像素点上的颜色。通过调整抖动参数,可以调整各个像素点的混合方式。还可以采用其他的渐变抖动方式,实现模型过渡,本实施例中对此不作限定。
通过本实施例,按照渲染参数确定各个像素点的渲染方式,可以提高模型过渡的流畅性。
作为一种可选的实施例,在加载目标关卡待切换到的目标流关卡之前,上述方法还包括:
S41,检测到目标关卡与目标虚拟角色之间的距离由小于目标距离阈值转换为大于或者等于目标距离阈值,其中,目标虚拟角色为通过目标客户端所控制的虚拟角色。
如果关卡与目标人物(例如,目标虚拟角色)之间的距离超过设定的距离(目标距离阈值,该距离可配置),可以认为远处的景色(关卡上的景色)没有必要使用高精度的模型,此时,可以将高精度的模型替换为低精度的模型,而不会太影响整体显示效果。
例如,如果目标关卡与目标虚拟角色(目标人物)之间的距离超过目标距离阈值,可以认为目标关卡中的场景模型没有必要使用高精度的模型,从而触发执行关卡切换。
目标客户端可以检测目标关卡与目标虚拟角色之间的距离,并在检测到目标关卡与目标虚拟角色之间的距离由小于目标距离阈值转换为大于或者等于目标距离阈值的情况下,确定需要执行关卡切换,将目标关卡切换到目标流关卡。上述检测操作可以是实时执行的,也可以是周期执行的,本实施例中对此不作限定。
需要说明的是,如果目标关卡与目标虚拟角色之间的距离由大于或者等于目标距离阈值转换为小于目标距离阈值,目标客户端可以将目标流关卡重新切换到目标关卡,切换的过程是上述过程的逆过程,本实施例中对此不作赘述。
还需要说明的是,如果目标关卡与目标虚拟角色之间的距离进一步增大,可以再次进行流关卡切换,由目标流关卡切换到另一个流关卡,该流关卡上的场景模型的模型精度可以低于目标流关卡上的场景模型的模型精度。
通过本实施例,按照关卡与人物的距离控制进行流关卡的切换,可以提高流关卡切换的灵活性。
作为一种可选的实施例,在加载目标关卡待切换到的目标流关卡之前,上述方法还包括:
S51,将多个第二场景模型中的每个第二场景模型的模型材质配置为目标模型材质,其中,目标模型材质具有激活的目标材质属性,目标材质属性用于指示在流关卡切换时通过渐变抖动进行模型过渡。
在本实施例中,可以在模型材质中增加新的材质属性,即,目标材质属性(StreamingLevelDitherLOD的属性),当该属性激活时,使用该材质的模型会开启StreamingDitherLOD的效果。目标模型材质可以是激活了目标材质属性的模型材质。
目标关卡上的多个第一场景模型可以是使用目标模型材质的场景模型,目标流关卡上的多个第二场景模型中的每个第二场景模型也可以是使用目标模型材质的场景模型。使用目标模型材质的场景模型开启了StreamingDitherLOD的效果,从而可以在流关卡切换时采用渐变抖动的方式进行模型过渡。
可续地,在本实施例中,服务器可以将第二场景模型的模型材质配置为目标模型材质,目标模型材质是具有激活的目标材质属性的模型材质,目标材质属性可以用于指示在流关卡切换时采用渐变抖动进行LOD模型过渡。
例如,对于切换后的流关卡中的所有物体,可以继承并开启上述StreamingLevelLODDither的材质。
通过本实施例,通过配置切换后的流关卡中的所有物体继承并开启StreamingLevelLODDither的材质,可以保证流关卡切换的流畅性。
在加载目标关卡待切换到的目标流关卡之前,可以由服务器对多个第一场景模型进行烘焙,得到目标流关卡。对于多个第一场景模型,按照不同的模型需求,可以采用不同的烘焙方式(例如,至少一种烘焙方式)进行模型烘焙。不同的烘焙方式可以是顺序(例如,指定顺序,又例如,模型位置在烘焙方向上的顺序)执行的,也可以是并行执行的,本实施例中对此不作限定。
作为一种可选的实施方式,在加载目标关卡待切换到的目标流关卡之前,上述方法还包括:
S61,通过合并多个第一场景模型中的多个第一子场景模型的模型顶点、模型贴图和模型材质,将多个第一子场景模型烘焙成一个场景模型,得到多个第二场景模型的一个场景模型。
多个第一场景模型中的多个第一子场景模型可以是目标关卡中的标志性物件,例如,标志性建筑,在进行关卡切换时需要着重渲染(需要提高模型精度)。
对于多个第一子场景模型,服务器可以合并其模型顶点、模型贴图和模型材质(或者,至少合并模型贴图),将多个第一子场景模型烘焙成一个新的模型(新的资源),该新的模型可以是目标流关卡中的一个场景模型。
需要说明的是,采用上述合并模型、贴图和材质进行烘焙的模型可以是一组或者是多组模型,每组模型均可以采用上述方式进行烘焙。对应地,合并烘焙得到的场景模型的数量可以为一个或多个。
还需要说明的是,采用合并模型、贴图、材质进行烘焙,烘焙得到的场景模型不仅包含了模型表面的信息,也包含了模型内部的信息,其模型精度可以与最低精度的LOD模型的模型精度相当。
作为另一种可选的实施方式,在加载目标关卡待切换到的目标流关卡之前,上述方法还包括:
S62,通过对多个第一场景模型中的多个第二子场景模型进行距离场采样,将多个第二子场景模型烘焙成一个场景模型,得到多个第二场景模型的一个场景模型。
多个第一场景模型中的多个第二子场景模型可以是目标关卡中的非标志性建筑,无需着重烘焙。对于多个第二子场景模型,服务器可以采用距离场采样算法进行烘焙。
需要说明的是,采用距离场采样算法进行烘焙,烘焙得到的场景模型仅包含了模型表面的信息(采样仅是对模型表面的采样),其模型精度低于最低精度的LOD模型的模型精度。
作为又一种可选的实施方式,在加载目标关卡待切换到的目标流关卡之前,上述方法还包括:
S63,按照目标采样精度对多个第一场景模型的多个第三子场景模型进行随机采样,得到多个待烘焙子模型,其中,多个第三子场景模型为相同的模型;
S64,按照一个批次提交多个待烘焙子模型,将多个待烘焙子模型烘焙成一个场景模型,得到多个第二场景模型的一个场景模型,其中,按照一个批次提交的顶点数为一个第三子场景模型的顶点数。
多个第一场景模型中的多个第三子场景模型可以对应于大量的相同物体(例如,草地,树木)。如果目标关卡与目标虚拟角色之间的距离较远时,可以无需渲染所有的多个第三子场景模型。服务器可以按照目标采样精度对多个第三子场景模型进行随机采样,得到多个待烘焙子模型。
例如,一片草地有1000颗草,正常烘焙后还是1000颗草。为了渲染效率,可以在烘焙过程中,通过随机值仅烘焙其中的10%、或者50%的草,降低了烘焙后的草地和树林的密度。
对于多个待烘焙子模型,服务器可以按照一个批次提交,按照一个批次提交的顶点数为一个第三子场景模型的顶点数,从而将多个待烘焙子模型烘焙成一个场景模型,得到的场景模型可以是目标流关卡中的一个场景模型。
例如,可以将树林、草等通过Instance(实例化)的方式烘焙进生成的StreamingLevel中。Instance是通过一个批次,渲染大量的相同物体的方式。如果只把相同物体烘焙成一个模型,假如一个模型有100个顶点,一个instance里包含10个模型,那么,烘焙后的模型就有1000个顶点。如果烘焙成instance,同样还是提交一个批次,但是只需要提交100个顶点的数据。
通过本实施例,按照不同的模型需求采用不同的方式对场景模型进行烘焙,可以提高模型烘焙的灵活性,提升模型的渲染性能。
作为一种可选的实施例,在控制多个第一场景模型通过渐变抖动过渡到多个第二场景模型之后,上述方法还包括:
S71,在目标流关卡中的全部物体模型均已显示的情况下,卸载目标关卡中的全部物体模型。
当切换流关卡时,在异步加载好LOD关卡(目标流关卡)之后,目标客户端可以先不卸载当前显示的关卡。当过渡时间结束,FadeIn的关卡物体(例如,目标流关卡上的场景物体)全部显示出来以后,将FadeOut的关卡物体(例如,目标关卡上的场景)全部卸载掉。
可选地,在本实施例中,如果目标流关卡中的全部物体模型均已显示出来,目标客户端可以卸载目标关卡中的全部物体模型。
通过本实施例,在FadeIn的关卡物体全部显示出来以后,将FadeOut的关卡物体全部卸载掉,可以减少模型的内存占用。
需要说明的是,在本实施例中,由服务器执行模型的烘焙过程、终端执行模型的渲染过程为例说明上述模型切换方法,对于其他的烘焙和渲染的执行方案,本实施例中的模型切换方法同样适用。
下面结合可选示例对本申请实施例中的模型切换方法进行解释说明。在本示例中,针对流式加载关卡的方式做LOD Dither(抖动的一种示例),保证切换LOD时,整个Level上的所有物体都可以柔和的从高配模型过渡到低配模型,而不让用户感受到画面是突然变化的。
如图4所示,本可选示例中的模型切换方法的流程可以包括以下步骤:
步骤S402,烘焙关卡中的物体,继承开启StreamingLevelDitherLOD的材质。
模型材质可以增加StreamingLevelDitherLOD的属性(目标材质属性),当该属性激活时,使用该材质的模型会开启StreamingDitherLOD的效果。可以通过StreamingLevelLOD烘焙整个关卡的物体,并继承开启StreamingLevelLODDither的材质,切换关卡时,所有开启了材质属性的物体都会有抖动效果。
步骤S404,在切换流关卡时,控制整个Level上的所有物体从高配模型过渡到低配模型。
在实时渲染的过程中,当切换流关卡时,在异步加载好LOD关卡之后,客户端可以先不卸载当前显示的关卡,而是通过时间过渡调整设置整个关卡的DitherFactor,将两个关卡所有的物体通过动态渲染的方法同时渲染,并将DitherFactor作为参数每帧传入所有物体的shader参数里。可选地,在手机平台上,为了提高效率,可以采用stencil的方式过滤不同模型的像素。
当过渡时间结束,FadeIn的关卡物体全部显示出来以后,客户端可以将FadeOut的关卡物体全部卸载掉。
在进行流关卡切换时,整个地块的地形、地形上的房子、树木、草地等都在进行Dither的过渡。在初始的模型和最终的模型有色差和形变的情况下,经过Dither的过渡会表现的更柔和。
需要说明的是,本可选示例中所提供的模型切换方法可以是HLOD(例如,合并模型、贴图和材质的方式)与Streaming LOD结合使用的方案,可以是StreamingLevelLODDither的多模型对单模型过渡的解决方案,是StreamingLevelLOD Dither的关卡对关卡过渡的解决方案,也是Streaming Level LOD Dither的Instance(实例)对Instance的过渡解决方案。
通过本示例,可以保证切换LOD时,整个Level上的所有物体都可以柔和的从高配模型过渡到低配模型,使得场景过渡更加自然。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的又一个方面,提供了一种用于实施上述模型切换方法的模型切换装置。图5是根据本申请实施例的一种可选的模型切换装置的结构框图,如图5所示,该装置可以包括:
显示单元502,用于在目标客户端上显示目标关卡的多个第一场景模型,其中,多个第一场景模型中的每个第一场景模型为一个场景物体的LOD模型;
加载单元504,与显示单元502相连,用于加载目标关卡待切换到的目标流关卡,其中,目标流关卡中包含多个第二场景模型,多个第二场景模型中的每个第二场景模型为多个第一场景模型中的部分场景模型进行模型合并所得到的场景模型;
控制单元506,与加载单元504相连,用于在向目标流关卡切换的过程中,控制多个第一场景模型通过渐变抖动过渡到多个第二场景模型。
需要说明的是,该实施例中的显示单元502可以用于执行上述步骤S202,该实施例中的加载单元504可以用于执行上述步骤S204,该实施例中的控制单元506可以用于执行上述步骤S206。
通过上述模块,在目标客户端上显示目标关卡的多个第一场景模型,其中,多个第一场景模型中的每个第一场景模型为一个场景物体的LOD模型;加载目标关卡待切换到的目标流关卡,其中,目标流关卡中包含多个第二场景模型,多个第二场景模型中的每个第二场景模型为多个第一场景模型中的部分场景模型进行模型合并所得到的场景模型;在向目标流关卡切换的过程中,控制多个第一场景模型通过渐变抖动过渡到多个第二场景模型,解决了相关技术中的模型切换方式存在由于视觉信息跳转导致的用户视觉体验差的问题,提高了模型切换的平滑度,提升了用户的视觉体验。
作为一种可选的实施例,控制单元506包括:
调整模块,用于在向目标流关卡切换的过渡时间内,调整与目标关卡对应的抖动参数,将调整的抖动参数传入到渲染参数中;
渲染模块,用于按照渲染参数同时渲染多个第一场景模型和多个第二场景模型,以控制多个第一场景模型渲染的像素点逐渐减少,多个第二场景模型渲染的像素点逐渐增加。
作为一种可选的实施例,上述装置还包括:
获取单元,用于在按照渲染参数同时渲染多个第一场景模型和多个第二场景模型之前,获取多个第一场景模型的第一深度图信息和多个第二场景模型的第二深度图信息;
第一过滤单元,用于按照第一深度图信息过滤多个第一场景模型中处于目标深度范围以外的物体像素,得到多个第一目标模型;
第二过滤单元,用于按照第二深度图信息过滤多个第二场景模型中处于目标深度范围以外的物体像素,得到多个第二目标模型;
其中,多个第一目标模型和多个第二目标模型为待渲染的物体模型。
作为一种可选的实施例,渲染模块包括:
选取子模块,用于按照渲染参数,从多个第一目标模型和多个第二目标模型中选取出与各个像素点所对应的待渲染模型;
渲染子模块,用于在各个像素点上渲染为各个像素点选取的待渲染模型。
作为一种可选的实施例,上述装置还包括:
检测单元,用于在加载目标关卡待切换到的目标流关卡之前,检测到目标关卡与目标虚拟角色之间的距离由小于目标距离阈值转换为大于或者等于目标距离阈值,其中,目标虚拟角色为通过目标客户端所控制的虚拟角色。
作为一种可选的实施例,上述装置还包括:
配置单元,用于在加载目标关卡待切换到的目标流关卡之前,将多个第二场景模型中的每个第二场景模型的模型材质配置为目标模型材质,其中,目标模型材质具有激活的目标材质属性,目标材质属性用于指示在流关卡切换时通过渐变抖动进行模型过渡。
作为一种可选的实施例,上述装置还包括以下至少之一:
第一烘焙单元,用于在加载目标关卡待切换到的目标流关卡之前,通过合并多个第一场景模型中的多个第一子场景模型的模型顶点、模型贴图和模型材质,将多个第一子场景模型烘焙成一个场景模型,得到多个第二场景模型的一个场景模型;
第二烘焙单元,用于通过对多个第一场景模型中的多个第二子场景模型进行距离场采样,将多个第二子场景模型烘焙成一个场景模型,得到多个第二场景模型的一个场景模型;
采样单元,用于按照目标采样精度对多个第一场景模型的多个第三子场景模型进行随机采样,得到多个待烘焙子模型,其中,多个第三子场景模型为相同的模型;第三烘焙单元,用于按照一个批次提交多个待烘焙子模型,将多个待烘焙子模型烘焙成一个场景模型,得到多个第二场景模型的一个场景模型,其中,按照一个批次提交的顶点数为一个第三子场景模型的顶点数。
作为一种可选的实施例,上述装置还包括:
卸载单元,用于在控制多个第一场景模型通过渐变抖动过渡到多个第二场景模型之后,在目标流关卡中的全部物体模型均已显示的情况下,卸载目标关卡中的全部物体模型。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的又一个方面,还提供了一种用于实施上述模型切换方法的电子设备,该电子设备可以是服务器、终端、或者其组合。
图6是根据本申请实施例的一种可选的电子设备的结构框图,如图6所示,包括处理器602、通信接口604、存储器606和通信总线608,其中,处理器602、通信接口604和存储器606通过通信总线608完成相互间的通信,其中,
存储器606,用于存储计算机程序;
处理器602,用于执行存储器606上所存放的计算机程序时,实现如下步骤:
S1,在目标客户端上显示目标关卡的多个第一场景模型,其中,多个第一场景模型中的每个第一场景模型为一个场景物体的LOD模型;
S2,加载目标关卡待切换到的目标流关卡,其中,目标流关卡中包含多个第二场景模型,多个第二场景模型中的每个第二场景模型为多个第一场景模型中的部分场景模型进行模型合并所得到的场景模型;
S3,在向目标流关卡切换的过程中,控制多个第一场景模型通过渐变抖动过渡到多个第二场景模型。
可选地,在本实施例中,上述的通信总线可以是PCI (Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA (Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
作为一种示例,上述存储器606可以但不限于包括上述模型切换装置中的显示单元502、加载单元504以及控制单元506。此外,还可以包括但不限于上述模型切换装置中的其他模块,本示例中不再赘述。
上述处理器可以是通用处理器,可以包含但不限于:CPU、NP(Network Processor,网络处理器)等;还可以是DSP (Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA (Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图6所示的结构仅为示意,实施上述模型切换方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图6其并不对上述电子设备的结构造成限定。例如,终端设备还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示的不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行本申请实施例中上述任一项模型切换方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,在目标客户端上显示目标关卡的多个第一场景模型,其中,多个第一场景模型中的每个第一场景模型为一个场景物体的LOD模型;
S2,加载目标关卡待切换到的目标流关卡,其中,目标流关卡中包含多个第二场景模型,多个第二场景模型中的每个第二场景模型为多个第一场景模型中的部分场景模型进行模型合并所得到的场景模型;
S3,在向目标流关卡切换的过程中,控制多个第一场景模型通过渐变抖动过渡到多个第二场景模型。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种模型切换方法,其特征在于,包括:
在目标客户端上显示目标关卡的多个第一场景模型,其中,所述多个第一场景模型中的每个第一场景模型为一个场景物体的多细节层次LOD模型;
将所述目标关卡待切换到的目标流关卡加载到所述目标客户端中,其中,所述目标流关卡是由服务器烘焙好的多个第二场景模型组成、或者由服务器烘焙好的多个第二场景模型结合除了所述多个第二场景模型以外的其他信息组成的,烘焙好的所述目标流关卡保存在所述服务器中,所述多个第二场景模型中的每个第二场景模型为所述多个第一场景模型中的部分场景模型进行模型合并所得到的场景模型,所述多个第二场景模型包含由所述多个第一场景模型中的多个第一子场景模型通过合并模型顶点、模型贴图和模型材质所烘焙成的场景模型,所述多个第一子场景模型为所述目标关卡中的标志性物件;
在向所述目标流关卡切换的过程中,通过所述目标客户端控制所述多个第一场景模型通过渐变抖动过渡到所述多个第二场景模型;
其中,控制所述多个第一场景模型通过渐变抖动过渡到所述多个第二场景模型包括:
在向所述目标流关卡切换的过渡时间内,调整与目标关卡对应的抖动参数,将调整的所述抖动参数传入到渲染参数中;
按照所述渲染参数同时渲染所述多个第一场景模型和所述多个第二场景模型,以控制所述多个第一场景模型渲染的像素点逐渐减少,所述多个第二场景模型渲染的像素点逐渐增加。
2.根据权利要求1所述的方法,其特征在于,在按照所述渲染参数同时渲染所述多个第一场景模型和所述多个第二场景模型之前,所述方法还包括:
获取所述多个第一场景模型的第一深度图信息和所述多个第二场景模型的第二深度图信息;
按照所述第一深度图信息过滤所述多个第一场景模型中处于目标深度范围以外的物体像素,得到多个第一目标模型;
按照所述第二深度图信息过滤所述多个第二场景模型中处于所述目标深度范围以外的物体像素,得到多个第二目标模型;
其中,所述多个第一目标模型和所述多个第二目标模型为待渲染的物体模型。
3.根据权利要求2所述的方法,其特征在于,按照所述渲染参数同时渲染所述多个第一场景模型和所述多个第二场景模型包括:
按照所述渲染参数,从所述多个第一目标模型和所述多个第二目标模型中选取出与各个像素点所对应的待渲染模型;
在所述各个像素点上渲染为所述各个像素点选取的所述待渲染模型。
4.根据权利要求1所述的方法,其特征在于,在加载所述目标关卡待切换到的所述目标流关卡之前,所述方法还包括:
检测到所述目标关卡与目标虚拟角色之间的距离由小于目标距离阈值转换为大于或者等于所述目标距离阈值,其中,所述目标虚拟角色为通过所述目标客户端所控制的虚拟角色。
5.根据权利要求1所述的方法,其特征在于,在加载所述目标关卡待切换到的所述目标流关卡之前,所述方法还包括:
将所述多个第二场景模型中的每个第二场景模型的模型材质配置为目标模型材质,其中,所述目标模型材质具有激活的目标材质属性,所述目标材质属性用于指示在流关卡切换时通过渐变抖动进行模型过渡。
6.根据权利要求1所述的方法,其特征在于,在加载所述目标关卡待切换到的所述目标流关卡之前,所述方法还包括:
通过合并所述多个第一子场景模型的模型顶点、模型贴图和模型材质,将所述多个第一子场景模型烘焙成一个场景模型,得到所述多个第二场景模型的一个场景模型。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在所述控制所述多个第一场景模型通过渐变抖动过渡到所述多个第二场景模型之后,所述方法还包括:
在所述目标流关卡中的全部物体模型均已显示的情况下,卸载所述目标关卡中的全部物体模型。
8.一种模型切换装置,其特征在于,包括:
显示单元,用于在目标客户端上显示目标关卡的多个第一场景模型,其中,所述多个第一场景模型中的每个第一场景模型为一个场景物体的多细节层次LOD模型;
加载单元,用于将所述目标关卡待切换到的目标流关卡加载到所述目标客户端中,其中,所述目标流关卡中是由服务器烘焙好的多个第二场景模型组成的、或者由服务器烘焙好的多个第二场景模型结合除了所述多个第二场景模型以外的其他信息组成的,烘焙好的所述目标流关卡保存在所述服务器中,所述多个第二场景模型中的每个第二场景模型为所述多个第一场景模型中的部分场景模型进行模型合并所得到的场景模型,所述多个第二场景模型包含由所述多个第一场景模型中的多个第一子场景模型通过合并模型顶点、模型贴图和模型材质所烘焙成的场景模型,所述多个第一子场景模型为所述目标关卡中的标志性物件;
控制单元,用于在向所述目标流关卡切换的过程中,通过所述目标客户端控制所述多个第一场景模型通过渐变抖动过渡到所述多个第二场景模型;
其中,所述控制单元包括:调整模块,用于在向所述目标流关卡切换的过渡时间内,调整与目标关卡对应的抖动参数,将调整的所述抖动参数传入到渲染参数中;渲染模块,用于按照所述渲染参数同时渲染所述多个第一场景模型和所述多个第二场景模型,以控制所述多个第一场景模型渲染的像素点逐渐减少,所述多个第二场景模型渲染的像素点逐渐增加。
9.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,其特征在于,
所述存储器,用于存储计算机程序;
所述处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行权利要求1至7中任一项所述的方法步骤。
10.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7中任一项中所述的方法步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011487643.5A CN112231020B (zh) | 2020-12-16 | 2020-12-16 | 模型切换方法和装置、电子设备和存储介质 |
PCT/CN2021/121447 WO2022127275A1 (zh) | 2020-12-16 | 2021-09-28 | 模型切换方法和装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011487643.5A CN112231020B (zh) | 2020-12-16 | 2020-12-16 | 模型切换方法和装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231020A CN112231020A (zh) | 2021-01-15 |
CN112231020B true CN112231020B (zh) | 2021-04-20 |
Family
ID=74124099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011487643.5A Active CN112231020B (zh) | 2020-12-16 | 2020-12-16 | 模型切换方法和装置、电子设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112231020B (zh) |
WO (1) | WO2022127275A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231020B (zh) * | 2020-12-16 | 2021-04-20 | 成都完美时空网络技术有限公司 | 模型切换方法和装置、电子设备和存储介质 |
CN115661417B (zh) * | 2022-12-13 | 2023-03-31 | 深圳奥雅设计股份有限公司 | 一种元宇宙空间中虚拟世界场景生成方法及*** |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6331856B1 (en) * | 1995-11-22 | 2001-12-18 | Nintendo Co., Ltd. | Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing |
US6191793B1 (en) * | 1998-04-01 | 2001-02-20 | Real 3D, Inc. | Method and apparatus for texture level of detail dithering |
US6778181B1 (en) * | 2000-12-07 | 2004-08-17 | Nvidia Corporation | Graphics processing system having a virtual texturing array |
CN101169871A (zh) * | 2007-12-03 | 2008-04-30 | 北京航空航天大学 | 面向大规模静态场景实时渲染的hlod预处理方法 |
US9472019B2 (en) * | 2010-06-30 | 2016-10-18 | Primal Space Systems, Inc. | System and method of from-region visibility determination and delta-PVS based content streaming using conservative linearized umbral event surfaces |
CN106780686B (zh) * | 2015-11-20 | 2020-07-10 | 网易(杭州)网络有限公司 | 一种3d模型的合并渲染***及方法、终端 |
CN106251185A (zh) * | 2016-08-24 | 2016-12-21 | 四川见山科技有限责任公司 | 基于ue4引擎的vr房产展示与交互*** |
CN108389245B (zh) * | 2018-02-13 | 2022-11-04 | 鲸彩在线科技(大连)有限公司 | 动画场景的渲染方法、装置、电子设备和可读存储介质 |
CN109285211B (zh) * | 2018-10-29 | 2023-03-31 | Oppo广东移动通信有限公司 | 画面渲染方法、装置、终端及存储介质 |
CN109960887B (zh) * | 2019-04-01 | 2023-10-24 | 网易(杭州)网络有限公司 | 基于lod的模型制作方法及装置、存储介质及电子设备 |
CN110738721B (zh) * | 2019-10-12 | 2023-09-01 | 四川航天神坤科技有限公司 | 基于视频几何分析的三维场景渲染加速方法及*** |
CN111105491B (zh) * | 2019-11-25 | 2020-12-08 | 腾讯科技(深圳)有限公司 | 场景渲染方法、装置、计算机可读存储介质和计算机设备 |
CN111729305B (zh) * | 2020-06-23 | 2024-02-09 | 网易(杭州)网络有限公司 | 地图场景预加载方法、模型训练方法、设备及存储介质 |
CN112231020B (zh) * | 2020-12-16 | 2021-04-20 | 成都完美时空网络技术有限公司 | 模型切换方法和装置、电子设备和存储介质 |
-
2020
- 2020-12-16 CN CN202011487643.5A patent/CN112231020B/zh active Active
-
2021
- 2021-09-28 WO PCT/CN2021/121447 patent/WO2022127275A1/zh active Application Filing
Non-Patent Citations (2)
Title |
---|
"《Exploring in UE4》流关卡与无缝地图切换[经验总结]";Jerish;《https://zhuanlan.zhihu.com/p/34397446》;20180313;第1-21页 * |
"可编程渲染管线10 多细节层次(LOD)";贤愚;《https://blog.csdn.net/qq_38275140/article/details/94589849》;20190708;第1-24页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2022127275A1 (zh) | 2022-06-23 |
CN112231020A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107358649B (zh) | 地形文件的处理方法和装置 | |
JP7112516B2 (ja) | 画像表示方法及びその装置、記憶媒体、電子装置、並びにコンピュータプログラム | |
CN109771951B (zh) | 游戏地图生成的方法、装置、存储介质和电子设备 | |
CN109903366A (zh) | 虚拟模型的渲染方法及装置、存储介质及电子设备 | |
CN112241993B (zh) | 游戏图像处理方法、装置及电子设备 | |
CN111111167B (zh) | 游戏场景中的音效播放方法和装置、电子装置 | |
CN112231020B (zh) | 模型切换方法和装置、电子设备和存储介质 | |
CN114677467B (zh) | 地形图像渲染方法、装置、设备及计算机可读存储介质 | |
CN112675545B (zh) | 地表仿真画面的显示方法和装置、存储介质及电子设备 | |
CN108830923B (zh) | 图像渲染方法、装置及存储介质 | |
CN110333924A (zh) | 一种图像渐变调整方法、装置、设备及存储介质 | |
CN110047123A (zh) | 一种地图渲染方法、装置、存储介质及计算机程序产品 | |
CN106898040A (zh) | 虚拟资源对象渲染方法和装置 | |
CN113952720A (zh) | 游戏场景渲染方法、装置、电子设备及存储介质 | |
CN112587921A (zh) | 模型处理方法和装置、电子设备和存储介质 | |
CN105957133B (zh) | 一种加载贴图的方法和装置 | |
CN113470092A (zh) | 地形的渲染方法和装置、电子设备和存储介质 | |
CN117456079A (zh) | 场景渲染方法、装置、设备、存储介质及程序产品 | |
CN111681317B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111738967B (zh) | 模型生成方法和装置、存储介质和电子装置 | |
US7256800B2 (en) | Vertex interaction | |
US20240193864A1 (en) | Method for 3d visualization of sensor data | |
CN114677482B (zh) | 地形构建方法及设备 | |
CN111729303B (zh) | 一种大地图烘焙切割方法及恢复方法 | |
CN115888103A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |