CN117398685A - 虚拟场景构建方法、装置、电子设备及存储介质 - Google Patents

虚拟场景构建方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117398685A
CN117398685A CN202311437770.8A CN202311437770A CN117398685A CN 117398685 A CN117398685 A CN 117398685A CN 202311437770 A CN202311437770 A CN 202311437770A CN 117398685 A CN117398685 A CN 117398685A
Authority
CN
China
Prior art keywords
scene
path
module
scene module
intersection
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
Application number
CN202311437770.8A
Other languages
English (en)
Inventor
张同强
黄茂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202311437770.8A priority Critical patent/CN117398685A/zh
Publication of CN117398685A publication Critical patent/CN117398685A/zh
Pending legal-status Critical Current

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6009Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供一种虚拟场景构建方法、装置、电子设备及存储介质。该方法包括:根据预先获取的单位像素模块拼接得到多个场景模块平面图;根据场景模块平面图中的场景信息对场景模块平面图执行3D化操作以构建得到与多个场景模块平面图对应的多个场景模块;其中,每个场景模块,至少包括:路径;确定每个场景模块中路径所对应的路径信息;获取场景需求参数,并根据场景需求参数将路径信息相对应的场景模块进行拼接以构建目标虚拟场景。本申请所提供的方法通过将目标虚拟场景划分为多个场景模块来分别编辑,不仅降低了编辑成本,并且可以交由多个开发者来分别编辑每个场景模块,使得在一定程度上缩短了编辑周期。

Description

虚拟场景构建方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种虚拟场景构建方法、装置、电子设备及存储介质。
背景技术
虚拟场景是玩家进行游戏体验的虚拟空间,游戏开发者在开发阶段会预先制作好游戏场景,当玩家进行实际游戏时,会加载预先制作的场景,供玩家体验。
相关技术中,虚拟场景通常是整个场景一起制作,例如逐屏编辑整个场景,且开发者需要根据整个场景通过人工选取的方式,编辑供玩家行走的路径。
但是,相关技术中的场景制作方法会耗费较大的成本且耗时较多,并且当虚拟场景中的某一个区域出现漏洞时,很难精准排查出具体漏洞位置。
发明内容
有鉴于此,本申请的目的在于提出一种虚拟场景构建方法、装置、电子设备及存储介质。
基于上述目的,在第一方面,本申请提供了一种虚拟场景构建方法,所述方法包括:
根据预先获取的单位像素模块拼接得到多个场景模块平面图;
根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块;其中,每个场景模块,至少包括:路径;
确定每个场景模块中所述路径所对应的路径信息;以及,
获取场景需求参数,并根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景。
在第二方面,本申请提供了一种虚拟场景构建装置,所述装置包括:
拼接模块,被配置为根据预先获取的单位像素模块拼接得到多个场景模块平面图;
3D化操作模块,被配置为根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块;其中,每个场景模块,至少包括:路径;
确定模块,被配置为确定每个场景模块中所述路径所对应的路径信息;
构建模块,被配置为获取场景需求参数,并根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景。
在第三方面,本申请提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的虚拟场景构建方法。
在第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如第一方面所述的虚拟场景构建方法。
从上面所述可以看出,本申请提供的一种虚拟场景构建方法、装置、电子设备及存储介质,根据预先获取的单位像素模块拼接得到多个场景模块平面图;根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块;其中,每个场景模块,至少包括:路径;确定每个场景模块中所述路径所对应的路径信息;以及,获取场景需求参数,并根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景。本申请根据单位像素模块拼接得到场景模块平面图,相比于在3D场景中更改场景设计,在场景模块平面图中能够实现对于场景设计的快速更改。而通过将目标虚拟场景划分为多个场景模块来分别编辑,不仅降低了编辑成本,并且可以交由多个开发者来分别编辑每个场景模块,使得在一定程度上缩短了编辑周期。进一步地,通过将不同的场景模块进行拼接,从而得到完整的目标虚拟场景,由于在拼接过程中可以自由选择相互拼接的场景模块,使得整个目标虚拟场景的生成效果更加多样化,能够通过同一组中多个不同的场景模块拼接出不同的目标虚拟场景,使得虚拟场景更加丰富且多元。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了相关技术中自动化生成场景的示意图。
图2示出了本申请实施例所提供的一种虚拟场景构建方法的示例性应用场景示意图。
图3示出了本申请实施例所提供的一种虚拟场景构建方法的示例性流程示意图。
图4示出了根据本申请的实施例中的单位像素模块的示例性示意图。
图5示出了根据本申请的实施例中的场景模块平面图的示例性示意图。
图6示出了根据本申请的实施例中的细化后的场景模块平面图的示例性示意图。
图7(a)示出了根据本申请的实施例中的包含相同路口数量的一种细化后的场景模块平面图的示例性示意图。
图7(b)示出了根据本申请的实施例中的包含相同路口数量的另一种细化后的场景模块平面图的示例性示意图。
图7(c)示出了根据本申请的实施例中的包含相同路口数量的再另一种细化后的场景模块平面图的示例性示意图。
图8示出了根据本申请的实施例中的白盒化场景模块的示例性示意图。
图9示出了根据本申请的实施例中的虚拟资产的示例性示意图。
图10示出了根据本申请的实施例中的场景模块的示例性示意图。
图11示出了根据本申请的实施例中的拼接后的细化后的场景模块平面图的示例性示意图。
图12示出了根据本申请的实施例中的拼接后的白盒化场景模块的示例性示意图。
图13示出了根据本申请的实施例中的拼接后的部分目标虚拟场景的示例性示意图。
图14示出了根据本申请的实施例中的跑测软件的操作界面的示例性示意图。
图15示出了本申请实施例所提供的一种虚拟场景构建装置的示例性结构示意图。
图16示出了本申请实施例所提供的一种电子设备的示例性结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如背景技术部分所述,虚拟场景是玩家进行游戏体验的虚拟空间,游戏开发者在开发阶段会预先制作好游戏场景,当玩家进行实际游戏时,会加载预先制作的场景,供玩家体验。
相关技术中,虚拟场景通常是整个场景一起制作,例如逐屏编辑整个场景,且开发者需要根据整个场景通过人工选取的方式,编辑供玩家行走的路径。
通过发明人的研究发现,该相关技术中,在制作超大型虚拟场景时,例如场景大小为(1000x1000)米的场景,当场景中的虚拟摄像机位于3000米的高空时进行俯瞰,才能够将整个场景进行拍摄。那么,在这样巨大的虚拟场景的编辑过程中,相关技术中需要加载整个场景,并放大其中的一部分,并进行逐屏编辑,甚至会出现由于场景加载资源过多而导致的引擎严重卡顿。这样的场景编辑方式,使用的资源和时间成本很高,且就场景编辑这一步骤,只能够满足单人单线程操作,引擎文件也只能够由一名游戏开发者来进行维护,这就使得虚拟场景的制作需要花费大量成本且制作周期较长。
并且超大型场景经常出现各种bug难以测试到,其消隐模型的设置工作量巨大且在操作上极容易出错,一旦当虚拟场景中的某一个区域出现漏洞时,很难精准排查出具体漏洞位置。
图1示出了相关技术中自动化生成场景的示意图。
通过发明人的研究发现,另一种相关技术中,参考图1,可以利用Houdini(一款三维计算机图形软件)自动化生成场景,其拼接原理多是基础地形起伏和连接层,场景修饰的景观极少,导致最后实现出来的场景还是很空。如果想要画面内容丰富,需要增加成倍数的模块化模型。由于地宫场景类关卡路线大部分都是横平竖直,且路线地形区域平坦,所以自动化生成的场景大都比较比较死板。场景路线缺少变化,场景内部缺少主题设计,缺少氛围变化,达不到移步换景效果。
正因如此,本申请提供的一种虚拟场景构建方法、装置、电子设备及存储介质,根据预先获取的单位像素模块拼接得到多个场景模块平面图;根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块;其中,每个场景模块,至少包括:路径;确定每个场景模块中所述路径所对应的路径信息;以及,获取场景需求参数,并根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景。本申请根据单位像素模块拼接得到场景模块平面图,相比于在3D场景中更改场景设计,在场景模块平面图中能够实现对于场景设计的快速更改。而通过将目标虚拟场景划分为多个场景模块来分别编辑,不仅降低了编辑成本,并且可以交由多个开发者来分别编辑每个场景模块,使得在一定程度上缩短了编辑周期。进一步地,通过将不同的场景模块进行拼接,从而得到完整的目标虚拟场景,由于在拼接过程中可以自由选择相互拼接的场景模块,使得整个目标虚拟场景的生成效果更加多样化,能够通过同一组中多个不同的场景模块拼接出不同的目标虚拟场景,使得虚拟场景更加丰富且多元。
图2示出了本申请实施例所提供的一种虚拟场景构建方法的示例性应用场景示意图。
参考图2,该应用场景中,包括本地终端设备101和服务器102。其中,本地终端设备101和服务器102之间可通过有线或无线的通信网络连接,以实现数据交互。
本地终端设备101可以是靠近用户侧的具有数据传输、多媒体输入/输出功能的电子设备,如,桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、车载电脑、智能可穿戴设备、个人数字助理(personal digital assistant,PDA)或其它能够实现上述功能的电子设备等。该电子设备可以包括处理器和具有触控输入功能显示屏,该显示屏用于呈现图形用户界面,该图形用户界面可以显示音乐游戏界面,该处理器用于处理音乐游戏数据、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一些示例性实施例中,虚拟场景构建方法可以运行于本地终端设备101或者是服务器102。
当虚拟场景构建方法运行于服务器102时,服务器102用于向终端设备的用户提供虚拟场景构建服务,终端设备中安装有与服务器102通信的客户端,用户可以通过客户端指定目标程序。服务器102根据预先获取的单位像素模块拼接得到多个场景模块平面图;根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块;其中,每个场景模块,至少包括:路径;确定每个场景模块中所述路径所对应的路径信息;以及,获取场景需求参数,并根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景。服务器102还可以将目标虚拟场景发送给客户端,客户端向用户展示目标虚拟场景。其中,终端设备可以是前述提到的本地终端设备101。
当虚拟场景构建方法运行于服务器102时,该方法则可以基于云交互系统来实现与执行。
其中,云交互系统包括客户端设备和云游戏服务器。
在一些示例性实施例中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,游戏中移动状态的控制方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用是用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行信息处理的为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
在上述实施例中,以虚拟场景构建方法运行于服务器102为例进行了说明,然而本公开不限于此,在一些示例性实施例中,虚拟场景构建方法还可以运行于本地终端设备101。
本地终端设备101可以包括显示屏和处理器。本地终端设备101中安装有客户端,用户可以通过客户端指定目标程序。处理器根据预先获取的单位像素模块拼接得到多个场景模块平面图;根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块;其中,每个场景模块,至少包括:路径;确定每个场景模块中所述路径所对应的路径信息;以及,获取场景需求参数,并根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景。处理器还可以将目标虚拟场景发送给客户端,客户端通过显示屏向用户展示目标虚拟场景。
在一些示例性实施例中,以游戏为例,本地终端设备101存储有游戏程序并用于呈现游戏画面。本地终端设备101用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备101将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备101可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
在一些示例性实施例中,本公开实施例提供了一种虚拟场景构建方法,通过终端设备提供图形用户界面,其中,终端设备可以是前述提到的本地终端设备101,也可以是前述提到的云交互系统中的客户端设备。
下面结合图2的应用场景,来描述根据本公开示例性实施方式的虚拟场景构建方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
图3示出了本申请实施例所提供的一种虚拟场景构建方法的示例性流程示意图。
参考图3,本申请实施例所提供的一种虚拟场景构建方法,具体包括以下步骤:
S302:根据预先获取的单位像素模块拼接得到多个场景模块平面图。
S304:根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块;其中,每个场景模块,至少包括:路径。
S306:确定每个场景模块中所述路径所对应的路径信息。
S308:获取场景需求参数,并根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景。
在制作虚拟游戏场景,例如超大型地下城场景时,首先需要对场景中的世界观、故事原型、主要人物传记、环境地域、时间段、地图面积以及部分特殊需要进行设置。然后,再进入到具体虚拟游戏场景的构建工作中,本申请中的重点之一就是将庞大的虚拟场景划分为多个模块,利用例如“拼图”的方式将多个模块进行拼接,进而拼接出完整的虚拟场景,显然会更加地省时省力,且拼接的方式并不唯一,也就丰富了整个虚拟场景的构建效果,例如拥有A、B、C三个模块,在满足拼接需求以及拼接规则的前提下,可以选择拼接为“一字型”,例如A-B-C,也可以拼接为B-A-C,当然,还可以拼接为“L型”等其他形状,这就是模块化的拼接过程带来的好处。
图4示出了根据本申请的实施例中的单位像素模块的示例性示意图。
在一些实施例中,根据世界观、故事原型、主要人物传记、环境地域、时间段、地图面积以及部分特殊需要可以确定场景中可能会出现的区域类型,这些可以由策划人员或者游戏开发者来自定义设置。具体地,我们可以预先获取到例如图4中的单位像素模块,其中可以包括由不同颜色进行区分的多个区域,例如出生区域、连接通道、危险区域、逃脱区域、富矿区域、隐蔽区域以及争夺区域等不同类型的区域。其中,可以将单位像素模块设置为50x50的正方形模组,便于进行拼接。
进一步地,一个虚拟场景中通常会包含供玩家行走的路径区域,以及用于放置建筑、草木以及湖泊等环境因素的非路径区域,那么,其中单位像素模块中可以包括有第一类像素以及第二类像素。其中,第一类像素可以例如图4中第一行中的多个单位像素模块所示出的,用于表征路径区域,而例如图4中第二行中的多个单位像素模块所示出的,用于表征非路径区域的部分则可以为第二类像素。将二者同时设置在同一平面图中可以得到第三行所示出的多个单位像素模块,也即在平面图中同时出现路径区域和非路径区域。
具体地,可以根据预先获取到的拼接需求信息确定在多个场景模块平面图中的路径面积、路径位置、非路径面积以及非路径位置,进而可以在预设尺寸的多个初始平面图中的路径位置拼接第一类像素以得到与路径面积对应的路径区域。进一步地,在多个初始平面图中的非路径位置拼接第二类像素以得到与非路径面积对应的非路径区域,根据路径区域和非路径区域确定多个场景模块平面图。
其中,拼接需求信息可以用于指示路径面积、路径位置、非路径面积以及非路径位置,例如可以为一张平面的图像,分别将图4中的各个模组在图像中进行拼接,将路径对应的模组拼接在一起来确定路径位置,并且根据路径对应的模组面积来确定路径面积,将非路径对应的模组拼接在一起来确定非路径位置,并根据非路径对应的模组面积来确定非路径面积。这样,可以进一步地在预设尺寸,例如1000x1000的初始平面图中将第一类像素拼接在路径位置,从而得到路径区域,将第二类像素拼接在非路径位置,从而得到非路径区域,进而根据路径区域和非路径区域得到场景模块平面图。
图5示出了根据本申请的实施例中的场景模块平面图的示例性示意图。
也就是说,拼接需求可以用来表征一个或多个场景模块平面图中所需求的路径区域以及非路径区域,进而可以确定场景模块平面图中的路径面积、路径位置、非路径面积以及非路径位置等信息。进一步地,在预设尺寸的多个初始平面图中,例如在如图5所示出的50x50的初始平面图中,可以根据路径位置确定其中的“可行走区域”、“楼梯往下”以及“往下一层且可行走区域”对应位置,进而将第一类像素拼接至路径位置,直至得到与路径面积相对应的路径区域。类似地,对于非路径区域而言,则可以根据非路径位置确定其中的非路径区域对应的位置,例如可以包括“封住不通路的路口”以及“不可行走区域”对应的位置,进而将第二类像素拼接至非路径位置,直至得到与非路径面积相对应的非路径区域。再进一步地,则可以根据路径区域和非路径区域确定出场景模块平面图。
图6示出了根据本申请的实施例中的细化后的场景模块平面图的示例性示意图。
在得到场景模块平面图之后,为了能够使得游戏开发者能够更加直观地通过场景模块平面图构建具体的虚拟场景,可以对场景模块平面图进行美术加工。例如可以利用绘图软件在不改动形式感和布局的情况下,对图5所示的场景模块平面图进行绘图美术加工,从而得到例如图6所示的细化后的场景模块平面图。
而在另一种实现方式中,可以预先获取预设贴图,利用预设贴图来赋予如图5所示的场景模块平面图。例如,可以将预先获取到的第一预设贴图赋予路径区域,从而得到路径平面图,并将预先获取到的第二预设贴图赋予非路径区域,从而得到非路径平面图,再进一步地,根据路径平面图和非路径平面图可以确定出例如图6所示的细化后的场景模块平面图。
图7(a)示出了根据本申请的实施例中的包含相同路口数量的一种细化后的场景模块平面图的示例性示意图。
图7(b)示出了根据本申请的实施例中的包含相同路口数量的另一种细化后的场景模块平面图的示例性示意图。
图7(c)示出了根据本申请的实施例中的包含相同路口数量的再另一种细化后的场景模块平面图的示例性示意图。
对于一个场景模块平面图而言,在将根据多个不同的场景模块平面图构建出的场景模块进行拼接时,实际上需要考虑的主要因素之一为用于拼接的那一条边上的路径区域的接口,类似于“拼图”的拼接位置的形状,例如“凸”能够与“凹”进行拼接。那么,也就是说,场景模块平面图中如果路径区域的路口位置和数量都相同,可以在场景模块平面图的内部设置不同的路径走向以及非路径区域的内容,来得到不同的场景模块平面图,这样能够更加快速便捷地量产得到多个场景模块平面图。参考图7(a)-(c)示出了三种内部路径走向不同且非路径区域的内容不同的,具有相同的路口位置和数量的场景模块平面图。
在得到场景模块平面图之后,需要得到用于拼接出目标虚拟场景的场景模块,而其中重要的一步则是根据场景模块平面图中的场景信息,对场景模块平面图执行3D化操作以构建得到与多个场景模块平面图对应的多个场景模块。
在一些实施例中,可以将每个场景模块平面图中的所述路径平面图和所述非路径平面图均等划分为多个平面网格,并确定每个平面网格对应的场景信息,其中,场景信息可以至少包括:平面网格对应的RGB值。进一步地,可以根据每个平面网格对应的RGB值确定每个平面网格在场景模块中对应位置的高度值,其中,RGB值可以与高度值成正比或成反比。例如,可以确定R值的平方值、G值平方值以及B值平方值的加和,并将该加和开根号以确定高度值,也即,RGB值与高度值之间可以呈现例如两种不同的关系,其一为RGB值越大,该高度值越大,整体趋势近似于正比例关系,其二为RGB值越大,该高度值越小,整体趋势近似于反比例关系,在此不做具体限定。
再进一步地,可以根据每个场景模块平面图中每个平面网格在场景模块中对应位置的高度值,对每个场景模块平面图中的每个平面网格执行3D化操作,进而构建得到与多个包含与路径平面图对应的路径的场景模块。
具体地,可以将100x100的场景模块平面图划分为多个5x5的平面网格,这样能够更加灵活的表现出场景模块平面图中的美术效果,而且还能够使得场景模块平面图的精度得到更好的控制。在得到场景模块平面图后,如果想要根据场景模块平面图中的信息来确定3D化操作后得到的场景模块,则需要确定各个位置在3D化操作后的高度值,才能够得到一个三维的场景模块。那么,可以根据平面网格所对应的RGB值来确定场景模块对应位置的高度,例如平面网格所对应的RGB值可以与该平面网格在场景模块中对应的区域的高度值成正比,也即平面网格所对应的RGB值越大,则该平面网格在场景模块中对应的区域的高度值越大。当然,平面网格所对应的RGB值也可以与该平面网格在场景模块中对应的区域的高度值成反比,也即平面网格所对应的RGB值越大,则该平面网格在场景模块中对应的区域的高度值越小。
无论RGB值与高度值之间是成正比关系还是反比关系,都可以根据场景模块平面图中的平面网格的RGB值确定出每个平面网格在场景模块中对应位置的高度值,进而可以在3D软件中将平面网格3D化,以此来构建得到与场景模块平面图对应的场景模块。当然,可以对高度进行限制,例如最大高度不能够超过20个单位,这20个单位是以场景模块的底面沿三维坐标系中的竖轴进行限定的,例如,场景模块的底面的中心点坐标可以为(0,0,0)。
在一些实施例中,可以设置最小RGB值对应的初始高度值,例如RGB值(0,0,0)对应的初始高度则可以为0单位,进一步地,可以确定每个平面网格对应的RGB值与最小RGB值之间的差值。如果平面网格对应的RGB值与最小RGB值之间的差值达到预设间隔RGB值的预设倍数,例如其中一个平面网格对应的RGB值为(128,128,128),预设间隔RGB值为(64,64,64),预设倍数为1倍,则可以将该网格在所述场景模块中对应位置的高度值增加预设高度值,也即如果对应位置的初始高度值为平面中的0,那么当前该平面网格对应的RGB值与最小RGB值之间的差值达到了预设间隔RGB值的2倍,则可以增加2个预设高度值,例如预设高度值为5单位,则实际上该平面网格在场景模块中对应位置的高度值由0变化为10单位。
在另一些实施例中,可以设置最大RGB值对应的初始高度值,例如RGB值(256,256,256)对应的初始高度则可以为0单位,进一步地,可以确定每个平面网格对应的RGB值与最大RGB值之间的差值。如果平面网格对应的RGB值与最大RGB值之间的差值达到预设间隔RGB值的预设倍数,例如其中一个平面网格对应的RGB值为(128,128,128),预设间隔RGB值为(64,64,64),预设倍数为1倍,则可以将该网格在所述场景模块中对应位置的高度值增加预设高度值,也即如果对应位置的初始高度值为平面中的0,那么当前该平面网格对应的RGB值与最大RGB值之间的差值达到了预设间隔RGB值的2倍,则可以增加2个预设高度值,例如预设高度值为5单位,则实际上该平面网格在场景模块中对应位置的高度值由0变化为10单位。
在一些实施例中,还可以确定场景模块平面图的中心位置,并将与中心位置之间的距离超过预设距离的平面网格在场景模块中的对应位置确定为边界,例如整体场景模块尺寸为1000x1000,则将距离中心位置之间的距离为500的位置定义为边界。进一步地,可以将路径平面图中的平面网格在场景模块中的对应位置确定为路径,也即路径平面图中的平面网格对应路径。将边界中包含路径的第一区域所对应的平面网格的RGB值设置为第一RGB值,并将边界中不包含路径的第二区域所对应的平面网格的RGB值设置为第二RGB值,也即将路径区域和非路径区域利用不同的RGB值来表示,进而区分二者。再进一步地,可以根据第一区域所对应的平面网格的第一RGB值确定第一区域对应的第一高度值,并根据第二区域所对应的平面网格的第二RGB值确定第二区域对应的第二高度值。进而可以直接根据第一RGB值和第二RGB值将包含路径的第一区域和不包含路径区域的第二区域的高度值进行确定。
图8示出了根据本申请的实施例中的白盒化场景模块的示例性示意图。
在一些实施例中,对于场景模块平面图的3D化,可以根据每个场景模块平面图中每个平面网格在场景模块中对应位置的高度值,依次在每个场景模块平面图中的每个平面网格对应位置放置单位体积的白盒模型块,以构建得到白盒化场景模块,例如参考图8中,示出的为与图6所示的场景模块平面图对应的白盒化场景模块。
其中,3D化操作,是将2D的平面图制作为3D的模型,例如先根据场景模块平面图得到白盒化场景模块,其中白盒化场景模块为3D模型。例如可以在3D软件中实现,通过简单的面片和简单的白盒模型块(例如制作成5m或10m或1m的正方体)。再在引擎(例如UE4引擎)中,将墙体模型快和地面面片按照路线图,围绕路线进行3D路线的实现。其中高度也是成规格的,例如墙体的高度可以是5米和10米,可根据地形需要,将墙体进行上下拼接,以形成不同高度的墙体,这也符合建筑学楼层的理论。
用于执行3D化操作的软件,例如可以为3D Maker,可以将2D平面图像转换成3D模型,兼容JPG、BMP、PNG、GIF等多种图片格式,支持多种3D效果选择,例如球形、圆柱形、锥形等等。还可以使用例如DepthmapX软件,可以通过输入深度图像和纹理图像生成高精度的3D模型。DepthmapX支持多种深度图像输入方式,包括三角测量、激光扫描、立体摄影等等。再例如,可以使用Blender软件,不仅可以进行3D建模、动画制作等操作,还支持将2D平面图像转换成3D模型。Blender提供多种3D转换工具,用户可以根据自己的需求选择不同的工具。
图9示出了根据本申请的实施例中的虚拟资产的示例性示意图。
图10示出了根据本申请的实施例中的场景模块的示例性示意图。
进一步地,可以在白盒化场景模块中的预设位置绑定预先获取到的虚拟资产,例如图9中示出的各个类型的虚拟资产,利用该虚拟资产对白盒化场景模块进行美化,以构建得到如图10所示出的场景模块。
再进一步地,还可以制作灯光、寻路、阻挡,最后使用例如Neox2软件的“保存模型群组”功能将所有物件、灯光、寻路、阻挡捆绑打组在一起,得到更加贴近与目标虚拟场景的设定的场景模块。
需要说明的是,实际上还可以在场景模块平面图中标注不同区域对应在3D化后的场景模块中的高度值,例如可以读取路径平面图中表征路径区域在场景模块中对应位置的高度值的第一高度参数,以及,读取非路径平面图中表征非路径区域在场景模块中对应位置的高度值的第二高度参数,这也就是说在路径平面图以及非路径平面图中预先标注每个网格对应的高度值。进而,可以根据第一高度参数对路径平面图执行3D化操作,并根据第二高度参数对非路径平面图执行3D化操作,以构建得到与多个场景模块平面图对应的多个场景模块。再加上3D引擎里可以设计光线,设计雾效,设计火把,设计烟雾,设计高低错落,一个简单的平面关卡就完美的3D化了。
无论使用何种方式得到了3D化后的场景模块,其中有一些规则需要遵守,从而保证场景模块的合理性,例如可以确定路径所在的平面与所述场景模块的底面之间的夹角是否超过预设角度,例如预设角度可以设置为45°。如果路径所在的平面与场景模块的底面之间的夹角超过预设角度,则可以调整路径对应的高度值以使路径所在的平面与场景模块的底面之间的夹角小于或等于预设角度,并根据路径对应的调整后的高度值重新确定在场景模块平面图中与路径对应的平面网格的RGB值。也就是说,可以确定场景模块中路径的坡度是否过大,例如预设角度可以为45°,一旦路径的坡度超过了45°,则该场景模块看起来会很突兀,并且实际应用中玩家在目标虚拟场景中游玩时,也会感受到虚拟人物在目标虚拟场景中行走不自然。进而,将坡度超过45°的路径的高度值进行调整,进而使该路径平缓,直至坡度小于或等于45°,而对应在场景模块平面图中,则需要将调整高度值后的路径对应的平面网格的RGB值进行相应的调整。
图11示出了根据本申请的实施例中的拼接后的细化后的场景模块平面图的示例性示意图。
在后续进行拼接时,针对多个场景模块中的任一场景模块,可以根据该场景模块中的路径的延伸方向确定用于与其他场景模块中的路径联通的路口,并确定路口对应的路口位置信息、路口数量信息、路口尺寸以及路口开口方向。进一步地,可以根据每个场景模块中路口对应的路口位置信息、路口数量信息、路口尺寸以及路口开口方向确定每个场景模块中路径所对应的路径信息。例如,一个场景模块在其中一条边A中包括1个路口,边B包括2个路口,边C包括0个路口,边D包括1个路口,则路口位置信息则可以表示为包括路口的不同边。路口数量信息则以此为1、2、0、1。路口尺寸可以根据场景模块中路口的两侧边之间的距离来确定,路口开口方向则为各条边对应的方向,也即路口的朝向方向。参考图11,可以看到当所有场景模块进行拼接后,以平面图来展现拼接后的场景,可以得到相互联通的多条路径。
图12示出了根据本申请的实施例中的拼接后的白盒化场景模块的示例性示意图。
具体地,可以根据场景需求参数确定场景模块需求数量,针对多个场景模块中的任一场景模块,可以将与该场景模块的任意一侧的路口数量信息和路口尺寸相同,且与场景模块的路口位置信息和路口开口方向相对应的其他场景模块与场景模块进行拼接,以得到场景模块之间拼接位置的两路径所在的平面的夹角处于预设角度区间,且相互联通的路径。进一步地,可以将各个场景模块之间进行拼接以联通场景模块中全部路径,且进行拼接的场景模块的数量达到场景模块需求数量,以构建得到目标虚拟场景。参考图12,拼接得到的目标虚拟场景在设置装饰前的白盒化场景模块是与图11中的平面图相对应的,也即每条路径都是相互联通的。
在一些实施例中,可以确定各侧的路口数量信息均大于预设数量的其他场景模块中是否存在第一侧的路口数量信息和路口尺寸与场景模块中第二侧的路口数量信息和路口尺寸相同的候选场景模块。如果路口数量信息大于预设数量的其他场景模块中存在第一侧的路口数量信息和路口尺寸与场景模块中第二侧的路口数量信息和路口尺寸相同的候选场景模块,确定候选场景模块中是否存在第一侧的路口开口方向与场景模块中第二侧的路口开口方向相对,且第一侧的路口位置信息与场景模块中第二侧的路口位置重叠的目标场景模块。如果候选场景模块中存在第一侧的路口开口方向与场景模块中第二侧的路口开口方向相对,且第一侧的路口位置信息与场景模块中第二侧的路口位置重叠的目标场景模块,则可以将场景模块的第二侧与目标场景模块的第一侧相互拼接,以得到场景模块之间相互联通的路径。
例如,场景模块1中朝向第一方向(例如左方向)具有一个路口尺寸为10的路口M,且该路口M位于边A的正中心位置,也即该路口M距离边A的两端的距离相同。场景模块2中朝向第二方向具有一个路口尺寸为10的路口N,且该路口N位于边B的正中心位置,也即该路口N距离边B的两端的距离相同,并且第二方向为与第一方向相对的方向,例如右方向。则场景模块1的边A与场景模块2的边B中的路口数量信息和路口尺寸相同,且路口M和路口N的路口位置信息和路口开口方向相对,因此可以将场景模块1的边A与场景模块2的边B进行拼接,从而得到场景模块1与场景模块2之间拼接位置的两路径所在的平面的夹角处于预设角度区间,且相互联通的路径。
在另一些实施例中,如果第一侧的路口数量信息和第二侧的路口数量信息为零,则将场景模块的第二侧与任意一个候选场景模块的第一侧相互拼接。也就是说,如果其中两个场景模块分别存在一侧中路口数量为0,也即不包括路口,则这两个场景模块的这两条边则可以进行拼接。
如果候选场景模块中不存在第一侧的路口开口方向与场景模块中第二侧的路口开口方向相对,和/或,第一侧的路口位置信息与场景模块中第二侧的路口位置重叠的目标场景模块,则确定候选场景模块中是否存在经过变换操作后的第一侧的路口开口方向与场景模块中第二侧的路口开口方向相对,且第一侧的路口位置信息与场景模块中第二侧的路口位置重叠的目标场景模块,其中,变换操作,至少包括:以过场景模块中心点且与场景模块的底面相互垂直的中心轴为旋转轴的旋转操作。如果候选场景模块中存在经过变换操作后的第一侧的路口开口方向与场景模块中第二侧的路口开口方向相对,且第一侧的路口位置信息与场景模块中第二侧的路口位置重叠的目标场景模块,则将场景模块的第二侧与目标场景模块的第一侧相互拼接,以得到场景模块之间相互联通的路径。
例如,场景模块包括上下左右四个方向上的边,那么场景模块1中上侧边具有一个路口K,且路口K位于上侧边的正中心位置,而场景模块2中右侧边具有一个路口L,且路口L位于右侧边的正中心位置。则此时,将场景模块2以过场景模块2中心点且与场景模块2的底面相互垂直的中心轴为旋转轴,逆时针旋转90°后,则路口L此时的朝向则从朝向右,变换为朝向下,此时将路口K和路口L对应的边进行拼接后,可以使得场景模块1和场景模块2完成拼接。
在一些实施例中,在同一个场景模块中,路径的高度也可以不统一,也即一个场景模块中的路径存在坡度,当然,这个坡度同样需要小于或等于预设角度,例如45°。那么,此时当两个满足前述实施例中的拼接条件的场景模块在拼接时,还需要考虑拼接后的路径的延伸是否符合一定的要求。具体地,当两个场景模块中相互拼接的路口所在路径存在坡度时,那么两个相邻模块路口位置的路径所在的平面的延伸方向与地面的夹角必须互补,才能够使得两个路径拼接后,保证路径的流畅度和平滑度。
需要说明的是,如果出现两个场景模块需要拼接的路径都存在角度,例如两条路径都是上坡或者都是下坡,那么拼接后会呈现V字形路径,或者倒V字形路径,只要满足坡度小于或等于预设角度,例如45°,都认定该路径是能够被拼接的。
在一些实施例中,对于整个场景的拼接,技术人员可能会有一些特殊的需求,例如在几个相邻的场景模块拼接后,需要在场景中得到一个宽阔的房间,那么需要保证对应位置的模组内道路最大宽度达到预设宽度,例如道路最窄不低于15,最宽不超过90。且道路面积达到预设面积最小不小于15x15,最高大不超过90x90。
在拼接得到的整个场景中,还可以根据一个模块的路口数量确定其使用率,例如路口数量多则复用率高。路口数量减少则使用率低。最高不超过8个路口,最低不低于1个路口,当减少路口数量的模组则视为定制模组。根据使用率决定模组权重,路口越多权重越高,路口越少权重越低。通用模组必须保证都是8个路口,通用模组的模组数量占比必须高才能让场景线路表现更丰富。同时也必须存在一定量的少路口的定制模块才能使路线更具趣味性。
在构建得到目标虚拟场景之后,可以对其进行测试,来保证其路径的合理性,以免正式投入使用时产生程序漏洞。例如,可以根据目标虚拟场景中的路径生成沿路径分布的寻路轨迹,进一步地,可以确定是否存在至少两条相互不联通的寻路轨迹。如果存在至少两条相互不联通的寻路轨迹,则替换长度较短的寻路轨迹所对应的场景模块,直至目标虚拟场景中不存在至少两条相互不联通的寻路轨迹。进而保证最终得到的目标虚拟场景每条路径都是联通的,不会出现不联通的路径,导致该路径无法被使用。
图13示出了根据本申请的实施例中的拼接后的部分目标虚拟场景的示例性示意图。
参考图13,可以看到在拼接后,且完成美化和装饰后的部分目标虚拟场景,能够看到所呈现的路径是联通的,且在目标虚拟场景内部部分路径是存在坡度的,例如台阶部分是呈上坡角度呈现的。
图14示出了根据本申请的实施例中的跑测软件的操作界面的示例性示意图。
还可以通过跑测软件对目标虚拟场景进行实际的跑测,具体地,可以在寻路轨迹上设置多个碰撞体,其中,碰撞体可以用于承载可移动虚拟对象,以使得可移动虚拟对象能够在寻路轨迹上沿任意方向移动。进一步地,在目标虚拟场景中可以创建可移动的测试虚拟角色,并将测试任务配置至测试虚拟角色,以使测试虚拟角色能够根据测试任务沿寻路轨迹的延伸方向移动。当测试虚拟角色能够遍历寻路轨迹时,则根据预先获取的虚拟资产,在碰撞体对应位置创建可移动虚拟对象。也就是说,参考图14,可以将测试任务配置至测试虚拟角色,例如包括测试虚拟角色将要进行跑测的寻路轨迹对应的角色路径,并对该角色配置相应的动作,以及在跑测过程中,可以利用显示装置实时呈现跑测的过程,因此可以配置场景窗口参数,以及在场景中的虚拟相机的对应参数,例如旋转角度、倾斜角度以及相机相对于测试虚拟角色之间的距离等参数。
进一步地,可以在目标虚拟场景中增加虚拟对象,例如可交互的NPC角色,从而增加目标虚拟场景的可玩性,例如可以确定寻路轨迹在场景模块中对应的路径的面积,进而可以根据寻路轨迹在场景模块中对应的路径的面积,确定各场景模块中在碰撞体对应位置创建的可移动虚拟对象的分布密度。例如,当部分场景模块中对应的路径的面积较大时,可以在该路径中配置分布密度较大的可移动虚拟对象,例如NPC,例如该路径可以对应虚拟场景中的集市,此场景中应该包含有更大数量的NPC。
从上面所述可以看出,本申请提供的一种虚拟场景构建方法、装置、电子设备及存储介质,根据预先获取的单位像素模块拼接得到多个场景模块平面图;根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块;其中,每个场景模块,至少包括:路径;确定每个场景模块中所述路径所对应的路径信息;以及,获取场景需求参数,并根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景。本申请根据单位像素模块拼接得到场景模块平面图,相比于在3D场景中更改场景设计,在场景模块平面图中能够实现对于场景设计的快速更改。而通过将目标虚拟场景划分为多个场景模块来分别编辑,不仅降低了编辑成本,并且可以交由多个开发者来分别编辑每个场景模块,使得在一定程度上缩短了编辑周期。进一步地,通过将不同的场景模块进行拼接,从而得到完整的目标虚拟场景,由于在拼接过程中可以自由选择相互拼接的场景模块,使得整个目标虚拟场景的生成效果更加多样化,能够通过同一组中多个不同的场景模块拼接出不同的目标虚拟场景,使得虚拟场景更加丰富且多元。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图15示出了本申请实施例所提供的一种虚拟场景构建装置的示例性结构示意图。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种虚拟场景构建装置。
参考图15,所述虚拟场景构建装置,所述装置包括:拼接模块、3D化操作模块、确定模块以及构建模块;其中,
拼接模块,被配置为根据预先获取的单位像素模块拼接得到多个场景模块平面图;
3D化操作模块,被配置为根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块;其中,每个场景模块,至少包括:路径;
确定模块,被配置为确定每个场景模块中所述路径所对应的路径信息;
构建模块,被配置为获取场景需求参数,并根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景。
在一种可能的实现方式中,所述单位像素模块,包括:第一类像素以及第二类像素;
所述拼接模块进一步被配置为:
根据预先获取到的拼接需求信息确定在多个所述场景模块平面图中的路径面积、路径位置、非路径面积以及非路径位置;
在预设尺寸的多个初始平面图中的所述路径位置拼接所述第一类像素以得到与所述路径面积对应的路径区域;
在多个所述初始平面图中的所述非路径位置拼接所述第二类像素以得到与所述非路径面积对应的非路径区域;
根据所述路径区域和所述非路径区域确定所述多个场景模块平面图。
在一种可能的实现方式中,所述拼接模块进一步被配置为:
根据预先获取的第一预设贴图赋予所述路径区域以得到路径平面图;
根据预先获取的第二预设贴图赋予所述非路径区域以得到非路径平面图;
根据所述路径平面图和所述非路径平面图确定所述多个场景模块平面图。
在一种可能的实现方式中,所述3D化操作模块进一步被配置为:
将每个所述场景模块平面图中的所述路径平面图和所述非路径平面图均等划分为多个平面网格,并确定每个平面网格对应的所述场景信息;其中,所述场景信息,至少包括:所述平面网格对应的RGB值;
根据每个平面网格对应的RGB值确定所述每个平面网格在所述场景模块中对应位置的高度值;
根据每个所述场景模块平面图中所述每个平面网格在所述场景模块中对应位置的高度值,对每个所述场景模块平面图中的每个平面网格执行3D化操作,以构建得到与多个包含与所述路径平面图对应的路径的所述场景模块。
在一种可能的实现方式中,所述3D化操作模块进一步被配置为:
设置最小RGB值对应初始高度值,确定每个平面网格对应的RGB值与最小RGB值之间的差值;
响应于每个平面网格对应的RGB值与最小RGB值之间的差值达到预设间隔RGB值的预设倍数,则将所述每个平面网格在所述场景模块中对应位置的高度值增加预设高度值。
在一种可能的实现方式中,所述3D化操作模块进一步被配置为:
设置最大RGB值对应初始高度值,确定每个平面网格对应的RGB值与最大RGB值之间的差值;
响应于每个平面网格对应的RGB值与最大RGB值之间的差值达到预设间隔RGB值的预设倍数,则将所述每个平面网格在所述场景模块中对应位置的高度值增加预设高度值。
在一种可能的实现方式中,所述3D化操作模块进一步被配置为:
确定所述场景模块平面图的中心位置,并将与所述中心位置之间的距离超过预设距离的平面网格在所述场景模块中的对应位置确定为边界;
将所述路径平面图中的平面网格在所述场景模块中的对应位置确定为路径;
将所述边界中包含所述路径的第一区域所对应的平面网格的RGB值设置为第一RGB值,并将所述边界中不包含所述路径的第二区域所对应的平面网格的RGB值设置为第二RGB值;
根据所述第一区域所对应的平面网格的第一RGB值确定所述第一区域对应的第一高度值,并根据所述第二区域所对应的平面网格的第二RGB值确定所述第二区域对应的第二高度值。
在一种可能的实现方式中,所述3D化操作模块进一步被配置为:
根据每个所述场景模块平面图中所述每个平面网格在所述场景模块中对应位置的高度值,依次在每个所述场景模块平面图中的每个平面网格对应位置放置单位体积的白盒模型块,以构建得到白盒化场景模块;
在所述白盒化场景模块中的预设位置绑定预先获取到的虚拟资产,以构建得到所述场景模块。
在一种可能的实现方式中,所述3D化操作模块进一步被配置为:
读取所述路径平面图中表征所述路径区域在所述场景模块中对应位置的高度值的第一高度参数,以及,读取所述非路径平面图中表征所述非路径区域在所述场景模块中对应位置的高度值的第二高度参数;
根据所述第一高度参数对所述路径平面图执行3D化操作,并根据所述第二高度参数对所述非路径平面图执行3D化操作,以构建得到与多个所述场景模块平面图对应的多个场景模块。
在一种可能的实现方式中,所述3D化操作模块进一步被配置为:
确定所述路径所在的平面与所述场景模块的底面之间的夹角是否超过预设角度;
响应于所述路径所在的平面与所述场景模块的底面之间的夹角超过所述预设角度,则调整所述路径对应的高度值以使所述路径所在的平面与所述场景模块的底面之间的夹角小于或等于所述预设角度,并根据所述路径对应的调整后的高度值重新确定在场景模块平面图中与所述路径对应的平面网格的RGB值。
在一种可能的实现方式中,所述确定模块进一步被配置为:
针对所述多个场景模块中的任一所述场景模块,
根据所述场景模块中的所述路径的延伸方向确定用于与其他场景模块中的路径联通的路口,并确定所述路口对应的路口位置信息、路口数量信息、路口尺寸以及路口开口方向;
根据每个所述场景模块中所述路口对应的路口位置信息、路口数量信息、路口尺寸以及路口开口方向确定每个场景模块中所述路径所对应的路径信息。
在一种可能的实现方式中,所述构建模块进一步被配置为:
据所述场景需求参数确定所述场景模块需求数量;
针对所述多个场景模块中的任一所述场景模块,
将与所述场景模块的任意一侧的所述路口数量信息和所述路口尺寸相同,且与所述场景模块的所述路口位置信息和所述路口开口方向相对应的其他场景模块与所述场景模块进行拼接,以得到所述场景模块之间拼接位置的两路径所在的平面的夹角处于预设角度区间,且相互联通的路径;
将各个所述场景模块之间进行拼接以联通所述场景模块中全部路径,且进行拼接的所述场景模块的数量达到所述场景模块需求数量,以构建得到所述目标虚拟场景。
在一种可能的实现方式中,所述构建模块进一步被配置为:
确定各侧的所述路口数量信息均大于预设数量的所述其他场景模块中是否存在第一侧的所述路口数量信息和所述路口尺寸与所述场景模块中第二侧的所述路口数量信息和所述路口尺寸相同,的候选场景模块;
响应于所述路口数量信息大于预设数量的所述其他场景模块中存在第一侧的所述路口数量信息和所述路口尺寸与所述场景模块中第二侧的所述路口数量信息和所述路口尺寸相同的所述候选场景模块,确定所述候选场景模块中是否存在第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块;
响应于所述候选场景模块中存在第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块,则将所述场景模块的第二侧与所述目标场景模块的第一侧相互拼接,以得到所述场景模块之间相互联通的路径。
在一种可能的实现方式中,所述构建模块进一步被配置为:
响应于所述第一侧的所述路口数量信息和所述第二侧的所述路口数量信息为零,则将所述场景模块的第二侧与任意一个所述候选场景模块的第一侧相互拼接,以得到所述场景模块之间相互联通的路径。
在一种可能的实现方式中,所述构建模块进一步被配置为:
响应于所述候选场景模块中不存在第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,和/或,第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块,则确定所述候选场景模块中是否存在经过变换操作后的第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块;其中,所述变换操作,至少包括:以过所述场景模块中心点且与所述场景模块的底面相互垂直的中心轴为旋转轴的旋转操作;
响应于所述候选场景模块中存在经过变换操作后的第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块,则将所述场景模块的第二侧与所述目标场景模块的第一侧相互拼接,以得到所述场景模块之间相互联通的路径。
在一种可能的实现方式中,所述装置,还包括:测试模块;
所述测试模块被配置为:
根据所述目标虚拟场景中的路径生成沿所述路径分布的寻路轨迹;
确定是否存在至少两条相互不联通的所述寻路轨迹;
响应于存在至少两条相互不联通的所述寻路轨迹,则替换长度较短的寻路轨迹所对应的场景模块,直至所述目标虚拟场景中不存在至少两条相互不联通的所述寻路轨迹。
在一种可能的实现方式中,所述测试模块进一步被配置为:
在所述寻路轨迹上设置多个碰撞体;其中,所述碰撞体用于承载可移动虚拟对象,以使得所述可移动虚拟对象能够在所述寻路轨迹上沿任意方向移动;
在所述目标虚拟场景中创建可移动的测试虚拟角色,并将测试任务配置至所述测试虚拟角色,以使所述测试虚拟角色根据所述测试任务沿所述寻路轨迹的延伸方向移动;
响应于所述测试虚拟角色能够遍历所述寻路轨迹,则根据预先获取的虚拟资产,在所述碰撞体对应位置创建所述可移动虚拟对象。
在一种可能的实现方式中,所述装置,还包括:创建模块;
所述创建模块被配置为:
确定所述寻路轨迹在所述场景模块中对应的路径的面积;
根据所述寻路轨迹在所述场景模块中对应的路径的面积,确定各所述场景模块中在所述碰撞体对应位置创建的所述可移动虚拟对象的分布密度。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的虚拟场景构建方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
图16示出了本申请实施例所提供的一种电子设备的示例性结构示意图。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的虚拟场景构建方法。图16示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1610、存储器1620、输入/输出接口1630、通信接口1640和总线1650。其中处理器1610、存储器1620、输入/输出接口1630和通信接口1640通过总线1650实现彼此之间在设备内部的通信连接。
处理器1610可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1620可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1620可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1620中,并由处理器1610来调用执行。
输入/输出接口1630用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1640用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1650包括一通路,在设备的各个组件(例如处理器1610、存储器1620、输入/输出接口1630和通信接口1640)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1610、存储器1620、输入/输出接口1630、通信接口1640以及总线1650,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的虚拟场景构建方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所述存储器1620存储有所述处理器1610可执行的机器可读指令,当电子设备运行时,所述处理器1610与所述存储器1620之间通过总线1630通信,使得所述处理器1610在运行时执行以下指令:
根据预先获取的单位像素模块拼接得到多个场景模块平面图;
根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块;其中,每个场景模块,至少包括:路径;
确定每个场景模块中所述路径所对应的路径信息;以及,
获取场景需求参数,并根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景。
一种可能的实施方式中,所述单位像素模块,包括:第一类像素以及第二类像素;
处理器1610执行的指令中,所述根据预先获取的单位像素模块拼接得到多个场景模块平面图,包括:
根据预先获取到的拼接需求信息确定在多个所述场景模块平面图中的路径面积、路径位置、非路径面积以及非路径位置;
在预设尺寸的多个初始平面图中的所述路径位置拼接所述第一类像素以得到与所述路径面积对应的路径区域;
在多个所述初始平面图中的所述非路径位置拼接所述第二类像素以得到与所述非路径面积对应的非路径区域;
根据所述路径区域和所述非路径区域确定所述多个场景模块平面图。
一种可能的实施方式中,处理器1610执行的指令中,所述根据所述路径区域和所述非路径区域确定所述多个场景模块平面图,包括:
根据预先获取的第一预设贴图赋予所述路径区域以得到路径平面图;
根据预先获取的第二预设贴图赋予所述非路径区域以得到非路径平面图;
根据所述路径平面图和所述非路径平面图确定所述多个场景模块平面图。
一种可能的实施方式中,处理器1610执行的指令中,所述根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块,包括:
将每个所述场景模块平面图中的所述路径平面图和所述非路径平面图均等划分为多个平面网格,并确定每个平面网格对应的所述场景信息;其中,所述场景信息,至少包括:所述平面网格对应的RGB值;
根据每个平面网格对应的RGB值确定所述每个平面网格在所述场景模块中对应位置的高度值;
根据每个所述场景模块平面图中所述每个平面网格在所述场景模块中对应位置的高度值,对每个所述场景模块平面图中的每个平面网格执行3D化操作,以构建得到与多个包含与所述路径平面图对应的路径的所述场景模块。
一种可能的实施方式中,处理器1610执行的指令中,所述根据每个平面网格对应的RGB值确定所述每个平面网格在所述场景模块中对应位置的高度值,包括:
设置最小RGB值对应初始高度值,确定每个平面网格对应的RGB值与最小RGB值之间的差值;
响应于每个平面网格对应的RGB值与最小RGB值之间的差值达到预设间隔RGB值的预设倍数,则将所述每个平面网格在所述场景模块中对应位置的高度值增加预设高度值。
一种可能的实施方式中,处理器1610执行的指令中,所述根据每个平面网格对应的RGB值确定所述每个平面网格在所述场景模块中对应位置的高度值,包括:
设置最大RGB值对应初始高度值,确定每个平面网格对应的RGB值与最大RGB值之间的差值;
响应于每个平面网格对应的RGB值与最大RGB值之间的差值达到预设间隔RGB值的预设倍数,则将所述每个平面网格在所述场景模块中对应位置的高度值增加预设高度值。
一种可能的实施方式中,处理器1610执行的指令中,所述根据每个平面网格对应的RGB值确定所述每个平面网格在所述场景模块中对应位置的高度值,包括:
确定所述场景模块平面图的中心位置,并将与所述中心位置之间的距离超过预设距离的平面网格在所述场景模块中的对应位置确定为边界;
将所述路径平面图中的平面网格在所述场景模块中的对应位置确定为路径;
将所述边界中包含所述路径的第一区域所对应的平面网格的RGB值设置为第一RGB值,并将所述边界中不包含所述路径的第二区域所对应的平面网格的RGB值设置为第二RGB值;
根据所述第一区域所对应的平面网格的第一RGB值确定所述第一区域对应的第一高度值,并根据所述第二区域所对应的平面网格的第二RGB值确定所述第二区域对应的第二高度值。
一种可能的实施方式中,处理器1610执行的指令中,所述根据每个所述场景模块平面图中所述每个平面网格在所述场景模块中对应位置的高度值,对每个所述场景模块平面图中的每个平面网格执行3D化操作,以构建得到与多个包含与所述路径平面图对应的路径的所述场景模块,包括:
根据每个所述场景模块平面图中所述每个平面网格在所述场景模块中对应位置的高度值,依次在每个所述场景模块平面图中的每个平面网格对应位置放置单位体积的白盒模型块,以构建得到白盒化场景模块;
在所述白盒化场景模块中的预设位置绑定预先获取到的虚拟资产,以构建得到所述场景模块。
一种可能的实施方式中,处理器1610执行的指令中,所述根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块,包括:
读取所述路径平面图中表征所述路径区域在所述场景模块中对应位置的高度值的第一高度参数,以及,读取所述非路径平面图中表征所述非路径区域在所述场景模块中对应位置的高度值的第二高度参数;
根据所述第一高度参数对所述路径平面图执行3D化操作,并根据所述第二高度参数对所述非路径平面图执行3D化操作,以构建得到与多个所述场景模块平面图对应的多个场景模块。
一种可能的实施方式中,处理器1610执行的指令中,所述构建得到与多个包含与所述路径平面图对应的路径的所述场景模块之后,还包括:
确定所述路径所在的平面与所述场景模块的底面之间的夹角是否超过预设角度;
响应于所述路径所在的平面与所述场景模块的底面之间的夹角超过所述预设角度,则调整所述路径对应的高度值以使所述路径与所述场景模块的底面之间的夹角小于或等于所述预设角度,并根据所述路径对应的调整后的高度值重新确定在场景模块平面图中与所述路径对应的平面网格的RGB值。
一种可能的实施方式中,处理器1610执行的指令中,所述确定每个场景模块中所述路径所对应的路径信息,包括:
针对所述多个场景模块中的任一所述场景模块,
根据所述场景模块中的所述路径的延伸方向确定用于与其他场景模块中的路径联通的路口,并确定所述路口对应的路口位置信息、路口数量信息、路口尺寸以及路口开口方向;
根据每个所述场景模块中所述路口对应的路口位置信息、路口数量信息、路口尺寸以及路口开口方向确定每个场景模块中所述路径所对应的路径信息。
一种可能的实施方式中,处理器1610执行的指令中,所述根据所述场景需求参数将所述路口位置信息相对应的所述场景模块进行拼接以构建目标虚拟场景,包括:
根据所述场景需求参数确定所述场景模块需求数量;
针对所述多个场景模块中的任一所述场景模块,
将与所述场景模块的任意一侧的所述路口数量信息和所述路口尺寸相同,且与所述场景模块的所述路口位置信息和所述路口开口方向相对应的其他场景模块与所述场景模块进行拼接,以得到所述场景模块之间拼接位置的两路径所在的平面的夹角处于预设角度区间,且相互联通的路径;
将各个所述场景模块之间进行拼接以联通所述场景模块中全部路径,且进行拼接的所述场景模块的数量达到所述场景模块需求数量,以构建得到所述目标虚拟场景。
一种可能的实施方式中,处理器1610执行的指令中,所述将与所述场景模块的所述路口数量信息和所述路口尺寸相同,且与所述场景模块的所述路口位置信息和所述路口开口方向相对应的其他场景模块与所述场景模块进行拼接,以得到所述场景模块之间相互联通的路径,包括:
确定各侧的所述路口数量信息均大于预设数量的所述其他场景模块中是否存在第一侧的所述路口数量信息和所述路口尺寸与所述场景模块中第二侧的所述路口数量信息和所述路口尺寸相同的候选场景模块;
响应于所述路口数量信息大于预设数量的所述其他场景模块中存在第一侧的所述路口数量信息和所述路口尺寸与所述场景模块中第二侧的所述路口数量信息和所述路口尺寸相同的所述候选场景模块,确定所述候选场景模块中是否存在第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块;
响应于所述候选场景模块中存在第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块,则将所述场景模块的第二侧与所述目标场景模块的第一侧相互拼接,以得到所述场景模块之间相互联通的路径。
一种可能的实施方式中,处理器1610执行的指令中,所述响应于所述路口数量信息大于预设数量的所述其他场景模块中存在第一侧的所述路口数量信息和所述路口尺寸与所述场景模块中第二侧的所述路口数量信息和所述路口尺寸相同的所述候选场景模块之后,还包括:
响应于所述第一侧的所述路口数量信息和所述第二侧的所述路口数量信息为零,则将所述场景模块的第二侧与任意一个所述候选场景模块的第一侧相互拼接。
一种可能的实施方式中,处理器1610执行的指令中,所述确定所述候选场景模块中是否存在第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块之后,还包括:
响应于所述候选场景模块中不存在第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,和/或,第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块,则确定所述候选场景模块中是否存在经过变换操作后的第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块;其中,所述变换操作,至少包括:以过所述场景模块中心点且与所述场景模块的底面相互垂直的中心轴为旋转轴的旋转操作;
响应于所述候选场景模块中存在经过变换操作后的第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块,则将所述场景模块的第二侧与所述目标场景模块的第一侧相互拼接,以得到所述场景模块之间相互联通的路径。
一种可能的实施方式中,处理器1610执行的指令中,所述根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景之后,还包括:
根据所述目标虚拟场景中的路径生成沿所述路径分布的寻路轨迹;
确定是否存在至少两条相互不联通的所述寻路轨迹;
响应于存在至少两条相互不联通的所述寻路轨迹,则替换长度较短的寻路轨迹所对应的场景模块,直至所述目标虚拟场景中不存在至少两条相互不联通的所述寻路轨迹。
一种可能的实施方式中,处理器1610执行的指令中,所述直至所述目标虚拟场景中不存在至少两条相互不联通的所述寻路轨迹之后,还包括:
在所述寻路轨迹上设置多个碰撞体;其中,所述碰撞体用于承载可移动虚拟对象,以使得所述可移动虚拟对象能够在所述寻路轨迹上沿任意方向移动;
在所述目标虚拟场景中创建可移动的测试虚拟角色,并将测试任务配置至所述测试虚拟角色,以使所述测试虚拟角色根据所述测试任务沿所述寻路轨迹的延伸方向移动;
响应于所述测试虚拟角色能够遍历所述寻路轨迹,则根据预先获取的虚拟资产,在所述碰撞体对应位置创建所述可移动虚拟对象。
一种可能的实施方式中,处理器1610执行的指令中,所述根据预先获取的虚拟资产,在所述碰撞体对应位置创建所述可移动虚拟对象,包括:
确定所述寻路轨迹在所述场景模块中对应的路径的面积;
根据所述寻路轨迹在所述场景模块中对应的路径的面积,确定各所述场景模块中在所述碰撞体对应位置创建的所述可移动虚拟对象的分布密度。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的虚拟场景构建方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的虚拟场景构建方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例所述的虚拟场景构建方法相对应的,本公开还提供了一种计算机程序产品,其包括计算机程序指令。在一些实施例中,所述计算机程序指令可以由计算机的一个或多个处理器执行以使得所述计算机和/或所述处理器执行所述的虚拟场景构建方法。对应于所述的虚拟场景构建方法各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使所述计算机和/或所述处理器执行如上任一实施例所述的虚拟场景构建方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
可以理解的是,在使用本申请中各个实施例的技术方案之前,均会通过恰当的方式对所涉及的个人信息的类型、使用范围、使用场景等告知用户,并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确的提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主的选择是否向执行本申请技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定的实现方式,响应于接受到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本申请的实现方式构成限定,其他满足相关法律法规的方式也可应用于本申请的实现方式中。
本领域技术技术人员应当理解,本申请的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本申请可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本申请还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (21)

1.一种虚拟场景构建方法,其特征在于,所述方法包括:
根据预先获取的单位像素模块拼接得到多个场景模块平面图;
根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块;其中,每个场景模块,至少包括:路径;
确定每个场景模块中所述路径所对应的路径信息;以及,
获取场景需求参数,并根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景。
2.根据权利要求1所述的方法,其特征在于,所述单位像素模块,包括:第一类像素以及第二类像素;
所述根据预先获取的单位像素模块拼接得到多个场景模块平面图,包括:
根据预先获取到的拼接需求信息确定在多个所述场景模块平面图中的路径面积、路径位置、非路径面积以及非路径位置;
在预设尺寸的多个初始平面图中的所述路径位置拼接所述第一类像素以得到与所述路径面积对应的路径区域;
在多个所述初始平面图中的所述非路径位置拼接所述第二类像素以得到与所述非路径面积对应的非路径区域;
根据所述路径区域和所述非路径区域确定所述多个场景模块平面图。
3.根据权利要求2所述的方法,其特征在于,所述根据所述路径区域和所述非路径区域确定所述多个场景模块平面图,包括:
根据预先获取的第一预设贴图赋予所述路径区域以得到路径平面图;
根据预先获取的第二预设贴图赋予所述非路径区域以得到非路径平面图;
根据所述路径平面图和所述非路径平面图确定所述多个场景模块平面图。
4.根据权利要求3所述的方法,其特征在于,所述根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块,包括:
将每个所述场景模块平面图中的所述路径平面图和所述非路径平面图均等划分为多个平面网格,并确定每个平面网格对应的所述场景信息;其中,所述场景信息,至少包括:所述平面网格对应的RGB值;
根据每个平面网格对应的RGB值确定所述每个平面网格在所述场景模块中对应位置的高度值;
根据每个所述场景模块平面图中所述每个平面网格在所述场景模块中对应位置的高度值,对每个所述场景模块平面图中的每个平面网格执行3D化操作,以构建得到与多个包含与所述路径平面图对应的路径的所述场景模块。
5.根据权利要求4所述的方法,其特征在于,所述根据每个平面网格对应的RGB值确定所述每个平面网格在所述场景模块中对应位置的高度值,包括:
设置最小RGB值对应初始高度值,确定每个平面网格对应的RGB值与最小RGB值之间的差值;
响应于每个平面网格对应的RGB值与最小RGB值之间的差值达到预设间隔RGB值的预设倍数,则将所述每个平面网格在所述场景模块中对应位置的高度值增加预设高度值。
6.根据权利要求4所述的方法,其特征在于,所述根据每个平面网格对应的RGB值确定所述每个平面网格在所述场景模块中对应位置的高度值,包括:
设置最大RGB值对应初始高度值,确定每个平面网格对应的RGB值与最大RGB值之间的差值;
响应于每个平面网格对应的RGB值与最大RGB值之间的差值达到预设间隔RGB值的预设倍数,则将所述每个平面网格在所述场景模块中对应位置的高度值增加预设高度值。
7.根据权利要求4所述的方法,其特征在于,所述根据每个平面网格对应的RGB值确定所述每个平面网格在所述场景模块中对应位置的高度值,包括:
确定所述场景模块平面图的中心位置,并将与所述中心位置之间的距离超过预设距离的平面网格在所述场景模块中的对应位置确定为边界;
将所述路径平面图中的平面网格在所述场景模块中的对应位置确定为路径;
将所述边界中包含所述路径的第一区域所对应的平面网格的RGB值设置为第一RGB值,并将所述边界中不包含所述路径的第二区域所对应的平面网格的RGB值设置为第二RGB值;
根据所述第一区域所对应的平面网格的第一RGB值确定所述第一区域对应的第一高度值,并根据所述第二区域所对应的平面网格的第二RGB值确定所述第二区域对应的第二高度值。
8.根据权利要求4所述的方法,其特征在于,所述根据每个所述场景模块平面图中所述每个平面网格在所述场景模块中对应位置的高度值,对每个所述场景模块平面图中的每个平面网格执行3D化操作,以构建得到与多个包含与所述路径平面图对应的路径的所述场景模块,包括:
根据每个所述场景模块平面图中所述每个平面网格在所述场景模块中对应位置的高度值,依次在每个所述场景模块平面图中的每个平面网格对应位置放置单位体积的白盒模型块,以构建得到白盒化场景模块;
在所述白盒化场景模块中的预设位置绑定预先获取到的虚拟资产,以构建得到所述场景模块。
9.根据权利要求3所述的方法,其特征在于,所述根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块,包括:
读取所述路径平面图中表征所述路径区域在所述场景模块中对应位置的高度值的第一高度参数,以及,读取所述非路径平面图中表征所述非路径区域在所述场景模块中对应位置的高度值的第二高度参数;
根据所述第一高度参数对所述路径平面图执行3D化操作,并根据所述第二高度参数对所述非路径平面图执行3D化操作,以构建得到与多个所述场景模块平面图对应的多个场景模块。
10.根据权利要求1所述的方法,其特征在于,所述构建得到与多个包含与所述路径平面图对应的路径的所述场景模块之后,还包括:
确定所述路径所在的平面与所述场景模块的底面之间的夹角是否超过预设角度;
响应于所述路径所在的平面与所述场景模块的底面之间的夹角超过所述预设角度,则调整所述路径对应的高度值以使所述路径所在的平面与所述场景模块的底面之间的夹角小于或等于所述预设角度,并根据所述路径对应的调整后的高度值重新确定在场景模块平面图中与所述路径对应的平面网格的RGB值。
11.根据权利要求1所述的方法,其特征在于,所述确定每个场景模块中所述路径所对应的路径信息,包括:
针对所述多个场景模块中的任一所述场景模块,
根据所述场景模块中的所述路径的延伸方向确定用于与其他场景模块中的路径联通的路口,并确定所述路口对应的路口位置信息、路口数量信息、路口尺寸以及路口开口方向;
根据每个所述场景模块中所述路口对应的路口位置信息、路口数量信息、路口尺寸以及路口开口方向确定每个场景模块中所述路径所对应的路径信息。
12.根据权利要求11所述的方法,其特征在于,所述根据所述场景需求参数将所述路口位置信息相对应的所述场景模块进行拼接以构建目标虚拟场景,包括:
根据所述场景需求参数确定所述场景模块需求数量;
针对所述多个场景模块中的任一所述场景模块,
将与所述场景模块的任意一侧的所述路口数量信息和所述路口尺寸相同,且与所述场景模块的所述路口位置信息和所述路口开口方向相对应的其他场景模块与所述场景模块进行拼接,以得到所述场景模块之间拼接位置的两路径所在的平面的夹角处于预设角度区间,且相互联通的路径;
将各个所述场景模块之间进行拼接以联通所述场景模块中全部路径,且进行拼接的所述场景模块的数量达到所述场景模块需求数量,以构建得到所述目标虚拟场景。
13.根据权利要求11所述的方法,其特征在于,所述将与所述场景模块的所述路口数量信息和所述路口尺寸相同,且与所述场景模块的所述路口位置信息和所述路口开口方向相对应的其他场景模块与所述场景模块进行拼接,以得到所述场景模块之间相互联通的路径,包括:
确定各侧的所述路口数量信息均大于预设数量的所述其他场景模块中是否存在第一侧的所述路口数量信息和所述路口尺寸与所述场景模块中第二侧的所述路口数量信息和所述路口尺寸相同的候选场景模块;
响应于所述路口数量信息大于预设数量的所述其他场景模块中存在第一侧的所述路口数量信息和所述路口尺寸与所述场景模块中第二侧的所述路口数量信息和所述路口尺寸相同的所述候选场景模块,确定所述候选场景模块中是否存在第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块;
响应于所述候选场景模块中存在第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块,则将所述场景模块的第二侧与所述目标场景模块的第一侧相互拼接,以得到所述场景模块之间相互联通的路径。
14.根据权利要求13所述的方法,其特征在于,所述响应于所述路口数量信息大于预设数量的所述其他场景模块中存在第一侧的所述路口数量信息和所述路口尺寸与所述场景模块中第二侧的所述路口数量信息和所述路口尺寸相同的所述候选场景模块之后,还包括:
响应于所述第一侧的所述路口数量信息和所述第二侧的所述路口数量信息为零,则将所述场景模块的第二侧与任意一个所述候选场景模块的第一侧相互拼接。
15.根据权利要求13所述的方法,其特征在于,所述确定所述候选场景模块中是否存在第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块之后,还包括:
响应于所述候选场景模块中不存在第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,和/或,第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块,则确定所述候选场景模块中是否存在经过变换操作后的第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块;其中,所述变换操作,至少包括:以过所述场景模块中心点且与所述场景模块的底面相互垂直的中心轴为旋转轴的旋转操作;
响应于所述候选场景模块中存在经过变换操作后的第一侧的路口开口方向与所述场景模块中第二侧的所述路口开口方向相对,且第一侧的所述路口位置信息与所述场景模块中第二侧的所述路口位置重叠的目标场景模块,则将所述场景模块的第二侧与所述目标场景模块的第一侧相互拼接,以得到所述场景模块之间相互联通的路径。
16.根据权利要求1所述的方法,其特征在于,所述根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景之后,还包括:
根据所述目标虚拟场景中的路径生成沿所述路径分布的寻路轨迹;
确定是否存在至少两条相互不联通的所述寻路轨迹;
响应于存在至少两条相互不联通的所述寻路轨迹,则替换长度较短的寻路轨迹所对应的场景模块,直至所述目标虚拟场景中不存在至少两条相互不联通的所述寻路轨迹。
17.根据权利要求1所述的方法,其特征在于,所述直至所述目标虚拟场景中不存在至少两条相互不联通的所述寻路轨迹之后,还包括:
在所述寻路轨迹上设置多个碰撞体;其中,所述碰撞体用于承载可移动虚拟对象,以使得所述可移动虚拟对象能够在所述寻路轨迹上沿任意方向移动;
在所述目标虚拟场景中创建可移动的测试虚拟角色,并将测试任务配置至所述测试虚拟角色,以使所述测试虚拟角色根据所述测试任务沿所述寻路轨迹的延伸方向移动;
响应于所述测试虚拟角色能够遍历所述寻路轨迹,则根据预先获取的虚拟资产,在所述碰撞体对应位置创建所述可移动虚拟对象。
18.根据权利要求17所述的方法,其特征在于,所述根据预先获取的虚拟资产,在所述碰撞体对应位置创建所述可移动虚拟对象,包括:
确定所述寻路轨迹在所述场景模块中对应的路径的面积;
根据所述寻路轨迹在所述场景模块中对应的路径的面积,确定各所述场景模块中在所述碰撞体对应位置创建的所述可移动虚拟对象的分布密度。
19.一种虚拟场景构建装置,其特征在于,所述装置包括:
拼接模块,被配置为根据预先获取的单位像素模块拼接得到多个场景模块平面图;
3D化操作模块,被配置为根据所述场景模块平面图中的场景信息对所述场景模块平面图执行3D化操作以构建得到与多个所述场景模块平面图对应的多个场景模块;其中,每个场景模块,至少包括:路径;
确定模块,被配置为确定每个场景模块中所述路径所对应的路径信息;
构建模块,被配置为获取场景需求参数,并根据所述场景需求参数将所述路径信息相对应的所述场景模块进行拼接以构建目标虚拟场景。
20.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至18任意一项所述的方法。
21.一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使所述计算机实现权利要求1至18任一项所述的方法。
CN202311437770.8A 2023-10-31 2023-10-31 虚拟场景构建方法、装置、电子设备及存储介质 Pending CN117398685A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311437770.8A CN117398685A (zh) 2023-10-31 2023-10-31 虚拟场景构建方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311437770.8A CN117398685A (zh) 2023-10-31 2023-10-31 虚拟场景构建方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117398685A true CN117398685A (zh) 2024-01-16

Family

ID=89494145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311437770.8A Pending CN117398685A (zh) 2023-10-31 2023-10-31 虚拟场景构建方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117398685A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117953175A (zh) * 2024-03-26 2024-04-30 湖南速子文化科技有限公司 一种虚拟世界数据模型的构建方法、系统、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117953175A (zh) * 2024-03-26 2024-04-30 湖南速子文化科技有限公司 一种虚拟世界数据模型的构建方法、系统、设备及介质
CN117953175B (zh) * 2024-03-26 2024-06-11 湖南速子文化科技有限公司 一种虚拟世界数据模型的构建方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
CN107358649B (zh) 地形文件的处理方法和装置
CN112862935B (zh) 游戏角色的运动处理方法及装置、存储介质、计算机设备
CN101925892B (zh) 用于非职业志愿者的基于照片的虚拟世界创建系统
CN112717404B (zh) 虚拟对象的移动处理方法、装置、电子设备及存储介质
CN117398685A (zh) 虚拟场景构建方法、装置、电子设备及存储介质
CN106326334A (zh) 一种电子地图的显示、生成方法和装置
CN108465241A (zh) 游戏声音混响的处理方法、装置、存储介质及电子设备
CN105741340B (zh) 一种用于网页展示的输电线路三维场景仿真方法和系统
Scianna et al. Digital photogrammetry, TLS survey and 3D modelling for VR and AR applications in CH
CN117252959A (zh) 特效动画的生成方法、装置、电子设备及存储介质
Virtanen et al. Browser based 3D for the built environment
Empler Cultural heritage: displaying the forum of Nerva with new technologies
CN113181642B (zh) 一种具有混合材质的墙体模型的生成方法及装置
CN115120980A (zh) 游戏场景的生成方法、装置、存储介质和电子装置
CN114168696A (zh) 地格划分、地格渲染方法、装置、设备及可读介质
Banfi et al. Virtual access to heritage through scientific drawing, semantic models and VR-experience of the Stronghold of Arquata del Tronto after the earthquake
Szwoch et al. 3D optical reconstruction of building interiors for game development
KR102700729B1 (ko) 3차원 빌딩 모델 및 도로 모델을 이용한 3차원 거리뷰 모델 생성 방법 및 시스템
CN116899216B (zh) 一种虚拟场景中特效融合的处理方法和装置
Tauscher et al. Map Generation for Retro Gaming Engines
Tully Contributions to Big Geospatial Data Rendering and Visualisations
Paraizo et al. Immersiveness in Virtual Heritage: Experiences of Rio de Janeiro
Christen 3D Computer Graphics with Python
CN116392814A (zh) 虚拟世界中的寻路方法、装置、设备及介质
Bender et al. HW3D: A tool for interactive real-time 3D visualization in GIS supported flood modelling

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