CN117547825B - 碰撞数据的管理方法、装置、设备及存储介质 - Google Patents
碰撞数据的管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117547825B CN117547825B CN202410049046.6A CN202410049046A CN117547825B CN 117547825 B CN117547825 B CN 117547825B CN 202410049046 A CN202410049046 A CN 202410049046A CN 117547825 B CN117547825 B CN 117547825B
- Authority
- CN
- China
- Prior art keywords
- collision
- data
- dimensional model
- subspace
- reformable
- 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 66
- 238000013523 data management Methods 0.000 title claims abstract description 13
- 230000009466 transformation Effects 0.000 claims abstract description 10
- 230000004048 modification Effects 0.000 claims description 26
- 238000012986 modification Methods 0.000 claims description 26
- 230000035515 penetration Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 18
- 238000007667 floating Methods 0.000 claims description 15
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 9
- 238000010276 construction Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 230000000149 penetrating effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004088 simulation Methods 0.000 description 6
- 230000004888 barrier function Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 5
- 238000009412 basement excavation Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000003379 elimination reaction Methods 0.000 description 3
- 238000005065 mining Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000002407 reforming Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000386 athletic effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004441 surface measurement Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 208000015041 syndromic microphthalmia 10 Diseases 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
- A63F13/577—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种碰撞数据的管理方法、装置、设备及存储介质,涉及计算机技术领域。所述方法包括:获取虚拟环境中可改造三维模型的碰撞数据集,碰撞数据集中包括用于描述可改造三维模型的碰撞面的碰撞数据,可改造三维模型的内部空间被划分成的多个子空间中的第一类子空间,存在与可改造三维模型的表面相重合的目标面,可改造三维模型以目标面为碰撞面;在第一类子空间被选择改造的情况下,基于第一类子空间对应的目标面,以及除目标面外的剩余面,得到可改造三维模型的删除碰撞面和添加碰撞面;将添加碰撞面的碰撞数据添加进碰撞数据集,以及将删除碰撞面的碰撞数据从碰撞数据集中删除。本申请能够降低三维模型内部改造时碰撞数据的内存占用。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种碰撞数据的管理方法、装置、设备及存储介质。
背景技术
目前,在一些游戏中,用户可通过挖掘、摆放等操作,在所处虚拟场景的虚拟地表以下建造出一个可供虚拟对象活动的虚拟地下空间。
在相关技术中,虚拟场景中的虚拟地表是一个在高度H位置的平面,该平面以下未被挖掘的空间预先被填满格子碰撞体,如1立方米的立方碰撞体,用户每挖掘一次,相关技术都将对应的格子碰撞体移除,以消除该格子碰撞体对虚拟对象的阻挡,从而实现建造虚拟地下空间。
然而,在虚拟地表以下的空间的体积比较大时,预先填充的格子碰撞体会很多,如此相关技术需要大量的内存来存储格子碰撞体对应的碰撞数据,导致碰撞数据的内存占用较大。
发明内容
本申请实施例提供了一种碰撞数据的管理方法、装置、设备及存储介质。所述技术方案包括如下内容。
根据本申请实施例的一个方面,提供了一种碰撞数据的管理方法,所述方法包括以下内容。
获取虚拟环境中可改造三维模型的碰撞数据集,所述碰撞数据集中包括用于描述所述可改造三维模型的碰撞面的碰撞数据,所述可改造三维模型的内部空间被划分成多个子空间,所述多个子空间中的第一类子空间存在与所述可改造三维模型的表面相重合的目标面,所述可改造三维模型以所述目标面为所述碰撞面;
对于各个所述第一类子空间,在所述第一类子空间被选择改造的情况下,基于所述第一类子空间对应的目标面,得到所述可改造三维模型的删除碰撞面,以及基于所述第一类子空间对应的除所述目标面外的剩余面,得到所述可改造三维模型的添加碰撞面;
将所述添加碰撞面的碰撞数据添加进所述碰撞数据集,以及将所述删除碰撞面的碰撞数据从所述碰撞数据集中删除。
根据本申请实施例的一个方面,提供了一种碰撞数据的管理装置,所述装置包括:
数据集获取模块,用于获取虚拟环境中可改造三维模型的碰撞数据集,所述碰撞数据集中包括用于描述所述可改造三维模型的碰撞面的碰撞数据,所述可改造三维模型的内部空间被划分成多个子空间,所述多个子空间中的第一类子空间存在与所述可改造三维模型的表面相重合的目标面,所述可改造三维模型以所述目标面为所述碰撞面;
碰撞面确定模块,用于对于各个所述第一类子空间,在所述第一类子空间被选择改造的情况下,基于所述第一类子空间对应的目标面,得到所述可改造三维模型的删除碰撞面,以及基于所述第一类子空间对应的除所述目标面外的剩余面,得到所述可改造三维模型的添加碰撞面;
数据集调整模块,用于将所述添加碰撞面的碰撞数据添加进所述碰撞数据集,以及将所述删除碰撞面的碰撞数据从所述碰撞数据集中删除。
根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述碰撞数据的管理方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述碰撞数据的管理方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述碰撞数据的管理方法。
本申请实施例提供的技术方案可以包括如下有益效果。
通过以第一类子空间对应的目标面为可改造三维模型的碰撞面(如方形的碰撞面可用4个三维坐标点描述),实现仅需维护用于描述碰撞面的碰撞数据,而无需维护其他子空间的碰撞数据,相比于相关技术中需要维护预先填满的格子碰撞体的碰撞数据(如立方碰撞体可用8个三维坐标点描述),有效降低了可改造三维模型的碰撞数据对内存的占用。同时,由于碰撞面的描述点显著少于格子碰撞体的描述点,以可改造三维模型的碰撞面构建碰撞数据,可进一步有效降低可改造三维模型的碰撞数据对内存的占用。
另外,在对可改造三维模型进行内部改造的情况下,通过将添加碰撞面的碰撞数据添加进碰撞数据集,以及将删除碰撞面的碰撞数据从碰撞数据集中删除,实现了仅针对被挖掘的第一类子空间添加碰撞数据,相比于相关技术中将被改造的格子碰撞体进行移除,在内部空间的改造率较低的情况下,可进一步有效降低可改造三维模型的碰撞数据对内存的占用。同时,实现仅需维护第一类子空间被改造后所形成的内部改造区域的表面对应的碰撞面的碰撞数据,可进一步有效降低可改造三维模型的碰撞数据对内存的占用。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的方案实施环境的示意图;
图2是本申请一个实施例提供的碰撞数据的管理方法的流程图;
图3是本申请一个实施例提供的可改造三维模型的碰撞面的示意图;
图4是本申请一个实施例提供的向下挖掘时碰撞面的调整方法的示意图;
图5是本申请一个实施例提供的虚拟陆地的碰撞管理的示意图;
图6是本申请一个实施例提供的向左挖掘时碰撞面的调整方法的示意图;
图7是本申请一个实施例提供的向上挖掘时碰撞面的调整方法的示意图;
图8是相关技术提供的碰撞管理的示意图;
图9是本申请一个实施例提供的碰撞数据的管理装置的框图;
图10是本申请另一个实施例提供的碰撞数据的管理装置的框图;
图11是本申请一个实施例提供的计算机设备的框图。
具体实施方式
在对本申请实施例进行介绍说明之前,首先对本申请中涉及的相关名词进行解释说明。
1、虚拟场景(Scene):应用程序(如游戏类应用程序)的客户端在终端设备上运行时显示(或提供)的场景,该虚拟场景是指营造出的供虚拟对象进行活动(如游戏竞技、游戏关卡、游戏场景改造等)的环境,如可以是虚拟房屋、虚拟岛屿、虚拟地图等。该虚拟场景可以是对真实世界的仿真场景,也可以是半仿真半虚构的场景,还可以是纯虚构的场景。虚拟场景可以是3维虚拟环境,也可以是2.5维虚拟场景,本申请实施例对此不作限定。该虚拟场景也可以被称之为虚拟环境。
其中,虚拟对象是指用户帐号在应用程序中控制的对象。以应用程序为游戏类应用程序为例,虚拟对象是指用户帐号在游戏类应用程序中控制的游戏角色。虚拟对象可以是人物形态,可以是动物、卡通或者其它形态,本申请实施例对此不作限定。
2、碰撞(Collision):碰撞通常用于描述虚拟场景中一个实体产生的阻挡,如虚拟人物行走在虚拟地面上,虚拟地面即可对虚拟人物产生垂直方向的阻挡;又如虚拟人物在行走过程遇到一棵虚拟树,虚拟树可对虚拟人物产生水平方向的阻挡。
在大多数游戏的虚拟场景中,虚拟对象(如虚拟角色)本身没有阻挡,虚拟环境中的虚拟房屋、虚拟石块、虚拟地面、虚拟树木等则是在游戏制作时预先生成的,其对应的阻挡不在游戏运行时产生变化,这样的阻挡即是静态阻挡,对应的碰撞也称为静态碰撞;而在一些特制的玩法中,一些虚拟家具、虚拟石块等能产生阻挡的实体,可以被虚拟对象的操作所改变,如新增、移动、转动、移除等,这样的阻挡即是动态阻挡,对应的碰撞也称为动态碰撞。
3、内存高效(Memory Effective):其是指利用相对更少的内存达到同样的效果或目的。
4、虚拟物件(Entity):在应用程序(如游戏类应用程序)对应的虚拟场景中,虚拟对象可见、可触碰、可交互等的一些虚拟物体(如虚拟桌子、虚拟椅子、虚拟石头、虚拟建筑、虚拟树木等)统称为虚拟物件。
5、PhysX引擎:其是一款应用于游戏的物理引擎(或称碰撞管理引擎),可以提供碰撞管理、碰撞检测、物理模拟等功能。该引擎的碰撞数据的描述类型是多边形网格。与管理体素或立体网格类型的碰撞数据的引擎相比,PhysX引擎可以以较低的内存开销提供较高碰撞精细度。
在PhysX引擎中,虚拟物件的碰撞由多边形网格描述,该多边形网格的数据形式是若干三维浮点数集合组成的三维点阵(即碰撞数据),三维点阵中每一个三维浮点数集合代表多边形网格上的一个顶点的相对位置。
6、虚拟地下空间:虚拟场景所提供的地下部分,该虚拟地下空间可以是对真实地下的仿真空间,也可以是纯虚构空间,还可以是半仿真半虚构的空间。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的方案实施环境的示意图。该实施环境可以包括:终端设备10和服务器20。
终端设备10可以是诸如智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、多媒体播放设备、PC(Personal Computer,个人计算机)、智能机器人、车载终端、可穿戴设备等电子设备。终端设备10中可以安装目标应用程序的客户端,该目标应用程序可以是诸如游戏类应用程序、社交娱乐类应用程序、模拟学习类应用程序、AR(AugmentedReality,增强现实)类应用程序、VR(Virtual Reality,虚拟现实)类应用程序、MR(MixedReality,混合现实)类应用程序,以及任何支持虚拟环境改造的应用程序,本申请实施例对此不作限定。可选地,上述目标应用程序可以以手机客户端、PC客户端、网页(Web)客户端、小程序等形式安装运行在不同的终端设备10中,本申请实施例对此不作限定。该目标应用程序也可以是离线应用程序,还可以是即插即用类的应用程序,本申请实施例对此不作限定。
其中,游戏类应用程序可以是诸如大型多人在线角色扮演(Massive MultiplayerOnline Role-Playing Game,MMORPG)游戏、休闲类游戏、派对类游戏、沙盒类游戏、动作冒险类游戏、多人在线战术竞技(Multiplayer Online Battle Arena,MOBA)游戏、第一人称射击游戏(First-Person Shooting Game,FPS)、多人枪战类生存游戏、第三人称射击游戏(Third-Person Shooting Game,TPS)、策略游戏(Simulation Game,SLG)等中的任意一种,本申请实施例对此不作限定。
服务器20用于为终端设备10中的目标应用程序(如游戏类应用程序)的客户端提供后台服务。例如,服务器20可以是上述应用程序(如游戏类应用程序)的后台服务器,以为不同的终端设备10中的目标应用程序(如游戏类应用程序)的客户端提供后台服务。上述服务器20可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端设备10和服务器20之间可通过网络30进行互相通信。其中,该网络30可以是有线网络,也可以是无线网络。
示例性地,以安装运行有游戏类应用程序的客户端的终端设备10为例。客户端通过终端设备10在虚拟环境中显示可改造三维模型,该可改造三维模型支持内部空间改造。响应于可改造三维模型的第一类子空间被选择改造,客户端向服务器20发送改造通知;其中,可改造三维模型的内部空间被划分成多个子空间,第一类子空间是指存在与可改造三维模型的表面相重合的目标面的子空间,改造通知用于通知服务器20第一类子空间被选择改造。
服务器20中维护有用于描述可改造三维模型的碰撞面的碰撞数据,该碰撞面为第一类子空间对应的目标面(也即仅在可改造三维模型的表面实现有碰撞),服务器20在接收到该改造通知后,针对可改造三维模型对应的碰撞数据集,添加改造第一类子空间所产生的添加碰撞面的碰撞数据,以及删除改造第一类子空间所产生的删除碰撞面的碰撞数据(也即仅针对被改造的第一类子空间,对可改造三维模型进行碰撞管理)。服务器20向客户端发送碰撞面调整通知,客户端根据碰撞面调整通知,在虚拟环境中显示内部改造后的三维模型。
可选地,上述碰撞数据的管理过程也可以由终端设备10来实现,也即终端设备10来维护可改造三维模型的碰撞数据,以及根据用户针对可改造三维模型的改造操作,对可改造三维模型的碰撞数据进行调整,本申请实施例对此不作限定。
下面,将通过方法实施例对本申请提供的技术方案进行介绍说明。
请参考图2,其示出了本申请一个实施例提供的碰撞数据的管理方法的流程图,该方法各步骤的执行主体可以是图1所示方案实施环境中的终端设备10或服务器20,下述以服务器20为例进行说明,该方法可以包括如下几个步骤(201~203)。
步骤201,获取虚拟环境中可改造三维模型的碰撞数据集,该碰撞数据集中包括用于描述可改造三维模型的碰撞面的碰撞数据,可改造三维模型的内部空间被划分成多个子空间,多个子空间中的第一类子空间存在与可改造三维模型的表面相重合的目标面,可改造三维模型以目标面为碰撞面。
上述虚拟环境可以是指由上述目标应用程序的客户端在终端设备上运行时显示(或提供)的环境。在本申请实施例中,虚拟环境可被划分成不同的三维模型,诸如虚拟树林、虚拟建筑、虚拟山体、虚拟陆地(包括虚拟地表和虚拟地表之下的空间)、虚拟河流、虚拟家具、虚拟桌椅等。其中,三维模型可以是指虚构的立体模型,其可以由二维网格围合而成,三维模型在虚拟环境中占有一定的体积。
该虚拟环境中的可改造三维模型支持用户进行内部改造,本申请实施例对可改造三维模型不作限定,其可以是任意支持内部改造的三维模型,诸如虚拟树木、虚拟山体、虚拟陆地、虚拟立方体,以及任意具有内部空间的三维模型。其中,内部改造可以是指针对可改造三维模型的内部空间进行改造的过程,如针对虚拟陆地的内部空间进行挖掘,以得到虚拟地下空间的过程。可选地,该虚拟环境还支持虚拟物件的新增、移动、转动、移除等操作,本申请实施例对此不作限定。
示例性地,以游戏类应用程序中的虚拟陆地为例,对于虚拟地表之上的空间,用户可将目标应用程序提供的虚拟积木、虚拟砖块、虚拟家具等虚拟物件摆放到虚拟环境中,进而构建出一个复杂的虚拟环境;对于虚拟地表之下的空间,用户可以进行挖掘,以构建出一个虚拟地下空间,在挖掘出的虚拟地下空间,用户也可以进行虚拟物件的摆放等操作。
在一些实施例中,虚拟环境的指定区域中的可改造三维模型支持用户进行改造,该指定区域可以根据实际使用需求进行设置与调整,如对于虚拟环境中一个边长为200米的正方形区域中的任一可改造三维模型,用户均可进行内部改造。
可选地,上述虚拟环境可以是目标应用程序对应的某一玩法所提供的环境,如游戏类应用程序对应的某一游戏玩法所提供的环境,上述虚拟环境也可以是目标应用程序对应的某一活动所提供的环境,上述虚拟环境还可以是目标应用程序对应的某一任务关卡所提供的环境,本申请实施例对此不作限定。
在本申请实施例中,可改造三维模型的内部空间可以是指可改造三维模型的表面以内的空间,如由可改造三维模型的表面围合而成的空间。可改造三维模型的表面以外的空间可以称作可改造三维模型的外部空间。例如,对于虚拟陆地,虚拟地表之上的空间为虚拟陆地的外部空间,虚拟地表之下的空间为虚拟陆地的内部空间;又例如,对于虚拟树木,树表之外的空间为虚拟树木的外部空间,树表之内的空间为虚拟树木的内部空间。
可改造三维模型的内部空间可以被划分成多个相同的子空间,如大小相同、形状为立方体的多个子空间。每个子空间均支持用户进行改造,如对于任意一个子空间,用户可对该子空间进行挖掘,该挖掘可以是指移除该子空间的过程。
碰撞面是指用于实现碰撞的面,也即碰撞面能够对虚拟对象产生阻挡,虚拟对象在接触碰撞面时会触发碰撞事件,如可改造三维模型的碰撞面用于实现可改造三维模型的碰撞。
第一类子空间对应的目标面可以拼接成可改造三维模型的表面,可改造三维模型以目标面为碰撞面,也即可改造三维模型的碰撞面属于可改造三维模型的表面。例如,对于虚拟立方体,其对应有6个面,每个面由多个第一类子空间对应的目标面拼接而成,则对于每个面,可将其对应的多个第一类子空间对应的目标面,确定为该面对应的多个碰撞面,该多个碰撞面可拼接而成该面。在一些实施例中,可改造三维模型的碰撞面还可覆盖于可改造三维模型的表面上,本申请实施例对此不作限定。
本申请实施例对碰撞面的形状不作限制,其可以是任一多边形网格,如正方形、三角形、六边形等。碰撞数据集可以是指由碰撞数据组合而成的集合或序列。碰撞数据用于描述碰撞面。可选地,该碰撞数据的数据形式是若干三维浮点数集合组成的三维点阵,三维点阵中每一个三维浮点数集合代表碰撞面上的一个顶点的相对位置。例如,对于正方形碰撞面,其对应的碰撞数据可以为4个三维浮点数集合组成的三维点阵,每一个三维浮点数集合代表该正方形碰撞面上的一个顶点的相对位置,该三维浮点数集合可以是顶点坐标,即顶点的三维坐标。可选地,每个三维坐标需要3个浮点数来表示,分别对应空间坐标系中的(x,y,z),每个浮点数可占用4个字节。
示例性地,上述目标应用程序可以以PhysX引擎作为碰撞管理引擎,也即上述目标应用程序通过PhysX引擎维护可改造三维模型的碰撞和碰撞数据,该PhysX引擎采用多边形网格描述可改造三维模型的碰撞,以及采用三维点阵构建碰撞数据。
在一个示例中,可改造三维模型的碰撞数据集的构建过程可以包括如下内容。
1、获取各个第一类子空间对应的目标面的坐标数据。
目标面的坐标数据包括目标面的各个顶点的坐标数据,该坐标数据为三维坐标数据,以用于指示目标面的顶点在虚拟环境中的位置。
可选地,服务器的数据库中存储有目标面的各个顶点的坐标数据,服务器可从直接数据库中调取目标面的各个顶点的坐标数据。
可选地,服务器的数据库中存储有各个目标面的中心点坐标和尺寸,服务器在从数据库中拉取到目标面的中心点坐标和尺寸之后,可基于目标面的中心点坐标和尺寸,确定目标面的各个顶点的坐标数据,如此有利于降低坐标数据对内存的占用,降低应用程序的存储开销。
2、根据目标面的坐标数据,构建目标面对应的碰撞面的碰撞数据。
对于各个目标面,根据标面的各个顶点的坐标数据,构建三维点阵,将该三维点阵确定为目标面对应的碰撞面的碰撞数据。其中,目标面即为碰撞面,对于两者,服务器可以仅维护一份数据,以降低应用程序的存储开销。
3、基于各个目标面对应的碰撞面的碰撞数据,获取可改造三维模型的碰撞数据集。
将各个碰撞面的碰撞数据组合成集合,即可得到可改造三维模型的碰撞数据集。
例如,参考图3,对于虚拟环境300中的虚拟山体301,服务器仅针对虚拟山体301对应的各个碰撞面302(如第一类子空间对应的目标面)进行碰撞数据的维护,而对于虚拟山体301对应的除第一类子空间外的子空间,服务器并不进行碰撞数据的维护,相比于相关技术中需要维护预先填满的格子碰撞体的碰撞数据,有效降低了可改造三维模型的碰撞数据对内存的占用,进而降低应用程序的维护成本。同时,由于碰撞面的描述点显著少于格子碰撞体的描述点,以可改造三维模型的碰撞面构建碰撞数据,可进一步有效降低可改造三维模型的碰撞数据对内存的占用。
步骤202,对于各个第一类子空间,在第一类子空间被选择改造的情况下,基于第一类子空间对应的目标面,得到可改造三维模型的删除碰撞面,以及基于第一类子空间对应的除目标面外的剩余面,得到可改造三维模型的添加碰撞面。
可选地,客户端响应于用户用于改造第一类子空间的改造操作,向服务器发送改造通知,该改造通知用于通知服务器对第一类子空间进行改造。改造通知中包括第一类子空间的标识信息,如第一类子空间的编号、中心点坐标等。
可选地,客户端可以突出显示第一类子空间。例如,如对第一类子空间增加可改造标识,以指示其可被改造;又例如,对第一类子空间增加颜色填充,以与其他子空间进行区分;还例如,高亮显示第一类子空间,本申请实施例对此不作限定。如此有利于用户快速锁定第一类子空间。
服务器可将第一类子空间对应的目标面,确定为可改造三维模型的删除碰撞面,该删除碰撞面是指待取消碰撞的面,也即取消该面的碰撞,使得该面不再对虚拟对象造成阻挡,虚拟对象可对该面进行穿透。
服务器可将第一类子空间对应的剩余面,确定为可改造三维模型的添加碰撞面,该添加碰撞面是指待添加碰撞的面,也即对该面添加碰撞,使得该面可对虚拟对象造成阻挡,虚拟对象不可穿透该面。
例如,参考图4,以虚拟陆地为例,虚拟陆地的内部空间被划分成多个大小相同的子空间(如1立方米的立方体),虚拟地表401由多个第一类子空间403对应的目标面404拼接而成,也即虚拟地表401由多个碰撞面拼接而成。在第一类子空间403被选择挖掘的情况下,服务器将第一类子空间403对应的目标面404,确定为虚拟陆地的删除碰撞面,以及将第一类子空间403对应的5个剩余面,确定为虚拟陆地的5个添加碰撞面402。
在一个示例中,在确定可改造三维模型的删除碰撞面和添加碰撞面之后,本申请实施例还对添加碰撞面的碰撞数据进行构建,该过程可以包括了如下内容。
1、基于第一类子空间的坐标数据,得到第一类子空间对应的目标面的顶点坐标。
可选地,第一类子空间的坐标数据包括第一类子空间的各个顶点的三维坐标,服务器可从第一类子空间的各个顶点的三维坐标中,确定出第一类子空间对应的目标面的顶点坐标,得到坐标数据。
可选地,第一类子空间的坐标数据包括第一类子空间的中心点坐标和第一类子空间的尺寸,服务器可基于第一类子空间的中心点坐标和第一类子空间的尺寸,确定出第一类子空间的各个顶点的三维坐标,进而从第一类子空间的各个顶点的三维坐标中,确定出第一类子空间对应的目标面的顶点坐标,得到坐标数据,如此有利于降低坐标数据对内存的占用,降低应用程序的存储开销。其中,子空间可以是指由多个面围合而成的空间,该各个面的顶点即为子空间的顶点,各个面的边长为子空间的尺寸,如第一类子空间的各个顶点可以是围合成第一类子空间的各个面的顶点。例如,若子空间的形状为正方体,则正方体的六个面的顶点即为子空间的顶点,面的边长可以为子空间的尺寸。
2、基于第一类子空间对应的目标面的顶点坐标,得到添加碰撞面的各个顶点坐标。
可选地,服务器可直接将第一类子空间对应的目标面的顶点坐标,确定为添加碰撞面的顶点坐标。
3、基于添加碰撞面的各个顶点坐标,构建得到添加碰撞面的碰撞数据。
服务器基于添加碰撞面的各个顶点坐标,构建三维点阵,并将该三维点阵确定为添加碰撞面的碰撞数据。其中,三维点阵可以是指由若干三维浮点数集合排列而成的阵列,如以顶点坐标为顶点在上述空间坐标系中的三维坐标(即三维浮点数集合)为例,以x轴上的取值为第一列、y轴上的取值为第二列,以及z轴上的取值为第三例,对各个顶点坐标进行排列,即可得到三维点阵。
由于服务器中维护有删除碰撞面的碰撞数据,服务器仅需确定删除碰撞面的标识信息,即可实现对删除碰撞面的碰撞数据的删除,以及取消删除碰撞面的碰撞。
在一个示例中,在第一类子空间被选择改造的情况下,服务器将被改造的第一类子空间的碰撞标识值从第一取值切换为第二取值,该碰撞标识值用于指示第一类子空间是否被改造。
其中,第一取值用于指示第一类子空间未被改造,第二取值用于指示第一类子空间已被改造。本申请实施例对取值的形式不作限定,诸如数值、字符、文字等。例如,第一取值为0,以用于指示第一类子空间未被改造,第二取值为1,以用于指示第一类子空间已被改造。通过碰撞标识值可有效区分第一类子空间是否被改造,进而在对可改造三维模型进行碰撞检测时,可快速过滤已被改造的第一类子空间,从而提高碰撞检测的效率。
可选地,服务器将碰撞标识值与第一类子空间的中心位置对应存储。示例性地,服务器以第一类子空间的中心位置为key(键),第一类子空间的碰撞标识值为value(值),对碰撞标识值进行存储。其中,key与value之间为映射关系,如key可用于作为value的索引,通过key来查找key对应的映射关系,可快速确定value。
步骤203,将添加碰撞面的碰撞数据添加进碰撞数据集,以及将删除碰撞面的碰撞数据从碰撞数据集中删除。
可选地,服务器基于删除碰撞面的标识信息,将删除碰撞面的碰撞数据从碰撞数据集中删除,以及将添加碰撞面的标识信息,与添加碰撞面的碰撞数据对应添加进碰撞数据集。
例如,参考图4,在第一类子空间403被选择挖掘的情况下,服务器将虚拟陆地对应的碰撞数据集中删除碰撞面(即目标面404)对应的碰撞数据,替换为5个添加碰撞面402的碰撞数据。如此使得虚拟陆地的碰撞仍能够以多边形网格进行描述。
在一个示例中,步骤203还可以包括如下内容。
1、将添加碰撞面确定为可改造三维模型的碰撞面。
可选地,服务器将添加碰撞面的碰撞数据,与添加碰撞面(剩余面)进行关联,使得该添加碰撞面(剩余面)具备碰撞属性(即能够产生阻挡),在添加碰撞面被添加碰撞后,该添加碰撞面即可成为可改造三维模型对应的新碰撞面。
由于添加碰撞面位于可改造三维模型的内部,在添加碰撞面被添加碰撞后,该添加碰撞面围合而成的内部改造空间也可支持虚拟对象进行活动,从而给予用户类同于在外部空间的活动体验,即虚拟对象遇到阻挡则停止移动,虚拟对象没有遇到阻挡则可以继续前进。
2、将被确定为删除碰撞面的碰撞面进行删除,得到内部改造后的三维模型。
可选地,服务器取消删除碰撞面的碰撞数据,与消删除碰撞面之间的关联,使得该删除碰撞面(目标面)失去碰撞属性,从而完成该碰撞面的删除。
内部改造后的三维模型的碰撞面,与可改造三维模型的碰撞面之间存在差异,内部改造后的三维模型的内部空间新增了碰撞面,以使得虚拟对象可在内部改造后的三维模型的内部进行活动。
可选地,服务器还可向客户端发送碰撞面调整通知,客户端根据碰撞面调整通知,在虚拟环境中显示内部改造后的三维模型;其中,碰撞面调整通知用于向客户端通知可改造三维模型的碰撞面变更情况。在一些实施例中,客户端可以仅显示可改造三维模型的碰撞面,以及第一类子空间,以降低可改造三维模型的渲染成本。
在一个示例中,为了有效区分可改造三维模型的内部空间和外部空间,以及可改造三维模型的表面,本申请实施例还可以包括如下内容。
1、基于删除碰撞面的顶点坐标,构建删除碰撞面对应的穿透标识数据,该穿透标识数据用于标识可改造三维模型的内部空间和外部空间。
其中,穿透标识数据用于描述穿透平面,该穿透平面可用于标识可改造三维模型的表面(即目标面),该表面之下即为内部空间,该表面之上即为外部空间。可选地,该穿透平面还可用于指示该表面之下存在支持虚拟对象活动的内部改造空间。该穿透平面不可视化。
服务器可以直接基于删除碰撞面的顶点坐标,构建三维点阵,并将该三维点阵确定为穿透标识数据。
例如,参考图4,在第一类子空间403被选择挖掘的情况下,第一类子空间403对应的目标面404(即删除碰撞面)被删除之后,服务器在该目标面404处添加穿透平面,以指示该表面被挖掘,虚拟对象可穿透该表面,进入内部改造空间(即5个碰撞面402围合而成的空间)。
2、对穿透标识数据进行存储。
可选地,服务器将穿透标识数据与可改造三维模型进行关联存储。
在一个示例中,对于内部改造后的三维模型,用户即可控制虚拟对象在其表面活动,又可控制虚拟对象在其内部改造空间中互动,如此有利于提高用户体验,则本申请实施例还可以包括如下内容。
1、在虚拟对象被控制从内部改造后的三维模型的表面上第一位置,移动至内部改造后的三维模型的表面上第二位置的情况下,若第二位置对应的表面具有穿透标识数据,则以第二位置对应的表面为起始面探索内部空间,将探索到的第一个碰撞面的位置确定为第二位置对应的实际位置。
其中,第一位置和第二位置为不同的位置。若第二位置对应的表面具有穿透标识数据,则说明第二位置对应的表面为穿透平面,该穿透平面以下具有内部改造空间,该穿透平面不对虚拟对象造成阻挡,若虚拟对象位于第二位置,则虚拟对象会穿透该穿透平面,进入内部改造空间。
本申请实施例中的起始面可以是指碰撞检测的起始面,该起始面中的各个点为碰撞检测线的出发点。例如,服务器可以以第二位置对应的表面中的各个点为出发点,向内部空间发射碰撞检测线,以对内部空间进行碰撞检测,来完成内部空间的探索过程。可选地,该碰撞检测线可以与第二位置对应的表面相垂直。
在一些可行示例中,服务器也可以仅以第二位置为起点,向内部改造空间发射碰撞检测线,以确定第一个碰撞面的位置。在这过程中,可以基于碰撞标识值,确定哪些第一类子空间已被挖掘。
第二位置对应的实际位置是指虚拟对象实际将要达到的位置。
2、将虚拟对象从第一位置移动至第二位置对应的实际位置。
可选地,在第一位置和第二位置之前的没有实体阻挡的情况下,虚拟对象先从第一位置移动至第二位置,再从第二位置移动至第二位置对应的实际位置。
在一些实施例中,服务器生成将虚拟对象从第一位置移动至第二位置对应的实际位置的控制数据,客户端根据该控制数据,显示虚拟对象被从第一位置移动至第二位置对应的实际位置的动画。
在一个示例中,在得到内部改造后的三维模型,服务器将存在与添加碰撞面相重合的目标面的子空间,更新确定为内部改造后的三维模型对应的第一类子空间。
可选地,本申请实施例可以将添加碰撞面确定为内部改造空间的表面(即碰撞面),该内部改造空间支持用户继续改造,则可以基于添加碰撞面,更新第一类子空间,如此有利于用户针对内部改造空间进行下一次的改造。
例如,参考图4,服务器可将存在与碰撞面402(即增加碰撞面)相重合的目标面的子空间,更新确定为内部改造后的三维模型对应的第一类子空间。
在一个示例中,本申请实施例还支持用户同时对多个第一类子空间进行改造,如此有利于提供可改造三维模型的改造效率。示例性地,该过程可以包括如下内容。
1、在多个连续的第一类子空间被选择改造的情况下,获取多个连续的第一类子空间对应的删除碰撞面集,以及多个连续的第一类子空间对应的添加碰撞面集。
其中,连续的第一类子空间是指相邻的第一类子空间,相邻的第一类子空间之间具有相同的面。
可选地,对于多个连续的第一类子空间,可以对各个第一类子空间的目标面对应的删除碰撞面进行组合,得到删除碰撞面集,以对各个第一类子空间的剩余面对应的添加碰撞面进行组合,得到添加碰撞面集。
2、将多个连续的第一类子空间之间重合的添加碰撞面,从添加碰撞面集中删除,得到调整后的添加碰撞面集。
可选地,将连续的第一类子空间之间重合的面,确定为重合的添加碰撞面。例如,若第一类子空间A的第一面,与第二类子空间B的第二面相重合,可以将第一面对应的添加碰撞面,以及第二面对应的添加碰撞面,从添加碰撞面集中删除,也即将第一类子空间A和第二类子空间B作为一个整体,仅保留与这个整体的表面相对应的剩余面,以得到调整后的添加碰撞面集。
3、将调整后的添加碰撞面集中的各个添加碰撞面的碰撞数据添加进碰撞数据集,以及将删除碰撞面集中各个删除碰撞面的碰撞数据从碰撞数据集中删除。
服务器将添加碰撞面集中的各个添加碰撞面确定为可改造三维模型的碰撞面,以及将删除碰撞面集中各个删除碰撞面对应的碰撞面进行删除,得到内部改造后的三维模型。
在一个示例中,本申请实施例支持用户对已被挖掘的第一类子空间进行恢复,如此有利于提高可改造三维模型的改造灵活性。
示例性地,该过程可以包括如下内容:在被改造的第一类子空间再次被选择改造的情况下,将添加碰撞面的碰撞数据从碰撞数据集中删除,以及将删除碰撞面的碰撞数据添加进碰撞数据集。
也即服务器将改造第一类子空间得到的添加碰撞面的碰撞数据,取消与添加碰撞面之间的关联,使之失去碰撞属性,以及将改造第一类子空间得到的删除碰撞面的碰撞数据,添加与该删除碰撞面之间的关联,使之恢复碰撞属性。
综上所述,本申请实施例提供的技术方案,通过以第一类子空间对应的目标面为可改造三维模型的碰撞面(如方形的碰撞面可用4个三维坐标点描述),实现仅需维护用于描述碰撞面的碰撞数据,而无需维护其他子空间的碰撞数据,相比于相关技术中需要维护预先填满的格子碰撞体的碰撞数据(如立方碰撞体可用8个三维坐标点描述),有效降低了可改造三维模型的碰撞数据对内存的占用。同时,由于碰撞面的描述点显著少于格子碰撞体的描述点,以可改造三维模型的碰撞面构建碰撞数据,可进一步有效降低可改造三维模型的碰撞数据对内存的占用。
另外,在对可改造三维模型进行内部改造的情况下,通过将添加碰撞面的碰撞数据添加进碰撞数据集,以及将删除碰撞面的碰撞数据从碰撞数据集中删除,实现了仅针对被挖掘的第一类子空间添加碰撞数据,相比于相关技术中将被改造的格子碰撞体进行移除,在内部空间的改造率较低的情况下,可进一步有效降低可改造三维模型的碰撞数据对内存的占用。同时,实现仅需维护第一类子空间被改造后所形成的内部改造区域的表面对应的碰撞面的碰撞数据,可进一步有效降低可改造三维模型的碰撞数据对内存的占用。
在一些实施例中,以对虚拟地下空间的构建为例,对本申请实施例提供的技术方案进行说明,其还可以包括如下内容。
本申请实施例采用PhysX引擎对游戏类应用程序中的虚拟陆地进行碰撞管理,以使得用户可通过针对虚拟陆地进行挖掘、摆放等操作,构建出一个虚拟地下空间。
例如,参考图5,对于虚拟陆地,PhysX引擎500将其对应的基础数据(如标识信息、尺寸等)维护在一个或多个数据结构PxActor中。PhysX引擎500将虚拟陆地的碰撞数据保存在数据结构PxShape中,PhysX引擎500通过将PxShape关联到PxActor上,实现向虚拟陆地赋予碰撞属性。也即虚拟陆地的碰撞管理,是利用PhysX引擎500提供的API(ApplicationProgramming Interface,应用程序编程接口),操作虚拟陆地的PxActor和PxShape。
涉及虚拟陆地的概念有虚拟地表和物件,虚拟地表用于隔离地上空间(即外部空间)和地下空间(即内部空间)。物件的应用则比较广泛,其可以是用来形成一个已被挖掘空间的格子碰撞体或者碰撞面,也可以是用户摆放在地上空间或地下空间的虚拟积木、虚拟砖块、虚拟家具等。
在PhysX引擎500中,碰撞面在三维空间中的碰撞数据是由一系列具有三维坐标的点阵组成的。对于一个立方体格子来说,最少需要8个三维坐标点描述,分别对应立方体格子的8个顶点;对于一个平面(或二维网格)来说,最少需要4个三维坐标点描述,分别对应平面的4个顶点。
对于针对虚拟陆地进行虚拟地下空间的改造,每一改造可以被称之为挖掘,用户可以进行向下、向上、向前、向后、向左、向右进行挖掘,每一次挖掘都会在对应方向上挖出一个1立方米的空间。
参考图4,以虚拟地表是一个平面为例,本申请实施例将该虚拟地表401平均划分成多个1平面米的正方形组成的平面网格,基于该平面网格,本申请实施例将地下空间划分为若干边长为1米的立方体。其中,平面网格中的各个正向形为碰撞面,PhysX引擎500在PxActor中维护各个碰撞面的碰撞数据,每个碰撞面的碰撞数据包括正向形的4个顶点坐标。
示例性地,参考图4、6和7,虚拟地下空间的构建过程可以包括如下内容。
1、如图4所示,在用户从虚拟地表401,向下挖掘第一类子空间403(即1立方米的立方体)的情况下,PhysX引擎500将目标面404更新为穿透平面,以及将该第一层立方体的5个剩余面更新为碰撞面402。
PhysX引擎500将目标面404对应的碰撞面的碰撞数据,从PxActor中删除,以及将5个碰撞面402的碰撞数据,添加进PxActor中。
此时,5个碰撞面402围合而成的空间即为初步构建得到的虚拟地下空间。
2、如图6所示,在用户在虚拟地下空间中,向左挖掘第一类子空间405的情况下,PhysX引擎500将第一类子空间405的目标面对应的删除碰撞面进行删除,以及将第一类子空间405的5个剩余面更新为碰撞面406。
PhysX引擎500将改造第一类子空间405得到的删除碰撞面的碰撞数据,从PxActor中删除,以及将5个新增的碰撞面406的碰撞数据,添加进PxActor中。
此时,虚拟地表401以下的6个碰撞面围合而成的空间即为虚拟地下空间。
3、如图7所示,在用户在虚拟地下空间中,向上挖掘第一类子空间409的情况下,由于第一类子空间409的目标面408与虚拟地表401相重合,PhysX引擎500将目标面408对应的碰撞面更新为穿透平面,将第一类子空间409的另一个目标面对应的碰撞面进行删除,以及第一类子空间409的4个剩余面更新为碰撞面407。
PhysX引擎500将改造第一类子空间409得到的2个删除碰撞面的碰撞数据,从PxActor中删除,以及将4个新增的碰撞面407的碰撞数据,添加进PxActor中。
此时,虚拟地表401以下的12个碰撞面围合而成的空间即为虚拟地下空间。
在本申请实施例中,对于地下空间中的立方体,只有已被挖掘的立方体的边缘需要放置碰撞面,未被挖掘的立方体是没有任何碰撞面的。而相关技术是是将未被挖掘的地下空间布满格子碰撞体,已被挖掘的地下空间是没有格子碰撞体的。例如,参考图8,虚拟地表801之下未被挖掘的地下空间被布满格子碰撞体802,服务器需要维护所有格子碰撞体802的碰撞数据。
示例性地,若地下空间的挖掘率是30%,则构建得到的虚拟地下空间占用地下空间的30%,对于相关技术来说,服务器需要维护剩下的70%对应的格子碰撞体的碰撞数据,而对于本申请实施例来说,服务器仅需维护剩下的70%所组成的整体的碰撞面的碰撞数据,也即被挖掘的30%所组成的整体的碰撞面(仅轮廓上存在碰撞面)的碰撞数据。
以地下空间的尺寸为200米×200米×20米为例,一个格子碰撞体由8个三维坐标点来描述,则一个格子碰撞体的碰撞数据需要占用100字节左右,相关技术对应的碰撞数据所需占用的内存是:
200×200×20×70%=56w个格子碰撞体;
56w×100字节=56M字节。
相比于相关技术,对于虚拟地下空间,本申请实施例首先可以将70%降低至30%,其次仅需维护虚拟地下空间的碰撞面的碰撞数据。对于虚拟地下空间,本申请实施例所需维护的空间大小为:
200×200×20×30%=24w个立方体;
该24w个立方体组成的大立方体的边长约为62米,那么大立方体的6个面一共有62×62×6=2.3w个碰撞面,每个碰撞面对应4个是三维坐标点,那么每个碰撞面的碰撞数据需占用约50字节,则对于虚拟地下空间,本申请实施例对应的碰撞数据所需占用的内存是:
2.3w×50字节=1.15M字节。
在该种情况中,相比于现有技术,本申请实施例对应的碰撞数据的内存占用降低了:(56M-1.15M)/56M×100%=97.95%。对于整个虚拟陆地,除了虚拟地下空间对应的碰撞数据,应当还包括虚拟地表对应的碰撞数据,如若只有一个穿透平面,则虚拟地表对应的碰撞数据为:
(62×62-1)×50字节=0.192M字节。
对于用户数量大的游戏类应用程序来说,存在需要同时提供若干个这样的地下空间的情况,在这种情况下,相关技术对应的碰撞数据对内存的需求呈线性增加,从而进一步加剧服务器的存储压力,如以200米×200米×20米为例,单个地下空间就需占用80M字节,在需要同时提供1w(万)个地下空间的情况下,但是碰撞数据就需占用800G字节,而本申请实施例能够有效降低地下虚拟陆地对应的碰撞数据对内存的需求,从而有利于缓解服务器的存储压力,从而降低游戏类应用程序的运营开销。
综上所述,本申请实施例提供的技术方案,通过以第一类子空间对应的目标面为可改造三维模型的碰撞面(如方形的碰撞面可用4个三维坐标点描述),实现仅需维护用于描述碰撞面的碰撞数据,而无需维护其他子空间的碰撞数据,相比于相关技术中需要维护预先填满的格子碰撞体的碰撞数据(如立方碰撞体可用8个三维坐标点描述),有效降低了可改造三维模型的碰撞数据对内存的占用。同时,由于碰撞面的描述点显著少于格子碰撞体的描述点,以可改造三维模型的碰撞面构建碰撞数据,可进一步有效降低可改造三维模型的碰撞数据对内存的占用。
另外,在对可改造三维模型进行内部改造的情况下,通过将添加碰撞面的碰撞数据添加进碰撞数据集,以及将删除碰撞面的碰撞数据从碰撞数据集中删除,实现了仅针对被挖掘的第一类子空间添加碰撞数据,相比于相关技术中将被改造的格子碰撞体进行移除,在内部空间的改造率较低的情况下,可进一步有效降低可改造三维模型的碰撞数据对内存的占用。同时,实现仅需维护第一类子空间被改造后所形成的内部改造区域的表面对应的碰撞面的碰撞数据,可进一步有效降低可改造三维模型的碰撞数据对内存的占用。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
参考图9,其示出了本申请一个实施例提供的碰撞数据的管理装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备中。如图9所示,该装置900包括:数据集获取模块901、碰撞面确定模块902和数据集调整模块903。
数据集获取模块901,用于获取虚拟环境中可改造三维模型的碰撞数据集,所述碰撞数据集中包括用于描述所述可改造三维模型的碰撞面的碰撞数据,所述可改造三维模型的内部空间被划分成多个子空间,所述多个子空间中的第一类子空间存在与所述可改造三维模型的表面相重合的目标面,所述可改造三维模型以所述目标面为所述碰撞面。
碰撞面确定模块902,用于对于各个所述第一类子空间,在所述第一类子空间被选择改造的情况下,基于所述第一类子空间对应的目标面,得到所述可改造三维模型的删除碰撞面,以及基于所述第一类子空间对应的除所述目标面外的剩余面,得到所述可改造三维模型的添加碰撞面。
数据集调整模块903,用于将所述添加碰撞面的碰撞数据添加进所述碰撞数据集,以及将所述删除碰撞面的碰撞数据从所述碰撞数据集中删除。
在一些实施例中,如图10所示,所述装置900还包括:碰撞面添加模块904和碰撞面删除模块905。
碰撞面添加模块904,用于将所述添加碰撞面确定为所述可改造三维模型的碰撞面。
碰撞面删除模块905,用于将被确定为所述删除碰撞面的碰撞面进行删除,得到内部改造后的三维模型。
在一些实施例中,如图10所示,所述装置900还包括:穿透标识构建模块906和穿透标识存储模块907。
穿透标识构建模块906,用于基于所述删除碰撞面的顶点坐标,构建所述删除碰撞面对应的穿透标识数据,所述穿透标识数据用于标识所述可改造三维模型的内部空间和外部空间。
穿透标识存储模块907,用于对所述穿透标识数据进行存储。
在一些实施例中,如图10所示,所述装置900还包括:实际位置确定模块908和虚拟对象移动模块909。
实际位置确定模块908,用于在虚拟对象被控制从所述内部改造后的三维模型的表面上第一位置,移动至所述内部改造后的三维模型的表面上第二位置的情况下,若所述第二位置对应的表面具有所述穿透标识数据,则以所述第二位置对应的表面为起始面探索所述内部空间,将探索到的第一个碰撞面的位置确定为所述第二位置对应的实际位置。
虚拟对象移动模块909,用于将所述虚拟对象从所述第一位置移动至所述第二位置对应的实际位置。
在一些实施例中,如图10所示,所述装置900还包括:子空间更新模块910。
子空间更新模块910,用于将存在与所述添加碰撞面相重合的目标面的子空间,更新确定为所述内部改造后的三维模型对应的第一类子空间。
在一些实施例中,如图10所示,所述装置900还包括:顶点坐标获取模块911、顶点坐标确定模块912和碰撞数据构建模块913。
顶点坐标获取模块911,用于基于所述第一类子空间的坐标数据,得到所述第一类子空间对应的目标面的顶点坐标。
顶点坐标确定模块912,用于基于所述第一类子空间对应的目标面的顶点坐标,得到所述添加碰撞面的各个顶点坐标。
碰撞数据构建模块913,用于基于所述添加碰撞面的各个顶点坐标,构建得到所述添加碰撞面的碰撞数据。
在一些实施例中,所述数据集获取模块901,用于:
获取各个所述第一类子空间对应的目标面的坐标数据;
根据所述目标面的坐标数据,构建所述目标面对应的碰撞面的碰撞数据;
基于各个所述目标面对应的碰撞面的碰撞数据,获取所述可改造三维模型的碰撞数据集。
在一些实施例中,如图10所示,所述装置900还包括:碰撞标识调整模块914。
碰撞标识调整模块914,用于将被改造的所述第一类子空间的碰撞标识值从第一取值切换为第二取值,所述碰撞标识值用于指示所述第一类子空间是否被改造;其中,所述碰撞标识值与所述第一类子空间的中心位置对应存储。
在一些实施例中,如图10所示,所述装置900还包括:碰撞面调整模块915。
所述碰撞面确定模块902,还用于在多个连续的第一类子空间被选择改造的情况下,获取所述多个连续的第一类子空间对应的删除碰撞面集,以及所述多个连续的第一类子空间对应的添加碰撞面集。
碰撞面调整模块915,用于将所述多个连续的第一类子空间之间重合的添加碰撞面,从所述添加碰撞面集中删除,得到调整后的添加碰撞面集。
所述数据集调整模块903,还用于将所述调整后的添加碰撞面集中的各个添加碰撞面的碰撞数据添加进所述碰撞数据集,以及将所述删除碰撞面集中各个删除碰撞面的碰撞数据从所述碰撞数据集中删除。
在一些实施例中,所述数据集调整模块903,还用于在被改造的所述第一类子空间再次被选择改造的情况下,将所述添加碰撞面的碰撞数据从所述碰撞数据集中删除,以及将所述删除碰撞面的碰撞数据添加进所述碰撞数据集。
综上所述,本申请实施例提供的技术方案,通过以第一类子空间对应的目标面为可改造三维模型的碰撞面(如方形的碰撞面可用4个三维坐标点描述),实现仅需维护用于描述碰撞面的碰撞数据,而无需维护其他子空间的碰撞数据,相比于相关技术中需要维护预先填满的格子碰撞体的碰撞数据(如立方碰撞体可用8个三维坐标点描述),有效降低了可改造三维模型的碰撞数据对内存的占用。同时,由于碰撞面的描述点显著少于格子碰撞体的描述点,以可改造三维模型的碰撞面构建碰撞数据,可进一步有效降低可改造三维模型的碰撞数据对内存的占用。
另外,在对可改造三维模型进行内部改造的情况下,通过将添加碰撞面的碰撞数据添加进碰撞数据集,以及将删除碰撞面的碰撞数据从碰撞数据集中删除,实现了仅针对被挖掘的第一类子空间添加碰撞数据,相比于相关技术中将被改造的格子碰撞体进行移除,在内部空间的改造率较低的情况下,可进一步有效降低可改造三维模型的碰撞数据对内存的占用。同时,实现仅需维护第一类子空间被改造后所形成的内部改造区域的表面对应的碰撞面的碰撞数据,可进一步有效降低可改造三维模型的碰撞数据对内存的占用。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图11,其示出了本申请一个实施例提供的计算机设备的结构框图。该计算机设备可以用于实施上述实施例中提供的碰撞数据的管理方法。具体可以包括如下内容。
该计算机设备1100包括中央处理单元(如CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)和FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)等)1101、包括RAM(Random-Access Memory,随机存取存储器)1102和ROM(Read-Only Memory,只读存储器)1103的系统存储器1104,以及连接系统存储器1104和中央处理单元1101的系统总线1105。该计算机设备1100还包括帮助计算机设备内的各个器件之间传输信息的基本输入/输出系统(Input Output System,I/O系统)1106,和用于存储操作系统1113、应用程序1114和其他程序模块1115的大容量存储设备1107。
该基本输入/输出系统1106包括有用于显示信息的显示器1108和用于用户输入信息的诸如鼠标、键盘之类的输入设备1109。其中,该显示器1108和输入设备1109都通过连接到系统总线1105的输入输出控制器1110连接到中央处理单元1101。该基本输入/输出系统1106还可以包括输入输出控制器1110以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1110还提供输出到显示屏、打印机或其他类型的输出设备。
该大容量存储设备1107通过连接到系统总线1105的大容量存储控制器(未示出)连接到中央处理单元1101。该大容量存储设备1107及其相关联的计算机可读介质为计算机设备1100提供非易失性存储。也就是说,该大容量存储设备1107可以包括诸如硬盘或者CD-ROM(Compact Disc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。
不失一般性,该计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦写可编程只读存储器)、闪存或其他固态存储技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知该计算机存储介质不局限于上述几种。上述的系统存储器1104和大容量存储设备1107可以统称为存储器。
根据本申请实施例,该计算机设备1100还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1100可以通过连接在该系统总线1105上的网络接口单元1111连接到网络1112,或者说,也可以使用网络接口单元1111来连接到其他类型的网络或远程计算机系统(未示出)。
该存储器还包括计算机程序,该计算机程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述碰撞数据的管理方法。
在一些实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序在被计算机设备的处理器执行时以实现上述碰撞数据的管理方法。
可选地,该计算机可读存储介质可以包括:ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存储器)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在一些实施例中,还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质中读取所述计算机程序,所述处理器执行所述计算机程序,使得所述计算机设备执行上述碰撞数据的管理方法。
需要说明的是,本申请实施例在收集用户的相关数据之前以及在收集用户的相关数据的过程中,都可以显示提示界面、弹窗或输出语音提示信息,该提示界面、弹窗或语音提示信息用于提示用户当前正在搜集其相关数据,使得本申请仅仅在获取到用户对该提示界面或者弹窗发出的确认操作后,才开始执行获取用户相关数据的相关步骤,否则(即未获取到用户对该提示界面或者弹窗发出的确认操作时),结束获取用户相关数据的相关步骤,即不获取用户的相关数据。换句话说,本申请所采集的所有用户数据,处理严格根据相关国家法律法规的要求,获取个人信息主体的知情同意或单独同意都是在用户同意并授权的情况下进行采集的,并在法律法规及个人信息主体的授权范围内,开展后续数据使用及处理行为且相关用户数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的虚拟场景、可改造三维模型等都是在充分授权的情况下获取的。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种碰撞数据的管理方法,其特征在于,所述方法包括:
获取虚拟环境中可改造三维模型的碰撞数据集,所述碰撞数据集是指由碰撞数据组合而成的集合或序列,所述碰撞数据用于描述所述可改造三维模型的碰撞面,所述碰撞数据的形式是多个三维浮点数集合组成的三维点阵,所述三维点阵中每一个三维浮点数集合代表碰撞面上的一个顶点的相对位置,所述可改造三维模型的内部空间被划分成多个子空间,所述多个子空间中的第一类子空间存在与所述可改造三维模型的表面相重合的目标面,所述可改造三维模型以所述目标面为所述碰撞面;
对于各个所述第一类子空间,在所述第一类子空间被选择改造的情况下,基于所述第一类子空间对应的目标面,得到所述可改造三维模型的删除碰撞面,以及基于所述第一类子空间对应的除所述目标面外的剩余面,得到所述可改造三维模型的添加碰撞面;
将所述添加碰撞面的碰撞数据添加进所述碰撞数据集,以及将所述删除碰撞面的碰撞数据从所述碰撞数据集中删除。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述添加碰撞面确定为所述可改造三维模型的碰撞面;
将被确定为所述删除碰撞面的碰撞面进行删除,得到内部改造后的三维模型。
3.根据权利要求2所述的方法,其特征在于,所述将被确定为所述删除碰撞面的碰撞面进行删除,得到内部改造后的三维模型之后,还包括:
基于所述删除碰撞面的顶点坐标,构建所述删除碰撞面对应的穿透标识数据,所述穿透标识数据用于标识所述可改造三维模型的内部空间和外部空间;
对所述穿透标识数据进行存储。
4.根据权利要求3所述的方法,其特征在于,所述对所述穿透标识数据进行存储之后,还包括:
在虚拟对象被控制从所述内部改造后的三维模型的表面上第一位置,移动至所述内部改造后的三维模型的表面上第二位置的情况下,若所述第二位置对应的表面具有所述穿透标识数据,则以所述第二位置对应的表面为起始面探索所述内部空间,将探索到的第一个碰撞面的位置确定为所述第二位置对应的实际位置;
将所述虚拟对象从所述第一位置移动至所述第二位置对应的实际位置。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将存在与所述添加碰撞面相重合的目标面的子空间,更新确定为所述内部改造后的三维模型对应的第一类子空间。
6.根据权利要求1所述的方法,其特征在于,所述将所述添加碰撞面的碰撞数据添加进所述碰撞数据集,以及将所述删除碰撞面的碰撞数据从所述碰撞数据集中删除之前,还包括:
基于所述第一类子空间的坐标数据,得到所述第一类子空间对应的目标面的顶点坐标;
基于所述第一类子空间对应的目标面的顶点坐标,得到所述添加碰撞面的各个顶点坐标;
基于所述添加碰撞面的各个顶点坐标,构建得到所述添加碰撞面的碰撞数据。
7.根据权利要求1所述的方法,其特征在于,所述获取虚拟环境中可改造三维模型的碰撞数据集,包括:
获取各个所述第一类子空间对应的目标面的坐标数据;
根据所述目标面的坐标数据,构建所述目标面对应的碰撞面的碰撞数据;
基于各个所述目标面对应的碰撞面的碰撞数据,获取所述可改造三维模型的碰撞数据集。
8.根据权利要求1所述的方法,其特征在于,所述将所述添加碰撞面的碰撞数据添加进所述碰撞数据集,以及将所述删除碰撞面的碰撞数据从所述碰撞数据集中删除之后,还包括:
将被改造的所述第一类子空间的碰撞标识值从第一取值切换为第二取值,所述碰撞标识值用于指示所述第一类子空间是否被改造;
其中,所述碰撞标识值与所述第一类子空间的中心位置对应存储。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在多个连续的第一类子空间被选择改造的情况下,获取所述多个连续的第一类子空间对应的删除碰撞面集,以及所述多个连续的第一类子空间对应的添加碰撞面集;
将所述多个连续的第一类子空间之间重合的添加碰撞面,从所述添加碰撞面集中删除,得到调整后的添加碰撞面集;
将所述调整后的添加碰撞面集中的各个添加碰撞面的碰撞数据添加进所述碰撞数据集,以及将所述删除碰撞面集中各个删除碰撞面的碰撞数据从所述碰撞数据集中删除。
10.根据权利要求1所述的方法,其特征在于,所述将所述添加碰撞面的碰撞数据添加进所述碰撞数据集,以及将所述删除碰撞面的碰撞数据从所述碰撞数据集中删除之后,还包括:
在被改造的所述第一类子空间再次被选择改造的情况下,将所述添加碰撞面的碰撞数据从所述碰撞数据集中删除,以及将所述删除碰撞面的碰撞数据添加进所述碰撞数据集。
11.一种碰撞数据的管理装置,其特征在于,所述装置包括:
数据集获取模块,用于获取虚拟环境中可改造三维模型的碰撞数据集,所述碰撞数据集是指由碰撞数据组合而成的集合或序列,所述碰撞数据用于描述所述可改造三维模型的碰撞面,所述碰撞数据的形式是多个三维浮点数集合组成的三维点阵,所述三维点阵中每一个三维浮点数集合代表碰撞面上的一个顶点的相对位置,所述可改造三维模型的内部空间被划分成多个子空间,所述多个子空间中的第一类子空间存在与所述可改造三维模型的表面相重合的目标面,所述可改造三维模型以所述目标面为所述碰撞面;
碰撞面确定模块,用于对于各个所述第一类子空间,在所述第一类子空间被选择改造的情况下,基于所述第一类子空间对应的目标面,得到所述可改造三维模型的删除碰撞面,以及基于所述第一类子空间对应的除所述目标面外的剩余面,得到所述可改造三维模型的添加碰撞面;
数据集调整模块,用于将所述添加碰撞面的碰撞数据添加进所述碰撞数据集,以及将所述删除碰撞面的碰撞数据从所述碰撞数据集中删除。
12.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至10任一项所述的碰撞数据的管理方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至10任一项所述的碰撞数据的管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410049046.6A CN117547825B (zh) | 2024-01-12 | 2024-01-12 | 碰撞数据的管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410049046.6A CN117547825B (zh) | 2024-01-12 | 2024-01-12 | 碰撞数据的管理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117547825A CN117547825A (zh) | 2024-02-13 |
CN117547825B true CN117547825B (zh) | 2024-03-22 |
Family
ID=89823784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410049046.6A Active CN117547825B (zh) | 2024-01-12 | 2024-01-12 | 碰撞数据的管理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117547825B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1430184A (zh) * | 2001-12-29 | 2003-07-16 | 田捷 | 利用半边数据结构实现三维网格模型的简化方法 |
JP2005300305A (ja) * | 2004-04-09 | 2005-10-27 | Rigaku Corp | X線分析方法及びx線分析装置 |
DE102004062361A1 (de) * | 2004-12-10 | 2006-06-22 | Cocreate Software Gmbh & Co. Kg | Verfahren zur Ableitung von technischen Zeichungen aus 3D Modellen mit mindestens zwei kollidierenden 3D Körpern |
CN106202247A (zh) * | 2016-06-30 | 2016-12-07 | 哈尔滨理工大学 | 一种基于经纬度的碰撞检测方法 |
CN107610231A (zh) * | 2017-09-25 | 2018-01-19 | 上海电机学院 | 一种动态碰撞检测方法 |
CN109615707A (zh) * | 2018-12-13 | 2019-04-12 | 佛山市超体软件科技有限公司 | 一种三维模型处理方法、装置、计算机设备和存储介质 |
CN110585695A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 在虚拟环境中使用近战道具的方法、装置、设备及介质 |
KR20200126316A (ko) * | 2019-04-29 | 2020-11-06 | 경희대학교 산학협력단 | 그래픽 정보를 이용한 실시간 로봇 충돌 위험도 모니터링이 가능한 충돌 물리력 빅데이터 기반 로봇 안전성 평가 방법 |
CN112669434A (zh) * | 2020-12-21 | 2021-04-16 | 山东华数智能科技有限公司 | 一种基于网格与包围盒的碰撞检测方法 |
CN113989435A (zh) * | 2021-10-27 | 2022-01-28 | 广东三维家信息科技有限公司 | 三维模型的碰撞检测方法、装置、电子设备及存储介质 |
CN114170384A (zh) * | 2021-12-09 | 2022-03-11 | 东软集团股份有限公司 | 三维模型的处理方法、装置、存储介质及电子设备 |
CN114241096A (zh) * | 2021-12-20 | 2022-03-25 | 网易(杭州)网络有限公司 | 三维模型生成方法、装置、设备及存储介质 |
CN114494603A (zh) * | 2022-02-11 | 2022-05-13 | 哈尔滨工程大学 | 基于Unity3D的仿真声呐图像数据生成方法 |
CN115797601A (zh) * | 2022-09-08 | 2023-03-14 | 杭州新迪数字工程系统有限公司 | 一种Brep三维模型的中面自动提取方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6798415B2 (en) * | 2001-06-21 | 2004-09-28 | Intel Corporation | Rendering collisions of three-dimensional models |
US8018329B2 (en) * | 2008-12-12 | 2011-09-13 | Gordon * Howard Associates, Inc. | Automated geo-fence boundary configuration and activation |
-
2024
- 2024-01-12 CN CN202410049046.6A patent/CN117547825B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1430184A (zh) * | 2001-12-29 | 2003-07-16 | 田捷 | 利用半边数据结构实现三维网格模型的简化方法 |
JP2005300305A (ja) * | 2004-04-09 | 2005-10-27 | Rigaku Corp | X線分析方法及びx線分析装置 |
DE102004062361A1 (de) * | 2004-12-10 | 2006-06-22 | Cocreate Software Gmbh & Co. Kg | Verfahren zur Ableitung von technischen Zeichungen aus 3D Modellen mit mindestens zwei kollidierenden 3D Körpern |
CN106202247A (zh) * | 2016-06-30 | 2016-12-07 | 哈尔滨理工大学 | 一种基于经纬度的碰撞检测方法 |
CN107610231A (zh) * | 2017-09-25 | 2018-01-19 | 上海电机学院 | 一种动态碰撞检测方法 |
CN109615707A (zh) * | 2018-12-13 | 2019-04-12 | 佛山市超体软件科技有限公司 | 一种三维模型处理方法、装置、计算机设备和存储介质 |
KR20200126316A (ko) * | 2019-04-29 | 2020-11-06 | 경희대학교 산학협력단 | 그래픽 정보를 이용한 실시간 로봇 충돌 위험도 모니터링이 가능한 충돌 물리력 빅데이터 기반 로봇 안전성 평가 방법 |
CN110585695A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 在虚拟环境中使用近战道具的方法、装置、设备及介质 |
CN112669434A (zh) * | 2020-12-21 | 2021-04-16 | 山东华数智能科技有限公司 | 一种基于网格与包围盒的碰撞检测方法 |
CN113989435A (zh) * | 2021-10-27 | 2022-01-28 | 广东三维家信息科技有限公司 | 三维模型的碰撞检测方法、装置、电子设备及存储介质 |
CN114170384A (zh) * | 2021-12-09 | 2022-03-11 | 东软集团股份有限公司 | 三维模型的处理方法、装置、存储介质及电子设备 |
CN114241096A (zh) * | 2021-12-20 | 2022-03-25 | 网易(杭州)网络有限公司 | 三维模型生成方法、装置、设备及存储介质 |
CN114494603A (zh) * | 2022-02-11 | 2022-05-13 | 哈尔滨工程大学 | 基于Unity3D的仿真声呐图像数据生成方法 |
CN115797601A (zh) * | 2022-09-08 | 2023-03-14 | 杭州新迪数字工程系统有限公司 | 一种Brep三维模型的中面自动提取方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117547825A (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2021520579A (ja) | オブジェクトのロード方法及び装置、記憶媒体、電子装置、並びにコンピュータプログラム | |
KR102040991B1 (ko) | 3d 장면을 컴퓨팅 리소스에 의해 프로세싱되는 복수의 구역들로의 분할 | |
CN111558221B (zh) | 虚拟场景的显示方法和装置、存储介质及电子设备 | |
CN114177613B (zh) | 导航网格更新方法、装置、设备及计算机可读存储介质 | |
CN111185009B (zh) | 地图生成方法和装置 | |
KR102610422B1 (ko) | 아바타 이용 데이터를 처리하기 위한 방법 및 장치, 디바이스, 및 저장 매체 | |
CN112419499A (zh) | 一种沉浸式的态势场景仿真系统 | |
US20220143509A1 (en) | Dynamic 3d environment generation | |
WO2022257692A1 (zh) | 虚拟场景变换方法、装置、设备、存储介质及程序产品 | |
CN117547825B (zh) | 碰撞数据的管理方法、装置、设备及存储介质 | |
US8842116B2 (en) | Method and apparatus for rendering and modifying terrain in a virtual world | |
CN113713381B (zh) | 对象管理方法、装置、设备、存储介质及系统 | |
CA2924696C (en) | Interactive haptic system for virtual reality environment | |
John et al. | Visualising Dudsbury Hillfort: Using Immersive Virtual Reality to Engage the Public with Cultural Heritage. | |
CN115430153A (zh) | 虚拟环境中的碰撞检测方法、装置、设备、介质及程序 | |
KR101460989B1 (ko) | 대규모 멀티 플레이어 온라인 롤플레잉 게임방법 및 시스템 | |
CN116524133B (zh) | 虚拟植被的生成方法、装置、设备及存储介质 | |
CN115631320B (zh) | 预计算单元格显示方法、预计算单元格生成方法及装置 | |
Alonso et al. | Real-time rendering and physics of complex dynamic terrains modeled as CSG trees of DEMs carved with spheres | |
KR102077394B1 (ko) | 도면 중첩식 가상 공간 설계 방법 및 시스템 | |
CN117883779A (zh) | 虚拟场景的管理方法、设备、系统、存储介质及程序产品 | |
CN116650965A (zh) | 虚拟对象在地图间转移的方法、装置、设备及介质 | |
CN117599419A (zh) | 虚拟场景中虚拟墙体的显示方法、装置、系统及程序产品 | |
CN117065351A (zh) | 虚拟资源的生成方法、计算机设备、系统、可读存储介质 | |
Zhou et al. | Web-based urban 3D GIS: virtual environment of 3D model visualization |
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 |