CN108876920A - 用于三维组件拼接的几何结构数据处理方法和装置 - Google Patents

用于三维组件拼接的几何结构数据处理方法和装置 Download PDF

Info

Publication number
CN108876920A
CN108876920A CN201810687484.XA CN201810687484A CN108876920A CN 108876920 A CN108876920 A CN 108876920A CN 201810687484 A CN201810687484 A CN 201810687484A CN 108876920 A CN108876920 A CN 108876920A
Authority
CN
China
Prior art keywords
dimensional
geometric data
dimensional micromodule
micromodule
data
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.)
Granted
Application number
CN201810687484.XA
Other languages
English (en)
Other versions
CN108876920B (zh
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 CN201810687484.XA priority Critical patent/CN108876920B/zh
Publication of CN108876920A publication Critical patent/CN108876920A/zh
Application granted granted Critical
Publication of CN108876920B publication Critical patent/CN108876920B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes

Landscapes

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

Abstract

本发明公开了一种用于三维组件拼接的几何结构数据处理方法和装置。该方法包括:将三维组件进行剔除厚度信息的处理,生成至少一空间多边形;获取至少两个待拼接的三维组件的几何结构数据,其中,几何结构数据为三维组件处理后对应的至少一空间多边形的几何结构数据;通过预定义的组合规则,对选定的至少两个待拼接的三维组件的几何结构数据进行处理,得到处理结果,其中,组合规则为用于几何结构计算的模型,通过本发明,提高了三维组件的拼接效率。

Description

用于三维组件拼接的几何结构数据处理方法和装置
技术领域
本发明涉及数据处理领域,具体而言,涉及一种用于三维组件拼接的几何结构数据处理方法和装置。
背景技术
目前,生存建造类游戏是热门游戏类别,游戏中的建筑内容更是重中之重。现在市面上的建筑系统主要是把建筑拆解成一个个组成部分(建筑组件),比如地板、墙体、屋顶等,需要玩家控制的角色去逐个摆放建造。这个过程主要是空间几何计算和简单的拓扑应用,用于解决建筑组件之间的连接、自动吸附、结构支撑等特性。
相关技术中比较有代表性的是,建筑拆解成一个个组成部分(建筑组件),比如地板、墙体、屋顶等,需要玩家控制的角色去逐个摆放建造。这种组件拼合式的建造方式,它的一般制作和设计流程是:
a)预先枚举和定义基本的建筑组件,比如地基、地板、墙体、屋顶、窗口等;
b)将定义的建筑组件原型抽象为开发所使用的物理引擎的几何元素,比较简单的有正方体(长方体)、三棱柱、圆柱体等,比较复杂的也可以是建筑组件模型的低模(lowpoly,指的是用较少的点线面来制作的低精度模型)多面体形式;
c)统一制作标准,比如规范几何体原点、旋转、缩放等数据;
d)为每个组件配置组件的几何属性和逻辑属性;
e)配置不同材质外观,统一风格化。
这些一般都是通过团队内部开发的编辑器来完成编辑制作流程。在游戏内的表现是,玩家可选择不同外观的基本组件,根据设定的拼接吸附规则,把多个组件组合堆砌成一个完整的游戏内建筑。在这个建筑组件组合拼接的过程中,一般利用游戏物理引擎来做建筑组件的空间变换和碰撞检测等计算。
虽然现有的设计方案能够满足绝大多数建造类游戏的需求,但也有一些制约游戏设计的因素:
1.组件类型单一,缺少多样化的复合组件类型,无法高效流程化地自定义复合类型的组件,同时导致相关编辑器或mod制作上的限制。因为现有方案是基于物理引擎的基本几何元素,无法方便地定义复杂的组合形状或几何体,即便组合出来,还要统一原点、旋转、缩放等规范,效率比较低,而且自由度仍然不足够。
2.组件的几何数据绑定了客户端游戏引擎或物理引擎,没有彻底解耦,不方便逻辑移植。
3.为了表达建筑占地形状的多样性,现有技术方案一般会提供两种基本地面形状,正方形和正三角形,两种形状的组合,可以衍生出丰富的水平地面组合形状。但是,这给建筑的空间计算带来了困难,没办法高效地计算由地面、墙和顶组成的空间是否闭合以及是否完美闭合(即组件之间没有互相交叉嵌入),这对进一步的游戏设计需求产生了阻碍,比如室内属性和室外属性、温度湿度等环境属性的设计。
针对相关技术中在进行物体的结构设计的过程中,都是基于物理引擎的基本几何元素,即采用结构组件的立体几何结构来拼合得到物体,导致在使用结构组件完成结构设计的过程中,存在效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种用于三维组件拼接的几何结构数据处理方法和装置,以解决基于物理引擎使用结构组件完成结构设计的过程中效率低的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种用于三维组件拼接的几何结构数据处理方法,该方法包括:将三维组件进行剔除厚度信息的处理,生成至少一空间多边形;获取至少两个待拼接的所述三维组件的几何结构数据,其中,所述几何结构数据为所述三维组件处理后对应的所述至少一空间多边形的几何结构数据;通过预定义的组合规则,对选定的至少两个待拼接的所述三维组件的几何结构数据进行处理,得到处理结果,其中,所述组合规则为用于所述几何结构数据计算的模型。
进一步地,所述三维组件对应的所述至少一空间多边形的几何结构数据包括如下至少之一:所述三维组件的顶点列表、所述三维组件自身的第一边列表、所述三维组件与其他组件具有关联关系的边的第二边列表、互斥三角面列表和所述三维组件在平面上的投影列表。
进一步地,在获取至少两个待拼接的所述三维组件的几何结构数据之前,所述方法还包括:定义每个三维组件的空间多边形的几何结构数据;其中,定义所述顶点列表包括至少一个顶点数据,所述顶点数据用于定义所述三维组件中的如下任意一个组成:所述三维组件的原点、所述原点指向的矢量方向、所述三维组件的边、所述三维组件的互斥三角形面、所述三维组件的单位边长的投影、所述三维组件对应的控件位置。
进一步地,在获取至少两个待拼接的所述三维组件的几何结构数据之前,所述方法还包括:定义每个三维组件的空间多边形的几何结构数据;其中,定义所述第一边列表包括至少一个边数据,所述边数据用于定义所述三维组件中的如下任意一个与边关联的组成:依赖所述三维组件的边的边数据,以及三维组件之间连接时的边逻辑。
进一步地,在获取至少两个待拼接的所述三维组件的几何结构数据之前,所述方法还包括:定义每个三维组件的空间多边形的几何结构数据;其中,定义所述投影列表包括所述三维组件在水平面的投影数据,所述投影数据用于确定所述三维组件在所述水平面的投影包括如下之一:正方形、正三角形、所述正方形和所述正三角形的组合。
进一步地,通过预定义的组合规则,对选定的至少两个待拼接的所述三维组件的几何结构数据进行处理包括:选择待组合的三维组件;调取所述待组合的三维组件的几何结构数据对应的计算模型;使用所述计算模型对选定的待组合的三维组件的几何结构数据进行计算处理。
进一步地,在通过预定义的组合规则,对选定的至少两个待拼接的所述三维组件的几何结构数据进行处理,得到处理结果之后,所述方法还包括:根据所述处理结果显示拼接后的结构图形。
为了实现上述目的,根据本发明的另一方面,还提供了一种用于三维组件拼接的几何结构数据处理装置,该装置包括:处理单元,用于将三维组件进行剔除厚度信息的处理,生成至少一空间多边形;获取单元,用于获取至少两个待拼接的所述三维组件的几何结构数据,其中,所述几何结构数据为所述三维组件处理后对应的所述至少一空间多边形的几何结构数据;拼接单元,用于通过预定义的组合规则,对选定的至少两个待拼接的所述三维组件的几何结构数据进行处理,得到处理结果,其中,所述组合规则为用于所述几何结构数据计算的模型。
为了实现上述目的,根据本发明的另一方面,还提供了一种存储介质,包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备本发明所述的用于三维组件拼接的结构数据处理方法。
为了实现上述目的,根据本发明的另一方面,还提供了一种处理器,用于运行程序,其中,所述程序运行时执行本发明所述的用于三维组件拼接的结构数据处理方法。
本发明通过获取至少两个待拼接的三维结构组件的结构数据,其中,结构数据包括:将三维组件进行剔除厚度信息的处理,生成至少一空间多边形;获取至少两个待拼接的三维组件的几何结构数据,其中,几何结构数据为三维组件处理后对应的至少一空间多边形的几何结构数据;通过预定义的组合规则,对选定的至少两个待拼接的三维组件的几何结构数据进行处理,得到处理结果,其中,组合规则为用于几何结构数据计算的模型,解决了基于物理引擎使用结构组件完成结构设计的过程中效率低的问题,进而提高了三维组件的拼接效率。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的用于三维组件拼接的几何结构数据处理方法的流程图;
图2是根据本发明实施例的互斥三角面的示意图;
图3是根据本发明实施例的组件水平投影分割的示意图;
图4是根据本发明实施例的2×2方形地板的示意图;
图5是根据本发明实施例的边长为1的正三角形地板的示意图;
图6是根据本发明实施例的1×1正方形墙的示意图;
图7是根据本发明实施例的1×1正方形的45度斜屋顶的示意图;
图8是根据本发明实施例的用于三维组件拼接的几何结构数据处理装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种用于三维组件拼接的几何结构数据处理方法。
图1是根据本发明实施例的用于三维组件拼接的几何结构数据处理方法的流程图,如图1所示,该方法包括以下步骤:
步骤S102:将三维组件进行剔除厚度信息的处理,生成至少一空间多边形;
步骤S104:获取至少两个待拼接的三维组件的几何结构数据,其中,几何结构数据为三维组件处理后对应的至少一空间多边形的几何结构数据;
步骤S106:通过预定义的组合规则,对选定的至少两个待拼接的三维组件的几何结构数据进行处理,得到处理结果,其中,组合规则为用于几何结构数据计算的模型。
该实施例通过获取至少两个待拼接的三维结构组件的结构数据,其中,结构数据包括:将三维组件进行剔除厚度信息的处理,生成至少一空间多边形;获取至少两个待拼接的三维组件的几何结构数据,其中,几何结构数据为三维组件处理后对应的至少一空间多边形的几何结构数据;通过预定义的组合规则,对选定的至少两个待拼接的三维组件的几何结构数据进行处理,得到处理结果,其中,组合规则为用于几何结构数据计算的模型,解决了基于物理引擎使用结构组件完成结构设计的过程中效率低的问题,提高了三维组件的拼接效率。。
本发明实施例的技术方案可以作为一种面向抽象数据的游戏内建筑系统设计的方案,在本发明实施例中,结构组件可以是游戏中建筑的结构组件,在游戏中拼接三维的建筑物组件的过程中,将三维组件进行剔除厚度信息的处理,生成至少一个空间多边形,也可以理解为生成三维组件的简化空间多边形,根据三维结构组件的简化空间多边形的几何数据进行数据处理,获取至少两个待拼接的三维组件的几何结构数据,然后通过预定义的组合规则对几何结构数据进行处理,以得到拼接结果。可以根据处理结果显示拼接后的结构图形。结构图形可以是可视化图形,将建筑组件的体的几何结构简化为面的几何结构,在建筑组件拼合时,从几何体的相关运算简化为几何面的相关运算,这样可以解决基于物理引擎使用结构组件完成结构设计的过程中效率低的问题,简化了计算过程,也可以提高计算效率。
可选地,三维组件对应的至少一空间多边形的几何结构数据包括如下至少之一:三维组件的顶点列表、三维组件自身的第一边列表、三维组件与其他组件具有关联关系的边的第二边列表、互斥三角面列表和三维组件在平面上的投影列表。
三维组件的简化空间多边形的几何数据可以是逻辑骨架数据,通过关键顶点、边来描述三维组件,包括组件的顶点列表、组件本身的第一边列表、组件与其他结构组件具有关联关系的边的第二边列表、互斥三角面列表和投影列表等多个类型的逻辑骨架数据。
可选地,在获取至少两个待拼接的三维组件的几何结构数据之前,定义每个三维组件的空间多边形的几何结构数据;其中,定义顶点列表包括至少一个顶点数据,顶点数据用于定义三维组件中的如下任意一个组成:三维组件的原点、原点指向的矢量方向、三维组件的边、三维组件的互斥三角形面、三维组件的单位边长的投影、三维组件对应的控件位置。
定义每个三维组件的空间多边形的几何数据中的顶点列表可以包括一个或多个顶点数据,需要说明的是,顶点数据不是建筑组件真正模型中的顶点,而是指能够参与游戏所需的逻辑计算的顶点。
可选地,在获取至少两个待拼接的三维组件的几何结构数据之前,定义每个三维组件的空间多边形的几何结构数据;其中,定义第一边列表包括至少一个边数据,边数据用于定义三维组件中的如下任意一个与边关联的组成:依赖三维组件的边的边数据,以及三维组件之间连接时的边逻辑。
定义每个三维结构组件的空间多边形的几何数据中的边列表可以包括一个或多个边数据,边数据可以用于定义结构组件中的依赖结构组件的边的边数据和连接时的边逻辑。
可选地,在获取至少一个结构组件的结构数据之前,定义每个三维结构组件的简化空间多边形的几何数据;其中,定义每个三维组件的空间多边形的几何结构数据;其中,定义第一边列表包括至少一个边数据,边数据用于定义三维组件中的如下任意一个与边关联的组成:依赖三维组件的边的边数据,以及三维组件之间连接时的边逻辑。
定义每个三维结构组件的空间多边形的几何数据中的边列表可以包括结构组件在水平面的投影数据,投影数据可以用于确定结构组件在水平面的投影是正方形还是正三角形,或者是正方形与三角形的组合。
可选地,使用定义的组合规则,对选定的结构组件的结构数据进行处理,可以是使用可视化编辑器选择待组合的三维组件;调取待组合的三维组件的几何结构数据对应的计算模型;使用计算模型对选定的待组合的三维组件的几何结构数据进行计算处理。
计算模型可以是预先定义好的算法,例如,待组合的三维组件可以是顶点数据,则根据顶点数据对应的模型进行计算,如果几何结构的结构组件是结构组件在水平面的投影数据,则根据投影数据对应的计算模型进行计算处理。
本发明实施例的技术方案能够带来的有益效果有以下几点:
1.结构简单,规则明确。因为在进行组件设计的过程中,可以完全不依赖任何其他资源,直接根据需求设计建筑组件的空间逻辑相关的数据即可;
2.组件数据非常简单,使几何结构属性的网络化传输成为可能(传统网格模型数据量太大,网络传输不现实);
3.建筑组件设计流程上与资源解耦,即逻辑设计和资源编辑可以完全并行;
4.组件数据与游戏引擎或物理引擎完全解耦,可以纯逻辑运行,因为相关算法简单高效(顶点空间变换、空间线段、三角面关系等基本运算),相关数据量级很小。
5.非常易于组合型组件的扩展,因为数据定义非常简单。比如用多个水平正方形、三角形、竖直正方形等组件组合成一个大型组件,这个定义只是多加几个顶点、边和三角面;
6.拼接规则简单明确,便于后续制作可视化编辑器,从而对三维建筑组件进行批量制作,提升开发效率;
7.特色的水平投影机制的设计,巧妙解决了建筑内空间相关的计算效率低下的问题。因为建筑内空间被设定成严格由正方体和正三棱柱组成,所以计算过程中省去了很多耗性能的几何计算步骤。另一方面,如果需求层面设计合理,单位长度粒度设计合理,建筑整体形状和结构并不会受太大的影响。
本发明实施例还提供了一种优选实施方式,下面结合该优选实施方式对本发明实施例的技术方案进行说明。
本发明实施例的技术方案从建筑系统的业务逻辑和拼合需求出发,把建筑组件的体的几何结构简化为面的几何结构,建筑组件拼合时,从几何体的相关运算简化为几何面的相关运算,组件与组件的互相连接(拼合)由两个几何面共享的公共边来体现。组件的简化结构数据定义和建筑组件的抽象设计方法是主要内容,基于这个简化设计,有效解决了基于物理引擎使用结构组件完成结构设计的过程中效率低的问题。
1.从抽象数据入手,将建筑组件抽象为几何面的顶点坐标列表,通过若干关键顶点的索引,组成具有连接逻辑的建筑组件的边(线段)列表,还能通过关键顶点的索引,定义用于建筑组件互斥判定的空间三角形列表。实际上,这个方式相当于给建筑组件做了个最简化的“逻辑骨架”。由于组件的空间数据只由关键顶点来描述,数据和计算量极大地简化,组件定义的自由度非常高,可定义丰富的复合组件类型,并且完全与资源制作流程分离,大大提升了制作效率。
2.用抽象数据定义的方式,脱离了预制的几何体的限制,完全独立于客户端游戏引擎或物理引擎之外,而且数据结构极其简单,需要的几何计算明确(顶点变换、有限的空间三角形关系判断等),完全可以在CPU上完成建筑几何结构相关的计算,使这部分的逻辑更容易移植。
3.本发明实施例的技术方案在组件定义的结构中,加入了水平投影的数据,确保每个组件(基本组件和复合组件)在水平面的投影都是正方形或正三角形二者的组合。在建筑搭建的过程中,限制不同高度的水平组件(地板、屋顶等)的水平投影要与已有组件的水平投影吻合(互相不交叉)才能成功搭建。因此,建筑的室内空间都是四棱柱空间和三棱柱空间组成的,这样极大简化了建筑的空间闭合性判定的计算复杂度,给室内属性和室外属性、温度湿度等环境属性的设计带来了可能。
在本发明实施例的技术方案中,主要定义组件的简化结构数据和建筑组件的抽象设计方法,具体如下:
1.建筑组件的简化结构数据定义。建筑组件的结构数据主要有以下几个部分:
a)顶点列表。本发明实施例所指的顶点并不是建筑组件真正模型中的顶点,而是指有游戏逻辑意义的、能够参与游戏所需的逻辑计算的顶点。例如一个边长为1的正方形地板,它的顶点列表与它的模型的顶点无关,只与它的拼合相关的运算有关,所以只需要定义4个顶点,顶点用三维空间正交坐标表示,即(0,0,0),(1,0,0),(1,0,1),(0,0,1)。为方便说明,该核心内容部分后面都用这个数据为例说明。
b)边列表。边列表是指由顶点列表中的顶点索引对表示的。例如这个正方形地板的边可以表示为(1,2),(2,3),(3,4),(4,1)。注:本实施例中索引都是从1开始的。只有确定两个顶点的连线是需要参与游戏算的,才需要定义这两个顶点所连接的这条边。例如,如果该方形地板的第一条边不需要参与运算(比如是和其他建筑组件的互相吸附),那么该方形地板的边列表完全可以定义成(2,3),(3,4),(4,1)。
c)组件用于与其他组件连接或吸附的边列表(或称有效吸附边列表)。这个列表是由组件边列表中的边的位置索引组成的,本实施例中的方形地板,如果它的每条边都能与其他组件连接吸附,则该列表可表示为[1,2,3,4],如果该组件第一条边不可吸附,则该列表可表示为[2,3,4]。定义这个列表,相当于扩展了边的连接规则。例如一个2x2的地板,它的有效吸附边列表中可能是4条边长为2的边,它只能和其他的有效吸附边列表中也有边长为2的边的组件互相吸附;也可能是8条边长为1的边,它只能和其他的有效吸附边列表中也有边长为1的边的组件互相吸附;或者是二者的组合,这样它就都可以吸附。
d)互斥三角面列表。每个互斥三角面是由三个顶点索引组成的,用于计算建筑组件之间的互斥关系,例如判定两个建筑组件是否相交。图2是根据本发明实施例的互斥三角面的示意图,如图2所示,本实施例的方形地板完全可以用两个互斥三角面来覆盖互斥区域,即(1,2,3),(1,3,4)两个互斥三角面。
e)建筑组件在水平面上的投影列表。每个投影数据是由需要参与投影的顶点的索引组成的。本实施例中,方形地板的四个顶点都参与了该地板的水平投影,所以它的投影列表表示为[(1,2,3,4)]。这里解释一下为什么要用一个列表来表示,有些复合类型的组件,例如一个边长为2的方形地板,它的投影就要表示为四个1x1的方形水平投影的列表。因为本发明实施例的技术方案为了高效地执行建筑的空间计算(例如计算空间上的房间闭合性、室内室外关系、空间体积相关的建筑属性计算),把建筑的空间细分为边长为1的正方体或正三棱柱,这就要求水平投影需要细分成边长为1的正方形或正三角形的不相交的组合。图3是根据本发明实施例的组件水平投影分割的示意图,如图3所示,细分之后空间的样子为四个正方体和六个正三棱柱组成,边长都为一个单位长度,组件A是一个2×2的方形墙,组件B是一个由两个正方形和三个三角形组成的地板。
2.建筑组件的抽象设计方法。定义了建筑组件基本的简化结构数据之后,还有面向这些抽象数据的组件设计方法,也即建筑组件的连接规则和业务逻辑。
在组件的顶点设计上,包括顶点的数量和组件自身空间下的坐标位置,都是可以灵活指定的。一般情况,顶点的设计需要遵循一些规则,就是:
a)表示该组件的pivot原点需要用到顶点,该顶点一般是(0,0,0),但不会强制限制成这样。Pivot原点的作用是,它在游戏中的位置可以认为是这个组件在游戏中的位置;
b)表示该组件的direction方向需要用到顶点,该顶点要与表示pivot原点的顶点(即pivot顶点)一起使用,即在游戏世界中从pivot顶点位置指向direction顶点位置的向量就表示该建筑组件在游戏世界中的方向;
c)表示该组件的边,需要用到两个顶点,一般要设计成两个顶点距离为单位长度的整数倍;
d)表示该组件的互斥三角形面,需要用到三个顶点,一般需要用多个三角形的组合来覆盖整个组件的互斥面;
e)表示单位边长为1的水平投影,需要用到三个顶点(三角形投影)或四个顶点(正方形投影);
f)以上的所有情况所用到的顶点,需要尽可能的重复使用,比如一个作为pivot的顶点,它可能同时用来表示组件的边的一个顶点,可能还用来表示一个互斥三角形面的一个顶点,还可能参与了水平投影,即也是水平投影的一个顶点;
g)此外,如果该组件上面需要定制一些其他的空间位置相关的特性,比如地板上指定一个位置点,用于其他的游戏逻辑使用,这种类似的情况下,也是可以定义顶点的,所以顶点的定义很自由,易扩展逻辑。
在边的设计上,同样十分灵活:
a)用于组件之间的相互连接和吸附计算时,可以定义边。本实施例中定义连接和吸附规则为,两个组件中各取任意一个边,如果长度相等并且能完全重合,则满足可以互相连接在一起的其中一个必要条件,如果判定可以连接,则两条边随即合并为一条边。通过这种方式,可以简单和高效地处理组件连接时的边逻辑;
b)用于其他的游戏逻辑使用时,可以定义边。本实施例中,边在游戏世界中是可以表示位置和方向信息的存在,凡是所有在组件上需要这些信息的逻辑需求,都可以定义边,当然,还有其依赖的两个顶点的定义。
在三角面的设计上,也是十分灵活,本实施例中的面的定义主要用于组件的互斥。如果组件需要和其他组件互斥(例如两个组件不可以相互穿插相交),则需要定义三角面,如果互斥区域的形状比较复杂,则可以通过多个三角面来组合形成该复杂的形状。在互斥计算过程中,只用到空间三角形关系判定的算法,简单高效。
本发明实施例还提供了几个具体组件的定义实例:
1.2×2方形地板。
图4是根据本发明实施例的2×2方形地板的示意图,如图4所示,顶点列表(vertices)=[(0,0,0),(1,0,0),(2,0,0),(2,0,1),(2,0,2),(1,0,2),(0,0,2),(0,0,1),(1,0,1)],每个顶点都是用三维坐标(x,y,z)表示,它们在列表中的索引是1~9。
原点(pivot)=1,表示第1个顶点是原点。
朝向(dir)=2,表示从原点指向第2个顶点的向量是该建筑组件的朝向。
标准边列表(std_edges)=[(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,1)]。
互斥三角面(planes)=[(1,3,5),(1,5,7)]。
投影(projection)=[(1,2,9,8),(2,3,4,9),(4,5,6,9),(6,7,8,9)]。
2.边长为1的正三角形地板。
图5是根据本发明实施例的边长为1的正三角形地板的示意图,如图5所示,顶点列表(vertices)=[(0,0,0),(1,0,0),(0.5,0,0.5*sqrt(3))],每个顶点都是用三维坐标(x,y,z)表示,各顶点在列表中的索引是1~3。其中,0.5*sqrt(3)表示0.5乘以根号3。
原点(pivot)=1,表示第1个顶点是原点。
朝向(dir)=2,表示从原点指向第2个顶点的向量是该建筑组件的朝向。
标准边列表(std_edges)=[(1,2),(2,3),(3,1)]。
互斥三角面(planes)=[(1,2,3)]。
投影(projection)=[(1,2,3)]。
3.1×1的正方形墙。
图6是根据本发明实施例的1×1正方形墙的示意图,如图6所示,顶点列表(vertices)=[(0,0,0),(1,0,0),(1,1,0),(0,1,0)],每个顶点都是用三维坐标(x,y,z)表示,各顶点在列表中的索引是1~4。
原点(pivot)=1,表示第1个顶点是原点。
朝向(dir)=2,表示从原点指向第2个顶点的向量是该建筑组件的朝向。
标准边列表(std_edges)=[(1,2),(4,3)]。
互斥三角面(planes)=[(1,2,3),(1,3,4)]。
投影(projection)=[],无投影定义,因为这个组件的水平投影是一条线段,不是正方形或三角形,无需投影。
4.投影为1×1正方形的45度斜屋顶(或斜梯子也可适用)。
图7是根据本发明实施例的1×1正方形的45度斜屋顶的示意图,如图7所示,顶点列表(vertices)=[(0,0,0),(1,0,0),(1,1,1),(0,1,1)],每个顶点都是用三维坐标(x,y,z)表示,各顶点在列表中的索引是1~4。
原点(pivot)=1,表示第1个顶点是原点。
朝向(dir)=2,表示从原点指向第2个顶点的向量是该建筑组件的朝向。
标准边列表(std_edges)=[(1,2),(3,4)]。
互斥三角面(planes)=[(1,2,3),(1,3,4)]。
投影(projection)=[(1,2,3,4)]。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供了一种用于三维组件拼接的几何结构数据处理装置,该装置可以用于执行本发明实施例的用于三维组件拼接的几何结构数据处理方法。
图8是根据本发明实施例的用于三维组件拼接的几何结构数据处理装置的示意图,如图8所示,该装置包括:
处理单元10,用于将三维组件进行剔除厚度信息的处理,生成至少一空间多边形;
获取单元20,用于获取至少两个待拼接的三维组件的几何结构数据,其中,几何结构数据为三维组件处理后对应的至少一空间多边形的几何结构数据;
拼接单元30,用于通过预定义的组合规则,对选定的至少两个待拼接的三维组件的几何结构数据进行处理,得到处理结果,其中,组合规则为用于几何结构数据计算的模型。
该实施例采用处理单元10,用于将三维组件进行剔除厚度信息的处理,生成至少一空间多边形;获取单元20,用于获取至少两个待拼接的三维组件的几何结构数据,其中,几何结构数据为三维组件处理后对应的至少一空间多边形的几何结构数据;拼接单元30,用于通过预定义的组合规则,对选定的至少两个待拼接的三维组件的几何结构数据进行处理,得到处理结果,其中,组合规则为用于几何结构数据计算的模型,从而解决了基于物理引擎使用结构组件完成结构设计的过程中效率低的问题,提高了三维组件的拼接效率。
所述用于三维组件拼接的结构数据处理装置包括处理器和存储器,上述获取单元、处理单元、显示单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高结构设计的过程中效率。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述用于三维组件拼接的几何结构数据处理方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述用于三维组件拼接的几何结构数据处理方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取至少两个待拼接的三维结构组件的结构数据,其中,结构数据包括:将三维组件进行剔除厚度信息的处理,生成至少一空间多边形;获取至少两个待拼接的三维组件的几何结构数据,其中,几何结构数据为三维组件处理后对应的至少一空间多边形的几何结构数据;通过预定义的组合规则,对选定的至少两个待拼接的三维组件的几何结构数据进行处理,得到处理结果,其中,组合规则为用于几何结构数据计算的模型。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取至少两个待拼接的三维结构组件的结构数据,其中,结构数据包括:将三维组件进行剔除厚度信息的处理,生成至少一空间多边形;获取至少两个待拼接的三维组件的几何结构数据,其中,几何结构数据为三维组件处理后对应的至少一空间多边形的几何结构数据;通过预定义的组合规则,对选定的至少两个待拼接的三维组件的几何结构数据进行处理,得到处理结果,其中,组合规则为用于几何结构数据计算的模型。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种用于三维组件拼接的几何结构数据处理方法,其特征在于,包括:
将三维组件进行剔除厚度信息的处理,生成至少一空间多边形;
获取至少两个待拼接的所述三维组件的几何结构数据,其中,所述几何结构数据为所述三维组件处理后对应的所述至少一空间多边形的几何结构数据;
通过预定义的组合规则,对选定的至少两个待拼接的所述三维组件的几何结构数据进行处理,得到处理结果,其中,所述组合规则为用于所述几何结构数据计算的模型。
2.根据权利要求1所述的方法,其特征在于,所述三维组件对应的所述至少一空间多边形的几何结构数据包括如下至少之一:所述三维组件的顶点列表、所述三维组件自身的第一边列表、所述三维组件与其他组件具有关联关系的边的第二边列表、互斥三角面列表和所述三维组件在平面上的投影列表。
3.根据权利要求2所述的方法,其特征在于,在获取至少两个待拼接的所述三维组件的几何结构数据之前,所述方法还包括:
定义每个三维组件的空间多边形的几何结构数据;
其中,定义所述顶点列表包括至少一个顶点数据,所述顶点数据用于定义所述三维组件中的如下任意一个组成:所述三维组件的原点、所述原点指向的矢量方向、所述三维组件的边、所述三维组件的互斥三角形面、所述三维组件的单位边长的投影、所述三维组件对应的控件位置。
4.根据权利要求2所述的方法,其特征在于,在获取至少两个待拼接的所述三维组件的几何结构数据之前,所述方法还包括:
定义每个三维组件的空间多边形的几何结构数据;
其中,定义所述第一边列表包括至少一个边数据,所述边数据用于定义所述三维组件中的如下任意一个与边关联的组成:依赖所述三维组件的边的边数据,以及三维组件之间连接时的边逻辑。
5.根据权利要求2所述的方法,其特征在于,在获取至少两个待拼接的所述三维组件的几何结构数据之前,所述方法还包括:
定义每个三维组件的空间多边形的几何结构数据;
其中,定义所述投影列表包括所述三维组件在水平面的投影数据,所述投影数据用于确定所述三维组件在所述水平面的投影包括如下之一:正方形、正三角形、所述正方形和所述正三角形的组合。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,通过预定义的组合规则,对选定的至少两个待拼接的所述三维组件的几何结构数据进行处理包括:
选择待组合的三维组件;
调取所述待组合的三维组件的几何结构数据对应的计算模型;
使用所述计算模型对选定的待组合的三维组件的几何结构数据进行计算处理。
7.根据权利要求1所述的方法,其特征在于,在通过预定义的组合规则,对选定的至少两个待拼接的所述三维组件的几何结构数据进行处理,得到处理结果之后,所述方法还包括:
根据所述处理结果显示拼接后的结构图形。
8.一种用于三维组件拼接的几何结构数据处理装置,其特征在于,包括:
处理单元,用于将三维组件进行剔除厚度信息的处理,生成至少一空间多边形;
获取单元,用于获取至少两个待拼接的所述三维组件的几何结构数据,其中,所述几何结构数据为所述三维组件处理后对应的所述至少一空间多边形的几何结构数据;
拼接单元,用于通过预定义的组合规则,对选定的至少两个待拼接的所述三维组件的几何结构数据进行处理,得到处理结果,其中,所述组合规则为用于所述几何结构数据计算的模型。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的用于三维组件拼接的几何结构数据处理方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的用于三维组件拼接的几何结构数据处理方法。
CN201810687484.XA 2018-06-28 2018-06-28 用于三维组件拼接的几何结构数据处理方法和装置 Active CN108876920B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810687484.XA CN108876920B (zh) 2018-06-28 2018-06-28 用于三维组件拼接的几何结构数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810687484.XA CN108876920B (zh) 2018-06-28 2018-06-28 用于三维组件拼接的几何结构数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN108876920A true CN108876920A (zh) 2018-11-23
CN108876920B CN108876920B (zh) 2022-09-27

Family

ID=64296219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810687484.XA Active CN108876920B (zh) 2018-06-28 2018-06-28 用于三维组件拼接的几何结构数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN108876920B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111589155A (zh) * 2020-06-09 2020-08-28 腾讯科技(深圳)有限公司 一种建筑物构件编辑方法、装置、存储介质和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107609268A (zh) * 2017-09-12 2018-01-19 上海同岩土木工程科技股份有限公司 一种基于tin的三维地质模型与bim模型耦合的方法
CN107735815A (zh) * 2015-06-26 2018-02-23 电子艺界有限公司 简化具有冗余背部的小网格组件
CN107978018A (zh) * 2017-12-22 2018-05-01 广州视源电子科技股份有限公司 立体图形模型的构建方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107735815A (zh) * 2015-06-26 2018-02-23 电子艺界有限公司 简化具有冗余背部的小网格组件
CN107609268A (zh) * 2017-09-12 2018-01-19 上海同岩土木工程科技股份有限公司 一种基于tin的三维地质模型与bim模型耦合的方法
CN107978018A (zh) * 2017-12-22 2018-05-01 广州视源电子科技股份有限公司 立体图形模型的构建方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111589155A (zh) * 2020-06-09 2020-08-28 腾讯科技(深圳)有限公司 一种建筑物构件编辑方法、装置、存储介质和电子设备
CN111589155B (zh) * 2020-06-09 2021-08-31 腾讯科技(深圳)有限公司 一种建筑物构件编辑方法、装置、存储介质和电子设备

Also Published As

Publication number Publication date
CN108876920B (zh) 2022-09-27

Similar Documents

Publication Publication Date Title
US10964090B2 (en) Hybrid hierarchy of bounding and grid structures for ray tracing
US7659901B2 (en) Application program interface for programmable graphics pipeline
CN110383340A (zh) 使用稀疏体积数据进行路径规划
JP7184503B2 (ja) 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット
EP2335224B1 (en) Ray tracing using ray-specific clipping
CN104809684B (zh) 图形处理方法、装置及系统
US20100073370A1 (en) Systems and methods for a ray tracing shader api
CN113674389B (zh) 场景渲染方法、装置、电子设备及存储介质
CN111650931B (zh) 多个移动设备的路径确定的方法、装置与存储介质
US11810240B2 (en) Methods and systems for constructing ray tracing acceleration structures
CN110262791B (zh) 一种可视化编程方法、装置及运行器、可读存储介质
US20140333622A1 (en) Building Acceleration Structures with Synthetic Acceleration Shapes for Use in Ray Tracing
CN109727376A (zh) 生成配置文件的方法、装置及售货设备
Wang et al. Efficient and Reliable Self‐Collision Culling Using Unprojected Normal Cones
JP2011138445A (ja) 透明物体表示回路
CN108876920A (zh) 用于三维组件拼接的几何结构数据处理方法和装置
CN107004304A (zh) 在计算机模拟中渲染损坏增强图像
Boechat et al. Representing and scheduling procedural generation using operator graphs
CN108744517B (zh) 音频处理方法、装置、终端和存储介质
CN107004299A (zh) 渲染三维多边形网格的似然图像
CN115294283B (zh) 一种数字孪生工厂构建方法、装置、设备和存储介质
CN110211197A (zh) 一种基于多边形空间划分的光子映射优化方法、装置及系统
Schröder et al. Field strength prediction for environment aware MIMO channel models
CN109445868A (zh) 一种游戏场景中路段模型的生成方法和装置
CN104699850B (zh) 三维地理信息的处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant