CN116993946A - 模型生成方法、装置、终端及存储介质 - Google Patents
模型生成方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN116993946A CN116993946A CN202311044373.4A CN202311044373A CN116993946A CN 116993946 A CN116993946 A CN 116993946A CN 202311044373 A CN202311044373 A CN 202311044373A CN 116993946 A CN116993946 A CN 116993946A
- Authority
- CN
- China
- Prior art keywords
- model
- spline
- object model
- unit
- curve
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 239000000919 ceramic Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 208000015041 syndromic microphthalmia 10 Diseases 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/32—Indexing scheme for image data processing or generation, in general involving image mosaicing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/44—Morphing
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本申请实施例公开了一种模型生成方法、装置、终端及存储介质,属于计算机技术领域。该方法包括:基于第一对象模型的样条曲线上的多个插值点,在第一对象模型的放置区域中确定多个样条网格;在多个样条网格的位置分别填充多个单位模型,多个样条网格与多个单位模型一一对应,多个单位模型用于组成第一对象模型;按照样条曲线所描述的轮廓形状,分别调整多个单位模型的形状,得到第一对象模型。上述方案能够根据样条曲线所描述的轮廓形状自动调整单位模型的形状,无需人工执行上述操作,节省了人工成本,提高了生成对象模型和构建虚拟场景的效率。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种模型生成方法、装置、终端及存储介质。
背景技术
随着计算机技术的发展,通过三维模型构建游戏和电影中的虚拟场景,可以提高虚拟场景的视觉效果,降低制作成本。为了追求虚拟场景的视觉效果,通常需要使用大量三维模型来构建虚拟场景。因此,如何提高通过三维模型构建虚拟场景的效率,是一个需要解决的技术问题。
相关技术中,技术人员可以从模型库中批量选取三维模型。然后,技术人员手动调整三维模型的形状,以使三维模型的形状满足构建虚拟场景的条件。然后,技术人员通过对调整好形状的三维模型进行拼接,实现虚拟场景的构建。
但是,采用上述方法,调整三维模型的形状和拼接三维模型的过程均需要技术人员手动完成,导致人力成本较高且效率低下。
发明内容
本申请实施例提供了一种模型生成方法、装置、终端及存储介质,能够提高模型生成的效率。所述技术方案如下:
一方面,提供了一种模型生成方法,所述方法包括:
基于第一对象模型的样条曲线上的多个插值点,在所述第一对象模型的放置区域中确定多个样条网格,所述第一对象模型为虚拟场景中任一待生成的对象模型,所述样条曲线用于描述所述第一对象模型的轮廓形状,所述插值点用于均分所述样条曲线,相邻的两个插值点所在平面之间的区域为一个样条网格,所述样条网格用于填充单位模型;
在所述多个样条网格的位置分别填充多个单位模型,所述多个样条网格与所述多个单位模型一一对应,所述多个单位模型用于组成所述第一对象模型;
按照所述样条曲线所描述的轮廓形状,分别调整所述多个单位模型的形状,得到所述第一对象模型。
另一方面,提供了一种模型生成装置,所述装置包括:
第一确定模块,用于基于第一对象模型的样条曲线上的多个插值点,在所述第一对象模型的放置区域中确定多个样条网格,所述第一对象模型为虚拟场景中任一待生成的对象模型,所述样条曲线用于描述所述第一对象模型的轮廓形状,所述插值点用于均分所述样条曲线,相邻的两个插值点所在平面之间的区域为一个样条网格,所述样条网格用于填充单位模型;
填充模块,用于在所述多个样条网格的位置分别填充多个单位模型,所述多个样条网格与所述多个单位模型一一对应,所述多个单位模型用于组成所述第一对象模型;
第一调整模块,用于按照所述样条曲线所描述的轮廓形状,分别调整所述多个单位模型的形状,得到所述第一对象模型。
在一些实施例中,所述第一确定模块,用于对于任一插值点,确定所述插值点在所述第一对象模型的放置区域中的坐标位置;基于所述坐标位置和所述样条曲线在所述插值点处的切线,在所述放置区域中确定所述插值点所在平面,所述插值点所在平面与所述切线相垂直;在所述第一对象模型的放置区域中,将相邻的两个插值点所在平面之间的区域确定为一个样条网格。
在一些实施例中,所述装置还包括:
获取模块,用于获取所述第一对象模型的轮廓曲线,所述轮廓曲线用于指示所述第一对象模型的轮廓;
第二确定模块,用于基于所述轮廓曲线分别在X轴、Y轴以及Z轴上的投影线段的长度,确定目标坐标轴,所述轮廓曲线在所述目标坐标轴上的投影线段的长度最长;
生成模块,用于基于所述轮廓曲线中的曲线线段的形状,生成所述样条曲线,所述曲线线段在所述目标坐标轴上的投影线段为所述轮廓曲线在所述目标坐标轴上的投影线段,所述样条曲线的形状与所述曲线线段的形状相同。
在一些实施例中,所述装置还包括:
第三确定模块,用于确定所述样条曲线的长度与所述单位模型的长度的比值,所述比值用于指示所述样条曲线能够覆盖的单位模型的数量;
第二调整模块,用于在所述比值不是整数的情况下,调整所述单位模型的长度,直至所述比值为整数;
插值模块,用于基于所述比值,对所述样条曲线的长度进行等间隔插值,得到所述多个插值点,所述插值点的数量为所述比值加1。
在一些实施例中,所述装置还包括:
划分模块,用于按照目标步长,将所述样条曲线划分为目标数量个样条片段,所述目标步长与所述目标数量的乘积为1,所述目标步长与准确度负相关,所述目标数量与所述准确度正相关,所述准确度用于反映基于所述样条片段确定所述样条曲线的长度的准确程度;
第四确定模块,用于基于每个样条片段上两个端点的坐标,确定所述每个样条片段的长度;
所述第四确定模块,还用于对所述目标数量个样条片段的长度进行求和,得到所述样条曲线的长度。
在一些实施例中,所述第一调整模块,用于对于任一单位模型,通过模型形变算法,对所述单位模型的第一坐标信息进行处理,得到所述单位模型的第二坐标信息,所述模型形变算法用于按照所述样条曲线所描述的轮廓形状,确定所述单位模型的顶点形变后的坐标,所述第一坐标信息用于指示所述单位模型的多个顶点形变前的坐标,所述第二坐标信息用于指示所述单位模型的多个顶点形变后的坐标;基于所述单位模型的第二坐标信息,调整所述单位模型的多个顶点的位置,得到形变后的所述单位模型;响应于得到形变后的多个单位模型,按照所述多个单位模型所在的样条网格的位置,对所述多个单位模型进行拼接,得到所述第一对象模型。
在一些实施例中,所述装置还包括:
拼接模块,用于在所述第一对象模型为任一场景对象模型的子模型的情况下,响应于得到所述第一对象模型和至少一个第二对象模型,对所述第一对象模型和所述至少一个第二对象模型进行拼接,得到所述场景对象模型,所述至少一个第二对象模型为所述场景对象模型的其他子模型,所述场景对象模型用于表示所述虚拟场景中的场景对象,所述场景对象模型的体积不小于所述第一对象模型的体积。
另一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以实现如上述方面所述的模型生成方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以实现如上述方面所述的模型生成方法。
另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序由处理器加载并执行,以实现如上述方面所述的模型生成方法。
本申请实施例提供了一种模型生成方案,在生成虚拟场景中对象模型的过程中,先根据对象模型的轮廓形状,生成样条曲线。然后,通过在样条曲线上确定多个插值点,不仅能够均分样条曲线,还能够根据每个插值点所在的平面,将对象模型的放置区域划分为多个用于填充单位模型的样条网格。通过在每个样条网格中填充单位模型,并按照对象模型的轮廓形状调整每个单位模型的形状,能够使得形变后的单位模型的形状与对象模型在部分区域的形状相同,从而使得多个形变后的单位模型能够组成对象模型。采用上述方法,能够根据样条曲线所描述的轮廓形状自动调整单位模型的形状,无需人工执行相关操作,节省了人工成本,提高了生成对象模型和构建虚拟场景的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种模型生成方法的流程图;
图3是本申请实施例提供的另一种模型生成方法的流程图;
图4是本申请实施例提供的一种样条曲线的示意图;
图5是本申请实施例提供的另一种样条曲线的示意图;
图6是本申请实施例提供的一种外包围盒的示意图;
图7是本申请实施例提供的一种模型生成装置的结构示意图;
图8是本申请实施例提供的另一种模型生成装置的结构示意图;
图9是本申请实施例提供的一种终端的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的第一对象模型、第二对象模型以及单位模型均是在充分授权的情况下获取的。
本申请实施例提供的模型生成方法,能够由终端执行。下面介绍一下本申请实施例提供的模型生成方法的实施环境。图1是本申请实施例提供的一种模型生成方法的实施环境的示意图,参见图1,该实施环境包括:终端101和服务器102。
终端101和服务器102能够通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一些实施例中,终端101是智能手机、平板电脑、笔记本电脑、台式计算机等设备,但并不局限于此。终端101安装和运行有支持虚拟场景的应用程序。应用程序可以为场景编辑器,场景编辑器用于对游戏中的虚拟场景进行编辑。该虚拟场景可以是第一人称射击游戏(First-Person Shooting game,FPS)、第三人称射击游戏、多人在线战术竞技游戏(Multiplayer Online Battle Arena games,MOBA)、虚拟现实应用程序、三维地图程序或者多人枪战类生存游戏中的任意一种游戏的虚拟场景。可选地,应用程序还可以为用于构建虚拟场景并对虚拟场景中的对象模型进行渲染的游戏引擎。例如,虚幻引擎4(UnrealEngine 4,UE4)、Unity3D、狂暴引擎(RAGE Engine)、寒霜引擎(Frostbite Engine)等中的至少一种。
在一些实施例中,服务器102是独立的物理服务器,也能够是多个物理服务器构成的服务器集群或者分布式系统,还能够是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。服务器102用于为应用程序提供后台服务。在一些实施例中,服务器102承担主要计算工作,终端101承担次要计算工作;或者,服务器102承担次要计算工作,终端101承担主要计算工作;或者,服务器102和终端101二者之间采用分布式计算架构进行协同计算。
本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本申请实施例对终端的数量和设备类型不加以限定。
图2是本申请实施例提供的一种模型生成方法的流程图,参见图2,在本申请实施例中以由终端执行为例进行说明。该模型生成方法包括以下步骤:
201、终端基于第一对象模型的样条曲线上的多个插值点,在第一对象模型的放置区域中确定多个样条网格,第一对象模型为虚拟场景中任一待生成的对象模型,样条曲线用于描述第一对象模型的轮廓形状,插值点用于均分样条曲线,相邻的两个插值点所在平面之间的区域为一个样条网格,样条网格用于填充单位模型。
在本申请实施例中,第一对象模型可以为虚拟场景中的建筑物、虚拟场景中的植物或者虚拟场景中的虚拟角色,本申请实施例对此不进行限制。在终端生成虚拟场景中的第一对象模型的过程中,终端根据第一对象模型的轮廓形状,生成第一对象模型的样条曲线。该样条曲线用于描述第一对象模型的轮廓形状。其中,第一对象模型的轮廓形状可以为技术人员绘制的,也可以为终端根据第一对象模型的类型自动生成的,本申请实施例不进行限制。例如,在第一对象模型为弯曲的道路的情况下,终端根据道路的轮廓形状所指示的道路的长度和道路在不同位置的弯曲程度,生成与该道路长度相同、形状相同的样条曲线。
终端根据样条曲线的长度,在样条曲线上确定多个插值点。其中,多个插值点用于均分样条曲线。因此,相邻的两个插值点之间的样条曲线的长度相同,进而,终端可以在虚拟场景中第一对象模型的放置区域,将相邻的两个插值点所在平面之间的区域确定为一个样条网格,从而将该放置区域划分为多个长度相同的样条网格。
202、终端在多个样条网格的位置分别填充多个单位模型,多个样条网格与多个单位模型一一对应,多个单位模型用于组成第一对象模型。
在本申请实施例中,终端按照样条网格在放置区域中的位置,在每个样条网格中填充一个单位模型。其中,单位模型用于组成第一对象模型。例如,在第一对象模型为虚拟场景中的道路的情况下,单位模型可以为路面模型;在第一对象模型为虚拟场景中的桥梁的情况下,单位模型可以为桥面模型或者桥墩模型。另外,单位模型的形状可以为正方体、长方体、圆球或者三棱锥,也可以是用户自定义的形状,本申请实施例对单位模型的形状不进行限定。通过在多个样条网格中分别填充单位模型,不仅能够在放置区域中确定单位模型的填充位置,还能够按照填充位置将多个单位模型拼接为第一对象模型。
203、终端按照样条曲线所描述的轮廓形状,分别调整多个单位模型的形状,得到第一对象模型。
在本申请实施例中,终端在第一对象模型的放置区域填充多个单位模型之后,终端按照样条曲线所描述的轮廓形状,对每个单位模型的形状进行调整,以使单位模型形变后的形状与样条曲线的部分形状相同。然后,终端对多个形变后的单位模型进行拼接,得到第一对象模型。其中,拼接得到的第一对象模型的轮廓形状与样条曲线所描述的轮廓形状相同。
在一些实施例中,对于任一样条网格,终端可以在该样条网格中填充单位模型之后,对该样条网格中单位模型的形状进行调整。因此,终端无需等待多个样条网格均填充单位模型之后,才调整各个样条网格中单位模型的形状。另外,终端还能够并行对单位模型进行处理,也即是终端能够并行填充至少一个单位模型,并行调整至少一个单位模型的形状,从而提高生成第一对象模型的效率。
本申请实施例提供了一种模型生成方法,在生成虚拟场景中对象模型的过程中,先根据对象模型的轮廓形状,生成样条曲线。然后,通过在样条曲线上确定多个插值点,不仅能够均分样条曲线,还能够根据每个插值点所在的平面,将对象模型的放置区域划分为多个用于填充单位模型的样条网格。通过在每个样条网格中填充单位模型,并按照对象模型的轮廓形状调整每个单位模型的形状,能够使得形变后的单位模型的形状与对象模型在部分区域的形状相同,从而使得多个形变后的单位模型能够组成对象模型。采用上述方法,能够根据样条曲线所描述的轮廓形状自动调整单位模型的形状,无需人工执行相关操作,节省了人工成本,提高了生成对象模型和构建虚拟场景的效率。
图3是本申请实施例提供的另一种模型生成方法的流程图,参见图3,在本申请实施例中以由终端执行为例进行说明。该模型生成方法包括以下步骤:
301、终端基于第一对象模型的轮廓曲线,生成第一对象模型的样条曲线,第一对象模型为虚拟场景中任一待生成的对象模型,轮廓曲线用于指示第一对象模型的轮廓,样条曲线用于描述第一对象模型的轮廓形状。
在本申请实施例中,第一对象模型可以为虚拟场景中的建筑物、虚拟场景中的植物或者虚拟场景中的虚拟角色,本申请实施例对此不进行限制。在终端生成虚拟场景中的第一对象模型的过程中,终端根据第一对象模型的轮廓曲线,生成第一对象模型的样条曲线。该样条曲线用于描述第一对象模型的轮廓形状。其中,第一对象模型的轮廓曲线可以为技术人员绘制的,也可以为终端根据第一对象模型的类型自动生成的,本申请实施例不进行限制。例如,在第一对象模型为弯曲的道路的情况下,终端根据道路的轮廓曲线所指示的道路的长度和道路在不同位置的弯曲程度,生成与该道路长度相同、形状相同的样条曲线。
在一些实施例中,终端能够根据轮廓曲线中的曲线线段,生成样条曲线。终端获取第一对象模型的轮廓曲线。其中,轮廓曲线能够指示第一对象模型的轮廓。然后,终端分别确定该轮廓曲线在空间直角坐标系的X轴、Y轴以及Z轴三个坐标轴上的投影线段和投影线段的长度。然后,终端根据轮廓曲线分别在上述三个坐标轴上的投影线段的长度,确定目标坐标轴。其中,轮廓曲线在目标坐标轴上的投影线段的长度最长。终端根据轮廓曲线在目标坐标轴上的投影线段,从轮廓曲线中确定一段曲线线段,以使该曲线线段在目标坐标轴上的投影线段与轮廓曲线在目标坐标轴上的投影线段的长度相同、形状相同。终端根据该曲线线段的形状,生成与该曲线线段长度相同、形状相同的样条曲线。
图4为一种样条曲线的示意图。如图4所示,样条曲线由端点p1、端点p2以及两个端点之间连接的一条曲线构成。其中,样条曲线的两个端点又可以称为控制点。终端通过样条曲线的两个控制点,能够调整样条曲线的形状,以使样条曲线的形状能够描述第一对象模型的轮廓形状。在一些实施例中,样条曲线包括多个控制点。终端可以通过样条曲线的多个控制点,调整样条曲线的形状。其中,样条曲线的控制点可以为样条曲线的端点,也可以为样条曲线上的点,还可以为样条曲线之外的点,本申请实施例对此不进行限制。
302、终端确定第一对象模型的样条曲线的长度。
在本申请实施例中,由于样条曲线的形状为曲线,因此,终端可以采用逼近法确定样条曲线的长度。其中,逼近法是指终端可以通过多段直线线段逼近样条曲线。然后,终端确定每段直线线段的长度,再将各段直线线段的长度之和作为样条曲线的长度。其中,用于逼近样条曲线的直线线段的数量越多,得到的样条曲线的长度越准确。
在一些实施例中,终端能够将样条曲线划分成多个样条片段,并根据各个样条片段的长度确定样条曲线的长度。终端按照目标步长,将样条曲线划分为目标数量个样条片段。其中,目标数量为正整数,目标步长与目标数量的乘积为1。终端可以先确定目标步长,再确定目标数量;终端也可以先确定目标数量,再确定目标步长,本申请实施例对此不进行限制。终端确定多个样条片段之后,终端基于每个样条片段上两个端点的坐标,确定每个样条片段的长度。其中,终端可以根据样条曲线片段的两个端点在世界坐标系中的坐标之间的差值,确定两个端点在三维空间中的距离,并将该距离作为两个端点之间的样条片段的长度。然后,终端对目标数量个样条片段的长度进行求和,将目标数量个长条片段的长度之和作为样条曲线的长度。
终端采用上述方法确定样条曲线的长度的准确度与目标步长负相关,该准确度与目标数量正相关。目标步长越小,目标数量越多,样条片段的数量越多,终端确定样条曲线的长度的准确度越高;目标步长越大,目标数量越少,样条片段的数量越少,终端确定样条曲线的长度的准确度越低。其中,准确度能够反映终端基于样条片段确定样条曲线的长度的准确程度。
例如,终端可以通过t的数值(0<=t<=1)来标识样条曲线的端点和样条曲线上的数据点。如图5所示,样条曲线的端点p1对应的t的数值为0,端点p2对应的t的数值为1。在目标步长为0.2的情况下,终端通过四个数据点将样条曲线划分为5个片段。其中,四个数据点对应的t的数值分别为0.2、0.4、0.6和0.8。然后,终端通过下述公式(1),对多个样条片段的长度进行求和,得到样条曲线的长度。
其中,L为样条曲线的长度。x为目标步长。p(t)为数值为t的数据点的坐标。p(t+x)为数值为t+x的数据点的坐标。
303、终端基于第一对象模型的样条曲线的长度,在第一对象模型的样条曲线上确定多个插值点,插值点用于均分样条曲线。
在本申请实施例中,终端确定第一对象模型的样条曲线的长度之后,终端通过对样条曲线的长度进行等间隔插值,在样条曲线上确定多个插值点。其中,采用等间隔插值的方法的得到的多个插值点能够均分该样条曲线。
在一些实施例中,终端通过确定样条曲线所能够覆盖的单位模型的数量,对样条曲线的长度进行等间隔插值。其中,单位模型用于组成第一对象模型。例如,在第一对象模型为虚拟场景中的道路的情况下,单位模型可以为路面模型;在第一对象模型为虚拟场景中的桥梁的情况下,单位模型可以为桥面模型或者桥墩模型。另外,单位模型的形状可以为正方体、长方体、圆球或者三棱锥,本申请实施例对单位模型的形状不进行限定。本申请实施例以单位模型的形状为正方体为例进行说明。终端确定样条曲线的长度与单位模型的长度的比值,该比值用于指示样条曲线能够覆盖的单位模型的数量。在该比值不是整数的情况下,表明样条曲线无法恰好覆盖整数数量个单位模型,则终端调整单位模型的长度,直至比值为整数,此时样条曲线的长度能够恰好覆盖整数数量个单位模型。其中,在调整单位模型的长度的过程中,终端可以放大单位模型的长度,也可以缩小单位模型的长度,本申请实施例对此不进行限制。然后,终端基于该整数的比值,对样条曲线的长度进行等间隔插值,得到多个插值点,插值点的数量为该比值加1。其中,相邻两个插值点之间的样条曲线的长度与单位模型的长度相同。
需要说明的是,在比值不是整数的情况下,终端可以仅调整单位模型的长度,而保持单位模型的宽度和高度不变。另外,终端在调整单位模型的长度的过程中,可以等比例调整各个单位模型的长度,以使各个单位模型的长度调整幅度相同;也可以随机调整各个单位模型的长度,以使各个单位模型的长度调整幅度不同,本申请实施例对终端调整单位模型的长度的方式不进行限制。
在一些实施例中,终端根据样条曲线的外包围盒所能够容纳的单位模型的数量,对样条曲线的长度进行插值。其中,外包围盒的长度与样条曲线的长度相同,外包围盒的宽度与单位模型的宽度相同。因此,终端根据外包围盒的长度与单位模型的长度的比值,就能够确定外包围盒所能容纳的单位模型的数量。图6为一种外包围盒的示意图。如图6所示,601为样条曲线的外包围盒的示意图。602为外包围盒601所能够容纳的单位模型的示意图。如602所示,该外包围盒能够容纳5个单位模型,但外包围盒中还存在部分剩余空间。因此,终端等比例放大5个单位模型的长度,直至外包围盒恰好能够容纳5个单位模型。或者,终端等比例缩小单位模型的长度,直至外包围盒恰好能够容纳6个或者7个单位模型。如604所示,在外包围盒恰好容纳5个单位模型的情况下,终端对样条曲线的长度进行等间隔插值,得到605所示的6个插值点,上述6个插值点对应的t的数值分别是0、0.2、0.4、0.6、0.8和1。
304、终端基于第一对象模型的样条曲线上的多个插值点,在第一对象模型的放置区域中确定多个样条网格,相邻的两个插值点所在平面之间的区域为一个样条网格,样条网格用于填充单位模型。
在本申请实施例中,终端确定样条曲线上的多个插值点之后,终端在虚拟场景中第一对象模型的放置区域,将相邻的两个插值点所在平面之间的区域确定为一个样条网格,从而将该放置区域划分为多个样条网格。每个样条网格可用于填充一个单位模型,进而终端能够根据样条网格的位置,在放置区域确定单位模型的填充位置。
在一些实施例中,终端能够根据插值点在放置区域的坐标位置,确定插值点所在平面。对于任一插值点,终端确定插值点在第一对象模型的放置区域中的坐标位置。其中,坐标位置可以为世界坐标系下插值点的世界坐标所指示的位置,也可以为第一对象模型的本地坐标系下插值点的坐标所指示的位置,本申请实施例对此不进行限制。终端根据样条曲线的形状,确定样条曲线在该插值点处的切线和切线的方向。终端根据插值点的坐标位置和样条曲线在插值点处的切线,在放置区域中确定插值点所在平面。其中,插值点所在平面在该坐标位置处,并且插值点所在平面与切线的方向相垂直。终端确定多个插值点所在平面后,终端在第一对象模型的放置区域中,将相邻的两个插值点所在平面之间的区域确定为一个样条网格。
305、终端在多个样条网格的位置分别填充多个单位模型,多个样条网格与多个单位模型一一对应,多个单位模型用于组成第一对象模型。
在本申请实施例中,终端在第一对象模型的放置区域中确定多个样条网格之后,终端按照样条网格在放置区域中的位置,在每个样条网格中填充一个单位模型。通过在多个样条网格中分别填充单位模型,不仅能够在放置区域中确定单位模型的填充位置,还能够按照填充位置将多个单位模型拼接为第一对象模型。
306、对于任一单位模型,终端通过模型形变算法,对单位模型的第一坐标信息进行处理,得到单位模型的第二坐标信息,模型形变算法用于按照样条曲线所描述的轮廓形状,确定单位模型的顶点形变后的坐标,第一坐标信息用于指示单位模型的多个顶点形变前的坐标,第二坐标信息用于指示单位模型的多个顶点形变后的坐标。
在本申请实施例中,终端在放置区域的样条网格中填充单位模型之后,终端根据样条曲线所描述的轮廓形状,确定模型形变算法。终端通过该模型形变算法,对第一坐标信息所指示的多个顶点坐标进行处理,得到单位模型形变后的多个顶点的坐标,也即是得到单位模型的第二坐标信息。
例如,终端可以通过下述公式(2)-(7),对单位模型的顶点坐标进行调整。
bT=f′m(x) (2)
bN=Δ12×Δ23 (3)
bB=bN×bT (4)
bO=fm(x) (5)
其中,x为单位模型的顶点归一化后的坐标。bT表示样条曲线在单位模型的顶点处的切线向量。bN和bB分别表示样条曲线在单位模型的顶点处的侧向向量和垂直向量。其中,侧向向量和垂直向量也可以被称为法向向量。bO表示单位模型的顶点在样条曲线上对应的位置。B为模型形变矩阵,通过模型形变矩阵,对任一单位模型的任一顶点的坐标v=(x,y,z)进行处理,能够得到该顶点形变后的坐标v′。
fm(*)为样条曲线的函数,能够表示样条曲线的形状。f′m(*)为样条曲线的函数的一阶导数。在样条曲线具有p1、p2以及p3共三个控制点的情况下,Δ12为控制点p1和控制点p2之间的坐标差,Δ23为控制点p2和控制点p3之间的坐标差。
其中,在目标坐标轴为z轴的情况下,终端能够通过下述公式(7),对单位模型的顶点坐标进行归一化。
其中,vi.z表示在单位模型的本地坐标系中,单位模型的第i个顶点在目标坐标轴z轴上的坐标。bounding.z表示单位模型在z轴上的长度。
终端通过下述公式(8),对单位模型的顶点的坐标进行处理,得到顶点形变后的坐标。
v′=B-1·v (8)
其中,B-1为模型形变矩阵B的逆矩阵。v为单位模型的形变前的顶点坐标矩阵。v可以为(x,y,z,0),v也可以为(x,y,z,1)。其中,x、y、z分别为单位模型的顶点在本地坐标系的x轴、y轴、z轴上的坐标。顶点坐标矩阵中的0和1为矩阵中填充的数值。通过0或者1填充顶点坐标矩阵,能够使得点点坐标矩阵能够与模型形变矩阵的逆矩阵相乘,从而实现通过模型形变矩阵对单位模型的顶点坐标进行变换。另外,在填充单位模型的各个顶点的顶点坐标矩阵的过程中,可以均通过0填充各个顶点坐标矩阵,也可以均通过1填充各个顶点坐标矩阵。v′为形变后的单位模型的顶点坐标矩阵。v′可以为(x′,y′,z′,0),v′可以为(x′,y′,z′,1)。其中,x′、y′、z′分别为形变后的单位模型的顶点在本地坐标系的x轴、y轴、z轴上的坐标。
307、终端基于单位模型的第二坐标信息,调整单位模型的多个顶点的位置,得到形变后的单位模型。
在本申请实施例中,终端按照第二坐标信息所指示的各个顶点的坐标,调整单位模型对应的各个顶点的位置,从而调整单位模型的形状。通过第二坐标信息调整单位模型的形状,能够使得单位模型形变后的形状与样条曲线的部分形状相同。
308、响应于得到形变后的多个单位模型,终端按照多个单位模型所在的样条网格的位置,对多个单位模型进行拼接,得到第一对象模型。
在本申请实施例中,终端通过执行上述步骤306-307对多个单位模型进行处理,得到形变后的多个单位模型之后,终端能够按照单位模型所在的样条网格的位置,拼接上述多个形变后的单位模型,得到第一对象模型。其中,拼接得到的第一对象模型的轮廓形状与样条曲线所描述的轮廓形状相同。
在一些实施例中,在第一对象模型为任一场景对象模型的子模型的情况下,终端拼接场景对象模型的多个子模型,生成场景对象模型。响应于得到第一对象模型和至少一个第二对象模型,终端对第一对象模型和至少一个第二对象模型进行拼接,得到场景对象模型。其中,至少一个第二对象模型为场景对象模型的其他子模型,场景对象模型用于表示虚拟场景中的场景对象,如道路、桥梁、管道等场景对象。场景对象模型的体积不小于第一对象模型的体积,场景对象模型的体积也不小于第二对象模型的体积。
需要说明的是,对于场景对象模型中曲率较大的部位,如管道的衔接部位、道路的转角部位,终端可以采用本申请实施例提供的方法生成上述部位对应的对象模型。对于其他曲率较小的部位,如道路的直线部位、管道的直线部位,终端可以直接在样条曲线上放置单位模型,并自动拼接单位模型,以生成上述部位对应的对象模型。然后,终端将各个部位对应的对象模型进行拼接,生成完整的场景对象模型。
本申请实施例提供了一种模型生成方法,在生成虚拟场景中对象模型的过程中,先根据对象模型的轮廓形状,生成样条曲线。然后,通过在样条曲线上确定多个插值点,不仅能够均分样条曲线,还能够根据每个插值点所在的平面,将对象模型的放置区域划分为多个用于填充单位模型的样条网格。通过在每个样条网格中填充单位模型,并按照对象模型的轮廓形状调整每个单位模型的形状,能够使得形变后的单位模型的形状与对象模型在部分区域的形状相同,从而使得多个形变后的单位模型能够组成对象模型。采用上述方法,能够根据样条曲线所描述的轮廓形状自动调整单位模型的形状,无需人工执行相关操作,节省了人工成本,提高了生成对象模型和构建虚拟场景的效率。
图7是本申请实施例提供的一种模型生成装置的结构示意图。参见图7,该装置包括:第一确定模块701、填充模块702、第一调整模块703。
第一确定模块701,用于基于第一对象模型的样条曲线上的多个插值点,在第一对象模型的放置区域中确定多个样条网格,第一对象模型为虚拟场景中任一待生成的对象模型,样条曲线用于描述第一对象模型的轮廓形状,插值点用于均分样条曲线,相邻的两个插值点所在平面之间的区域为一个样条网格,样条网格用于填充单位模型;
填充模块702,用于在多个样条网格的位置分别填充多个单位模型,多个样条网格与多个单位模型一一对应,多个单位模型用于组成第一对象模型;
第一调整模块703,用于按照样条曲线所描述的轮廓形状,分别调整多个单位模型的形状,得到第一对象模型。
在一些实施例中,第一确定模块701,用于对于任一插值点,确定插值点在第一对象模型的放置区域中的坐标位置;基于坐标位置和样条曲线在插值点处的切线,在放置区域中确定插值点所在平面,插值点所在平面与切线相垂直;在第一对象模型的放置区域中,将相邻的两个插值点所在平面之间的区域确定为一个样条网格。
在一些实施例中,图8是本申请实施例提供的另一种模型生成装置的结构示意图,如图8所示,装置还包括:
获取模块704,用于获取第一对象模型的轮廓曲线,轮廓曲线用于指示第一对象模型的轮廓;
第二确定模块705,用于基于轮廓曲线分别在X轴、Y轴以及Z轴上的投影线段的长度,确定目标坐标轴,轮廓曲线在目标坐标轴上的投影线段的长度最长;
生成模块706,用于基于轮廓曲线中的曲线线段的形状,生成样条曲线,曲线线段在目标坐标轴上的投影线段为轮廓曲线在目标坐标轴上的投影线段,样条曲线的形状与曲线线段的形状相同。
在一些实施例中,装置还包括:
第三确定模块707,用于确定样条曲线的长度与单位模型的长度的比值,比值用于指示样条曲线能够覆盖的单位模型的数量;
第二调整模块708,用于在比值不是整数的情况下,调整单位模型的长度,直至比值为整数;
插值模块709,用于基于比值,对样条曲线的长度进行等间隔插值,得到多个插值点,插值点的数量为比值加1。
在一些实施例中,装置还包括:
划分模块710,用于按照目标步长,将样条曲线划分为目标数量个样条片段,目标步长与目标数量的乘积为1,目标步长与准确度负相关,目标数量与准确度正相关,准确度用于反映基于样条片段确定样条曲线的长度的准确程度;
第四确定模块711,用于基于每个样条片段上两个端点的坐标,确定每个样条片段的长度;
第四确定模块711,还用于对目标数量个样条片段的长度进行求和,得到样条曲线的长度。
在一些实施例中,第一调整模块703,用于对于任一单位模型,通过模型形变算法,对单位模型的第一坐标信息进行处理,得到单位模型的第二坐标信息,模型形变算法用于按照样条曲线所描述的轮廓形状,确定单位模型的顶点形变后的坐标,第一坐标信息用于指示单位模型的多个顶点形变前的坐标,第二坐标信息用于指示单位模型的多个顶点形变后的坐标;基于单位模型的第二坐标信息,调整单位模型的多个顶点的位置,得到形变后的单位模型;响应于得到形变后的多个单位模型,按照多个单位模型所在的样条网格的位置,对多个单位模型进行拼接,得到第一对象模型。
在一些实施例中,装置还包括:
拼接模块712,用于在第一对象模型为任一场景对象模型的子模型的情况下,响应于得到第一对象模型和至少一个第二对象模型,对第一对象模型和至少一个第二对象模型进行拼接,得到场景对象模型,至少一个第二对象模型为场景对象模型的其他子模型,场景对象模型用于表示虚拟场景中的场景对象,场景对象模型的体积不小于第一对象模型的体积。
本申请实施例提供了一种模型生成装置,在生成虚拟场景中对象模型的过程中,先根据对象模型的轮廓形状,生成样条曲线。然后,通过在样条曲线上确定多个插值点,不仅能够均分样条曲线,还能够根据每个插值点所在的平面,将对象模型的放置区域划分为多个用于填充单位模型的样条网格。通过在每个样条网格中填充单位模型,并按照对象模型的轮廓形状调整每个单位模型的形状,能够使得形变后的单位模型的形状与对象模型在部分区域的形状相同,从而使得多个形变后的单位模型能够组成对象模型。采用上述方法,能够根据样条曲线所描述的轮廓形状自动调整单位模型的形状,无需人工执行相关操作,节省了人工成本,提高了生成对象模型和构建虚拟场景的效率。
需要说明的是:上述实施例提供的模型生成装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的模型生成装置和模型生成方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种终端,该终端包括处理器和存储器,存储器中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以实现上述实施例提供的模型生成方法。
图9是本申请实施例提供的一种终端的结构示意图。
终端900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以集成有GPU(Graphics Processing Unit,图像增强的交互器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一条计算机程序,该至少一条计算机程序用于被处理器901所具有以实现本申请中方法实施例提供的模型生成方法。
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。可选地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907和电源908中的至少一种。
外围设备接口903可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它设备进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置在终端900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端900的不同表面或呈折叠设计;在另一些实施例中,显示屏905可以是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。前置摄像头设置在终端900的前面板,后置摄像头设置在终端900的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
电源908用于为终端900中的各个组件进行供电。电源908可以是交流电、直流电、一次性电池或可充电电池。当电源908包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端900还包括有一个或多个传感器909。该一个或多个传感器909包括但不限于:加速度传感器910、陀螺仪传感器911、压力传感器912、光学传感器913以及接近传感器914。
加速度传感器910可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器910可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器910采集的重力加速度信号,控制显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器910还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器911可以检测终端900的机体方向及转动角度,陀螺仪传感器911可以与加速度传感器910协同采集用户对终端900的3D动作。处理器901根据陀螺仪传感器911采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器912可以设置在终端900的侧边框和/或显示屏905的下层。当压力传感器912设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器912采集的握持信号进行左右手识别或快捷操作。当压力传感器912设置在显示屏905的下层时,由处理器901根据用户对显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器913用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器913采集的环境光强度,控制显示屏905的显示亮度。可选地,当环境光强度较高时,调高显示屏905的显示亮度;当环境光强度较低时,调低显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器913采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器914,也称距离传感器,设置在终端900的前面板。接近传感器914用于采集用户与终端900的正面之间的距离。在一个实施例中,当接近传感器914检测到用户与终端900的正面之间的距离逐渐变小时,由处理器901控制显示屏905从亮屏状态切换为息屏状态;当接近传感器914检测到用户与终端900的正面之间的距离逐渐变大时,由处理器901控制显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图9中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以实现上述实施例提供的模型生成方法。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序由处理器加载并执行,以实现如上述实施例提供的模型生成方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,上述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请实施例的可选实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种模型生成方法,其特征在于,所述方法包括:
基于第一对象模型的样条曲线上的多个插值点,在所述第一对象模型的放置区域中确定多个样条网格,所述第一对象模型为虚拟场景中任一待生成的对象模型,所述样条曲线用于描述所述第一对象模型的轮廓形状,所述插值点用于均分所述样条曲线,相邻的两个插值点所在平面之间的区域为一个样条网格,所述样条网格用于填充单位模型;
在所述多个样条网格的位置分别填充多个单位模型,所述多个样条网格与所述多个单位模型一一对应,所述多个单位模型用于组成所述第一对象模型;
按照所述样条曲线所描述的轮廓形状,分别调整所述多个单位模型的形状,得到所述第一对象模型。
2.根据权利要求1所述的方法,其特征在于,所述基于第一对象模型的样条曲线上的多个插值点,在所述第一对象模型的放置区域中确定多个样条网格,包括:
对于任一插值点,确定所述插值点在所述第一对象模型的放置区域中的坐标位置;
基于所述坐标位置和所述样条曲线在所述插值点处的切线,在所述放置区域中确定所述插值点所在平面,所述插值点所在平面与所述切线相垂直;
在所述第一对象模型的放置区域中,将相邻的两个插值点所在平面之间的区域确定为一个样条网格。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述第一对象模型的轮廓曲线,所述轮廓曲线用于指示所述第一对象模型的轮廓;
基于所述轮廓曲线分别在X轴、Y轴以及Z轴上的投影线段的长度,确定目标坐标轴,所述轮廓曲线在所述目标坐标轴上的投影线段的长度最长;
基于所述轮廓曲线中的曲线线段的形状,生成所述样条曲线,所述曲线线段在所述目标坐标轴上的投影线段为所述轮廓曲线在所述目标坐标轴上的投影线段,所述样条曲线的形状与所述曲线线段的形状相同。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述样条曲线的长度与所述单位模型的长度的比值,所述比值用于指示所述样条曲线能够覆盖的单位模型的数量;
在所述比值不是整数的情况下,调整所述单位模型的长度,直至所述比值为整数;
基于所述比值,对所述样条曲线的长度进行等间隔插值,得到所述多个插值点,所述插值点的数量为所述比值加1。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
按照目标步长,将所述样条曲线划分为目标数量个样条片段,所述目标步长与所述目标数量的乘积为1,所述目标步长与准确度负相关,所述目标数量与所述准确度正相关,所述准确度用于反映基于所述样条片段确定所述样条曲线的长度的准确程度;
基于每个样条片段上两个端点的坐标,确定所述每个样条片段的长度;
对所述目标数量个样条片段的长度进行求和,得到所述样条曲线的长度。
6.根据权利要求1所述的方法,其特征在于,所述按照所述样条曲线所描述的轮廓形状,分别调整所述多个单位模型的形状,得到所述第一对象模型,包括:
对于任一单位模型,通过模型形变算法,对所述单位模型的第一坐标信息进行处理,得到所述单位模型的第二坐标信息,所述模型形变算法用于按照所述样条曲线所描述的轮廓形状,确定所述单位模型的顶点形变后的坐标,所述第一坐标信息用于指示所述单位模型的多个顶点形变前的坐标,所述第二坐标信息用于指示所述单位模型的多个顶点形变后的坐标;
基于所述单位模型的第二坐标信息,调整所述单位模型的多个顶点的位置,得到形变后的所述单位模型;
响应于得到形变后的多个单位模型,按照所述多个单位模型所在的样条网格的位置,对所述多个单位模型进行拼接,得到所述第一对象模型。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一对象模型为任一场景对象模型的子模型的情况下,响应于得到所述第一对象模型和至少一个第二对象模型,对所述第一对象模型和所述至少一个第二对象模型进行拼接,得到所述场景对象模型,所述至少一个第二对象模型为所述场景对象模型的其他子模型,所述场景对象模型用于表示所述虚拟场景中的场景对象,所述场景对象模型的体积不小于所述第一对象模型的体积。
8.一种模型生成装置,其特征在于,所述装置包括:
第一确定模块,用于基于第一对象模型的样条曲线上的多个插值点,在所述第一对象模型的放置区域中确定多个样条网格,所述第一对象模型为虚拟场景中任一待生成的对象模型,所述样条曲线用于描述所述第一对象模型的轮廓形状,所述插值点用于均分所述样条曲线,相邻的两个插值点所在平面之间的区域为一个样条网格,所述样条网格用于填充单位模型;
填充模块,用于在所述多个样条网格的位置分别填充多个单位模型,所述多个样条网格与所述多个单位模型一一对应,所述多个单位模型用于组成所述第一对象模型;
第一调整模块,用于按照所述样条曲线所描述的轮廓形状,分别调整所述多个单位模型的形状,得到所述第一对象模型。
9.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以实现如权利要求1至7任一项所述的模型生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以实现如权利要求1至7任一项所述的模型生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311044373.4A CN116993946A (zh) | 2023-08-17 | 2023-08-17 | 模型生成方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311044373.4A CN116993946A (zh) | 2023-08-17 | 2023-08-17 | 模型生成方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116993946A true CN116993946A (zh) | 2023-11-03 |
Family
ID=88524704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311044373.4A Pending CN116993946A (zh) | 2023-08-17 | 2023-08-17 | 模型生成方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116993946A (zh) |
-
2023
- 2023-08-17 CN CN202311044373.4A patent/CN116993946A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108245893B (zh) | 三维虚拟环境中虚拟对象的姿态确定方法、装置及介质 | |
CN110276840B (zh) | 多虚拟角色的控制方法、装置、设备及存储介质 | |
CN109754454B (zh) | 物体模型的渲染方法、装置、存储介质及设备 | |
CN109712224B (zh) | 虚拟场景的渲染方法、装置及智能设备 | |
CN112933599B (zh) | 三维模型渲染方法、装置、设备及存储介质 | |
CN112245926B (zh) | 虚拟地形的渲染方法、装置、设备及介质 | |
CN112907716B (zh) | 虚拟环境中的云朵渲染方法、装置、设备及存储介质 | |
KR102633468B1 (ko) | 핫스팟 맵 표시 방법 및 장치, 그리고 컴퓨터 기기와 판독 가능한 저장 매체 | |
CN112884874A (zh) | 在虚拟模型上贴花的方法、装置、设备及介质 | |
CN112308103B (zh) | 生成训练样本的方法和装置 | |
CN112116681B (zh) | 图像生成方法、装置、计算机设备及存储介质 | |
CN112884873B (zh) | 虚拟环境中虚拟物体的渲染方法、装置、设备及介质 | |
CN112750190B (zh) | 三维热力图生成方法、装置、设备及存储介质 | |
CN112950753B (zh) | 虚拟植物显示方法、装置、设备及存储介质 | |
CN113018865B (zh) | 攀爬线生成方法、装置、计算机设备及存储介质 | |
CN112717393B (zh) | 虚拟场景中的虚拟物件显示方法、装置、设备及存储介质 | |
CN116828207A (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN116993946A (zh) | 模型生成方法、装置、终端及存储介质 | |
CN114299201A (zh) | 动画帧的显示方法、装置、设备及存储介质 | |
CN110335224B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN113144595A (zh) | 虚拟道路的生成方法、装置、终端及存储介质 | |
CN113209610A (zh) | 虚拟场景画面展示方法、装置、计算机设备及存储介质 | |
CN113058266B (zh) | 虚拟环境中场景字体的显示方法、装置、设备及介质 | |
CN110201392B (zh) | 用户界面生成方法、装置和终端 | |
CN113205582B (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 |