CN103348385A - 三维网格模型以及创建三维网格模型的方法 - Google Patents
三维网格模型以及创建三维网格模型的方法 Download PDFInfo
- Publication number
- CN103348385A CN103348385A CN2010800709215A CN201080070921A CN103348385A CN 103348385 A CN103348385 A CN 103348385A CN 2010800709215 A CN2010800709215 A CN 2010800709215A CN 201080070921 A CN201080070921 A CN 201080070921A CN 103348385 A CN103348385 A CN 103348385A
- Authority
- CN
- China
- Prior art keywords
- data
- instance
- record
- model
- grid model
- 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
Images
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/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- 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/005—Tree description, e.g. octree, quadtree
-
- 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
- G06T19/00—Manipulating 3D models or images for computer graphics
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
为了提高3D模型处理的压缩效率,需要更易于发现重复模式。本发明通过使用模式-实例记录表使3D模型的压缩得到简化和改进,该模式-实例记录表为3D对象内的重复模式的所有实例提供模式-实例关系。3D网格模型包含第一参考3D网格模型(pts)的数据;包含第一和第二实例数据的电子模式-实例记录表(pt1,pt2),其中第一实例数据指向(*pt1)第一参考3D网格模型,第二实例数据指向(*pt2)第一或进一步参考3D网格模型;以及至少一个辅助3D网格模型实例的第三实例数据的实例记录,其中第三实例数据包含所述第一和第二实例数据或对所述第一和第二实例数据的引用。
Description
技术领域
本发明涉及3D(三维)网格模型,创建三维网格模型的方法,以及显示3D对象的图像的基于计算机系统。
背景技术
这个部分旨在向读者介绍可能与下面所述和/或要求保护的本发明的各个方面有关的现有技术的各个方面。这种讨论被认为有助于向读者提供促使人们更好理解本发明的各个方面的背景信息。于是,应该明白,这些陈述要就此而论地阅读,而不是作为现有技术的入门。
重复模式在自然和人造物品中是无处不在的。发现重复模式是许多3D模型处理应用的重要工具。例如,利用重复模式的3D模型压缩算法使压缩比显著提高。尽管已有几部发现重复模式的著作,但没有预备知识地发现重复模式仍然困难的。另一方面,当利用像“3Ds MAX”和“Maya”那样的3D建模软件工具制作3D模型时,会频繁使用类似于“复制和粘贴”的实例化。因为场景或对象往往有许多相同或非常相似的部分,所以实例化节省了许多繁琐的工作。因此,最好是与3D模型数据一起存储实例化操作的必要信息,即,“模式-实例”关系,以便使重复模式发现更容易得多。这将显著提高用于压缩的3D模型处理算法的效率。但是,常见的3D建模软件工具在创建3D模型的时候只能记录非常有限的实例化信息。例如,当模型的实例在创建之后未改变时,只能保留实例化信息。在下文中,术语“3D模型”和“3D对象”作为等效物来使用。术语“3D网格模型”表示它的子类。
发明内容
本发明至少解决了上述问题,并且通过使用模式-实例记录表使3D模型的压缩得到简化和改进,该模式-实例记录表为3D对象内的重复模式的所有实例提供模式-实例关系。
按照本发明,在一个方面中,模式-实例记录表(PIRT)记录“模式-实例”信息,即,有关整个建模过程中的模型实例化操作的所有信息。在建模过程中保存记录“模式-实例”信息的伴随文件。当创建实例模型时,将新的“模式-实例”记录插入包括相应模式模型与实际实例模型之间的变换信息的伴随文件中。以后当对模式和实例模型加以操作时可以改变该记录。
在一个方面中,本发明涉及存储在电子存储设备中和包含至少一个第一参考3D网格模型的数据的3D网格模型、包含第一和第二实例数据的电子模式-实例记录表,其中第一实例数据包含指向第一参考3D网格模型的指针、第一位置数据、第一取向数据和第一缩放数据,以及第二实例数据包含指向第一或进一步参考3D网格模型的指针、第二位置数据、第二取向数据和第二缩放数据,所述电子模式-实例记录表进一步包含至少一个辅助3D网格模型实例的第三实例数据的实例记录,其中第三实例数据包含所述第一和第二实例数据,或包含所述第一和第二实例数据的引用。第一和第二实例数据由于已经删除了它们以前的记录,所以在模式-实例记录表中没有单独实例记录。
在另一个方面中,本发明涉及创建3D网格模型的方法,其包含如下步骤:将一个或多个第一参考3D网格模型的形状数据存储在电子存储设备上;将定义一个或多个第一参考3D网格模型的至少两个实例的第一实例数据记录和第二实例数据记录存储在电子存储设备上的电子模式-实例记录表(PIRT)中,其中第一和第二实例数据记录的每一个包含第一参考3D网格模型之一的引用、位置数据、取向数据和缩放数据,以及其中第一实例和第二实例可在显示器上看见;以及将至少一个第三3D网格模型的第三实例数据记录存储在所述电子模式-实例记录表中,其中第三3D网格模型包含所述第一和第二实例数据记录,或它们的副本的数据。该方法进一步包含如下步骤:在所述电子模式-实例记录表中删除第一和第二实例数据记录,其中显示保持不变。至少两个实例的第一实例可以是初始实现,具有默认位置数据、默认取向数据和默认缩放数据。
在一个进一步方面中,本发明涉及含有使计算机执行包含如下步骤的方法的可执行指令的计算机可读介质:将一个或多个第一参考3D网格模型的形状数据存储在电子存储设备上;将定义一个或多个第一参考3D网格模型的至少两个实例的第一实例数据记录和第二实例数据记录存储在电子存储设备上的电子模式-实例记录表中,其中第一和第二实例数据记录的每一个包含第一参考3D网格模型之一的引用、位置数据、取向数据和缩放数据,以及其中第一实例和第二实例可在显示器上看见;将至少一个第三3D网格模型的第三实例数据记录存储在所述电子模式-实例记录表中,其中第三3D网格模型包含所述第一和第二实例数据记录,或它们的副本的数据;以及在所述电子模式-实例记录表中删除第一和第二实例数据记录。至少两个实例的第一实例可以是初始实例,可以具有默认位置数据、默认取向数据和默认缩放数据。在存储和删除步骤期间,显示保持不变。
在又一个方面中,本发明涉及显示3D对象的图像的基于计算机系统,该系统包含:电子存储设备,其中存储了作为一个或多个第一参考3D对象的形状数据的一组数据点,以及存储了包含第一数据记录的电子模式-实例记录表,该第一数据记录定义包含一个或多个第一参考3D对象的至少两个实例的对象,其中该第一数据记录包含至少一个第一参考3D对象的引用,其中对于一个或多个第一参考3D对象的至少两个实例的每一个,该第一数据记录包含位置数据、取向数据和缩放数据,以及其中第一实例和第二实例可在显示器上看见;以及处理单元,用于处理包括所述形状数据的所述第一数据记录,以获取显示器上3D对象的所述图像。该系统可以包括执行如上所述的步骤的一个或多个处理单元。
本发明的有利实施例公开在从属权利要求、如下描述和附图中。
附图说明
下面参照附图描述本发明的示范性实施例,在附图中:
图1a)四个示范性3D对象(圆环)和图1b)它们的数据结构;
图2a)复杂模型的创建和图2b)数据结构的现有技术解决方案;
图3a)按照本发明的复杂3D网格模型的数据结构;图3b)参考3D网格模型的两个基本实例的数据集;图3c)复杂3D网格模型的示范性辅助实例的数据集;图3d)按照一个实施例的复杂3D网格模型的进一步辅助实例的数据集;图3e)按照另一个实施例的复杂3D网格模型的进一步辅助实例的数据集;以及图3f)压缩辅助模型的数据结构;
图4示出了按照本发明使用元数据的复杂3D网格模型的数据结构;以及
图5示出了按照本发明的一个实施例创建3D网格模型的方法的流程图。
具体实施方式
本文使用如下技术:一种模式是可以用于生成可见对象的一组顶点数据、连接数据和属性数据。有时也称形状的模式是看不见的。
为了获取可见对象,必须创建模式的实例。实例是可见对象。用户可以使用GUI(图形用户界面)创建实例。程序可以自动创建实例。可以为每种模式创建任意多个实例。涉及单种模式的实例在本文中称为基本实例,而涉及两种或更多种模式的实例称为辅助实例。按照本发明的一个方面,每个实例在称为模式-实例记录表(PIRT)的表格中存在相应实例记录。一种模式的第一实例是基本的,在本文中称为“初始实例”或“特殊实例”。它是可见的(即,从不可见模式中创建可见实例),用户可以使用GUI交互式地选择它,以便移动、旋转或缩放它。进一步,所选实例可以用于创建它的进一步实例,例如,在复制操作中;一般说来,可以独立地移动、旋转和缩放副本。按照本发明,也可以将初始实例合并成所谓的辅助实例,它是包含相同或不同模式的至少两个实例的实例。一旦将初始实例复制成进一步实例或合并成辅助实例,就再也不需要它了,可以删除它在PIRT中的记录,或将其合并成辅助实例的新记录。根据辅助实例的定义,创建辅助实例的实例记录,并且在合并成辅助实例期间从模式-实例记录表中自动删除任何所涉及基本实例的实例记录。
下表1示出了PIRT中模式记录和实例记录的一个实施例的示范性语法。
类别实例 | 实例记录 |
{ | |
patternRecord *p; | PatternPointeArray |
POSITION *pos; | PositionArray |
ORIENTATION *ori; | OrientationAxisArray |
SCALE *sca; | ScalingFactorArray |
int PatternNum; | PatternNum |
} | |
Class pattern | Pattern record |
{ | |
Shape *s; | ShapePointer |
INSTANCE *ins; | lnStancePointerArray |
} |
表1:模式记录和实例记录的语法
示范性语法的语义如下:
PatternPointerArray是指向用在当前实例中的所有相应模式的指针p[i]的阵列。一个实例可以具有不止一种模式。每个模式对应于实例的一个部分。
PositionArray是位置数据的阵列。每个位置数据条目pos[i]具有指示与p[i]相对应的实例模型的部分的位置的一些位。
OrientationAxisArray和ScalingFactorArray具有相应含义,但与取向轴和缩放因子有关。
PatternNum是实例的相应模式的数量。例如,如果一个实例包含某六种模式,则该实例的PatternNum是6。因此,易于确定一个实例是基本实例(如果PatternNum=1)还是辅助实例(如果PatternNum=1>1)。这简化了压缩期间的重复模式检测过程。
ShapePointer是指向相应模式网格的几何、拓扑和属性数据的指针s[i]。
InstancePointerArray是指向包含模式的所有实例记录的指针ins[i]的阵列。例如,一种模式用在两个基本实例和五个辅助实例中,则InstancePointerArray含有七个元素,每一个指向一个实例。这使得更易于跟踪模式的使用。例如,可以容易地检测和在压缩期间可以删除未用模式。
PositionArray、OrientationAxisArray和ScalingFactorArray构成相应实例模型的变换。
PatternNum=1和PositionArray、OrientationAxisArray和ScalingFactorArray具有默认值(例如,pos[0]=<0,0,0>,ori[0]=<0,0,0,0,0,0>和sca[0]=<0,0,0>)的那些实例是初始实例(或特殊实例)。也就是说,初始实例是特定类型的基本实例。初始实例的用途仅仅是为用户提供可见对象,以便可以使用GUI进行任何编辑操作。
图1a)示出了作为示范性3D对象的四个圆环PT1,...,PT4,图1b)示出了在模式-实例记录表(PIRT)中描述它们的数据结构。包括几何、拓扑和属性数据的形状数据存储在模式数据集pts1中。作为初始实例的第一实例pt1的记录包含指向模式*p_t1的指针、和默认位置数据pos_t1、默认取向数据ori_t1和默认缩放数据sca_t1。该指针是模式的引用*pt1。其余实例pt2,...,pt4的记录包含该模式的相同指针、和各自位置、取向和比例数据,因为每个实例具有它自己的位置、取向和比例。由于每个实例只涉及一种模式,所以将它们称为基本实例。进一步,模式pts1包含指向它的所有实例pt1,...,pt4的实例指针阵列(未示出)。
图2a)示出了包含在这种情况下相同的单种模式的两个实例PT2、PT3,即圆形的辅助实例PS1。将单种模式实例合并成可见地示出的辅助实例PS1。也就是说,就按照本发明的相应数据结构而言,圆环不是基本实例,而是辅助实例。因此,将它们当作单个逻辑单位,进行的任何操作都对该单位进行。此刻,简单的直截了当的解决方案可以产生相同的可见图像,但对于合并的新模型,需要不同的数据结构以及更多的数据和独立的模式模型。在图2b)中示出了生成新模式模型pa_pss1的一个例子。难以从数据结构中确定合并的模型pa_pss1包含两个相同圆环,这是有效压缩的重要信息。也就是说,图2b)未使用本发明的所有方面,显示了简单和显而易见的解决方案带来的一些问题。尤其,按照图2b)的数据集较难以分析、压缩效率较低、以及需要比按照本发明的3D网格模式多的数据。
图3示出了按照本发明的3D对象的实施例。图3a)示出了包括辅助实例ps1、按照本发明的复杂3D网格模型的数据结构,该辅助实例ps1包含模式模型pts的两个实例pt1、pt2的数据。另外,可能存在模式模型pts的基本实例pt3。也就是说,本发明允许使用任何模式模型pts的一个或多个基本实例pt3,以及另外和同时,相同模式模型的一个或多个辅助实例pt1、pt2。在一个实施例中,如下面参照图3e)所述,第一辅助实例ps1可以用作进一步辅助实例ps2、ps3的参考,进一步辅助实例ps2、ps3可以包含指向第一辅助实例ps1的指针*p_s2、*p_s3。在另一个实施例中,如下面参照图3d)所述,等于第一个的进一步辅助实例ps2、ps3使用与ps1相同的数据结构。在这两个实施例中,进一步辅助实例具有(在图3d的情况下)绝对的或(在图3e的情况下)相对于第一辅助实例的其自己单独变换数据。
图3b)示出了参考3D网格模型的两个基本实例pt1、pt2的示范性数据集的相关部分。例如,基本实例pt1至少包含指针*p_t1、位置数据pos_t1、取向数据ori_t1和缩放数据sca_t1。图3c)示出了示范性辅助实例ps1的数据集。它至少包含两个指针*p_t1、*p_t2(即,指针阵列,或在另一个实施例中,单个指针和指针涉及至少两个模型实例的指示),和对于两个模式指针的每一个,单独位置数据pos_t1、pos_t2(即,位置数据阵列)、取向数据ori_t1、ori_t2(即,取向轴阵列)、和缩放数据sca_t1、sca_t2(即,缩放因子阵列)。
图3d)示出了按照一个实施例的复杂3D网格模型的进一步辅助实例ps2的数据集。在这个实施例中,在第一辅助实例与进一步辅助实例之间没有差异,因为两者使用相同数据结构。图3e)示出了按照另一个实施例的复杂3D网格模型的进一步辅助实例的数据集。在这个实施例中,任何进一步辅助实例都包含创建辅助实例之间的链路*ps3的指向第一辅助实例的指针*p_s3。任何进一步辅助实例也都包含位置数据pos_s3、取向数据ori_s3、和缩放数据sca_s3,所有这些都相对于相关第一辅助实例。要注意的是,在显示在图3中的所有上述实施例,模式模型pts包含指向其基本或辅助实例的每一个的指针(未示出)。
在图3a)中示出了作为辅助实例的结构的3D对象可以压缩成单个圆环的一组模型形状数据(即,顶点数据、连接数据和属性数据)、和PIRT中的单个辅助实例记录。在图3f)中示出了一种示范性更新数据结构。该数据结构用一个或多个伴随文件acf1、acf2具体化,其包含辅助实例polySurfacel的形状或模式定义数据acf1和实例数据acf2、它的两个包括的基本实例pTorus1和pTorus2。注意,只示范性地强化了基本实例的过渡数据,并且可以简化基本实例的过渡数据;也就是说,虽然,例如,示范性地通过相加基本实例和辅助实例的位置数据(“pos_t1+pos_s1”,“sca_t1*sca_s1”)计算辅助实例内基本实例pTorus1的位置数据,但可能需要更复杂的过程。注意,acf1和acf2可以是相同文件或两个不同文件的一部分。如上所述,参数PatternNum指示所使用模式的数量。
图4示出了按照本发明的一个方面、使用元数据的复杂3D网格模型的数据结构。进一步,使用了两种不同形状,即,圆环pts和立方体pcu。每个基本实例具有相应元数据项mdt1,...,mdt3,mdc1,mdc2,每个辅助实例具有相应元数据项mdps1,...,mdps3。元数据项可以存储在像上述伴随文件那样的单个公用文件中。尤其,伴随文件可以创建成跟踪任何编辑操作的一种日志文件,并最终加以压制,或可以在编辑期间定期地或连续地压制它。最终伴随文件包含模式数据和包括PIRT的元数据。
显示在图4中的状况是创建复杂3D网格模型期间的中间状态,其中辅助模型mdps1的元数据项包含提供对以前定义的基本实例的分层引用href1、href2的指针*p_t1、*p_t2、*p_c1。也就是说,显示在图4中的状况是相对于指向两个模式模型pts、pcu的以前定义基本实例的指针*p_t1、*p_t2、*p_c1的中间状况。在对伴随文件进行的随后压制步骤中,将更新辅助实例mdps1的元数据项,以包括指向所有涉及模式模型pts、pcu的指针、和所涉及基本实例的位置数据pos_t1、取向数据ori_t1和缩放数据sca_t1。进一步,删除所涉及基本实例mdc1、mtd1、mtd2的元数据项。另外,任何辅助实例都可以包含其各自的位置数据pos_s1、取向数据ori_s1和缩放数据sca_s1。但是,可以将这些与所涉及基本实例的位置数据pos_t1、取向数据ori_t1和缩放数据sca_t1组合。可以将如上所述的进一步辅助实例mdps2、mdps3的元数据项加入伴随文件中。
要注意的是,辅助实例的指针也可以指向其他辅助实例。本发明的特别优点是可以定义多个分层层次。在图3f)中示出了一个例子。
图5示出了按照本发明一个实施例的方法的一种实现的方框图。这些方框也可以理解为包括,例如,硬件和软件处理单元的有形电子设备的功能方框。
操作分类方框100执行操作分类步骤。它将制作3D模型的整个处理期间的所有操作分类成四种类型当中的一种。
在第一种类型中,实例化方框210从可见模型中创建新实例。在新记录方框220中加入新实例作为到模式-实例记录表中的新记录,并且在PIRT更新方框600中更新模式-实例记录表。如上所述,新实例基于本文也称为模式的参考。
在第二种类型中,初始实例操作方框310对模式模型的任何初始实例进行预定操作。该操作可以包括平移、旋转和缩放操作。模式模型的初始实例是这个模式模型的第一实例。
在第三种类型中,实例模型操作方框410对实例模型进行预定操作。这些操作可以包括平移、旋转、缩放和布尔操作。
在第四种类型中,一般操作方框510进行任何其他所述方框未进行的可能有用的所有其他操作。
加入新记录方框220将新记录加入模式-实例记录表中。当创建实例模型时,将新实例记录加入“模式-实例”记录表中。如果已有与模式模型相对应的模式记录,则将指向新实例记录的指针加入相应指针阵列,例如,InstancePointerArray中。否则,将新模式记录加入“模式-实例”记录表中。在加入了新实例记录之后,如果有必要,可以更新(600)PIRT(例如,以前所作的记录可能变成过时的)。
在初始实例操作方框310对模式模型的任何初始实例进行了预定操作之后,用户可以在判定新模式模型方框320中判定是否也将相同操作应用于该模式的其他已存在实例模型。如果答案是肯定的(Y),则按照模式模型更新方框340中的操作改变相应模式的形状,并更新模式模型。从而,也更新该模式模型的所有现有实例,因为它们包含对模式模型的引用。但是,无需修改模式-实例表中的记录;只更新伴随文件中的各自形状模型。如果答案是否定的(N),则只按照变换初始实例方框330中的操作改变相应实例的变换(即,位置、旋转和/或比例),并将初始实例记录变换成普通基本实例记录。如上所述,如果普通基本或辅助实例记录可用,则无需初始实例记录。
在实例模型操作方框410中对普通实例模型进行预定操作之后,在实例模型记录更新方框420中更新PIRT中的相关记录。如果实例模型记录的更新需要PIRT中的进一步更新,则在PIRT更新方框600中进行这些更新。但是,实例模型记录更新方框420也可以是PIRT更新方框600的一部分。除了布尔操作之后,还按照相应操作改变相关实例记录的变换。按照对实例模型的布尔操作更新模式和实例记录。
例如,为了如图2所示,将两个模型PT2和PT3组合成一个新模型PS1,如下所示,为新模型PS1创建新“模型-实例”记录,并更新“模型-实例”记录表。假设圆环(torus1)的模式记录可用和存储在地址<ptr_to_pattern_torusl>的下面。则伴随文件的相关部分可以是如下:
/*Create the Initial instance of torus1(“visible torus1”):*/
pTOrUs1.PatternNum=1;
pTorUs1.p=new PatternPointer[1]; /*declare pattern pointer*/
pTorus1.p[0]=<ptr_to_pattern_torusl>; /*define pattern pointer*/
/*Define torus2as an instance of pTorus1,the Initial instance,with its own position,scale
and OrientatiOn:*/
pTorus2.PatternNum=1;
pTorus2.p=new PatternPointer[1]; /*declare pattern pointer*/
pTorus2.p[0]=<ptr_tO_pattern_torus1>; /*define pattern pointer,pTorus2.p[0]=
pTorus1.p[0]*/
pTorus2.pos[0]=<x2,y2,z2>; /*define the position of torus2*/
pTorys2.ori[0]=<orientation2>; /*define the orientation of torus2*/
pTorys2.sca[0]=<scaling_factor2>; /*define the scale of torus2*/
/*Define torus3as another instance of pTorus1,with its own position,scale and
Orientation:*/
pTorus3.PatternNum=1;
pTorus3.p=new PatternPointer[1], /*declare pattern pointer*/
pTorus3.p[0]=<ptr_to_pattern_torus1>; /*define pattern pointer*/
pTorus3.pos[0]=<x3,y3,z3>;
pTorus3.ori[0]=<orientation3>;
pTorus3.sca[0]=<scaling_factor3>;
/*now define the new torus as a combination of torus2 and torus3:*/
pNeWTorus.PatternNum=2;
pNewTorus.p=new PatternPointer[2];
pNewTorus.p[0]=<ptr_to_pattern_torus1>;
pNewTorus.p[1]=<ptr_to_pattern_torus1>;/*p[0]and p[1]are equal,but could also be
different*/
pNewTorus.Trans=new Transformation[2];
pNewTorus.Trans[0]=pTorus2.Trans[0]; /*after PIRT-update,Trans[0]may inte-*/
pNewTorus.Trans[1]=pTorus3.Trans[O], /*grate the transtormatlons of plorus2/3*/
***************************************************************************************
将指向pNewTorus的实例记录的指针加入所采用模式(pattern_torusl,未示出)的模式记录的InstancePointerArray中。删除与pTorus2和pTorus3相对应的实例记录,因为再也不存在torus2和torus3。
从模式记录pattern_torusl的InstancePointerArray中删除相应实例记录指针。删除与pTorus2和pTorus3相对应的“模式-实例”记录,并使其他记录保持不变。这是在删除记录方框520中完成的。
对于其他操作,如果涉及任何模式模型,则删除相应模式记录和它的所有实例记录。如果一些实例模型得到影响,则只删除相应实例记录。
本发明的一个优点是仍然可以,例如,按如下定义模式模型,即,torus1模型的基本实施例。
pTorus4.PattenNum=1;
DTorys4.p=new PatternPointer[1]; /*declare pattern pointer*/
pTorus4.p[0]=<ptr_to_Pattern_torus1>; /*define pattern pointer*/
pTorys4.pos[0]=<x4,y4,z4>;
pTorus4.ori[0]=<orientation4>;
pTorus4.sca[0]=<scaling_factor4>;
可以再次考虑初始实例,因为它是唯一基本实例,或普通基本实例,因为已存在辅助实例。
鉴于上述情况,提及如下示范性实施例。
在上述3D网格模型的一个实施例中,将所述第一、第二和第三实例数据作为元数据项与至少一个第一参考模型相联系。
在上述3D网格模型的一个实施例中,基本实例包含单个参考3D网格模型,和辅助实例包含至少两个参考3D网格模型。
在上述3D网格模型的一个实施例中,至少一个第一参考3D网格模型的数据包含指向其基本或辅助实例每一个的指针。
在一个实施例中,上述3D网格模型进一步包含定义第二辅助3D网格模型实例的第四实例数据,其中第四实例数据包含对至少第一参考3D网格模型的引用、第四位置数据、第四取向数据和第四缩放数据。
在一个实施例中,上述3D网格模型进一步包含定义第一参考3D网格模型的第三实例的第五实例数据,其中第五实例数据引用第一参考3D网格模型和包含第五位置数据、第五取向数据和第五缩放数据。
在创建3D网格模型的上述方法的一个实施例中,第三3D(三维)网格模型包含对所述第一和第二实例数据的引用,以及将所述模式-实例记录表作为第一参考模型的元数据与存储在所述电子存储设备上的一个或多个第一参考3D网格模型的形状数据相联系。
在一个实施例中,创建3D网格模型的上述方法进一步包含在存储所述第三实例数据之前,接收修改第一实例数据记录和第二实例数据记录的至少一个的位置、取向和/或比例的用户输入,从而按照至少一个实例的所述修改位置、取向和/或比例更新显示的步骤。
在创建3D网格模型的上述方法的一个实施例中,在存储第三实例数据记录的步骤之后第一和第二实例在显示器上仍然可见和未改变。
在一个方面中,本发明可以具体化成上面存储着使计算机能够执行创建3D网格模型的上述方法的方法步骤的数据的计算机可读存储介质。
在一个实施例中,显示3D对象的图像的上述系统进一步包含按照第一数据记录的对象的位置数据、取向数据和缩放数据。
应该明白,本发明仅仅通过举例的方式来描述,可以不偏离本发明的范围地对细节加以修改。虽然显示、描述和指出了如应用于本发明的优选实施例的本发明的新基本特征,但应该清楚,本领域的普通技术人员可以不偏离本发明的精神地在所述的3D网格模型和方法中作各种省略、替换和改变。我们明确希望,以基本相同的方式执行基本相同的功能获得相同的结果的那些元件的所有组合都在本发明的范围之内。从一个所述实施例到另一个实施例替换一些元件也是完全可以预期的和设想的。
公开在描述以及(在适当情况下)权利要求书和附图中的每个特征可以单独地或以任何适当组合形式提供。这些特征在适当情况下可以用硬件、软件或两者的组合形式实现。出现在权利要求书中的标号只是为了例示,而没有限制权利要求书的范围的作用。
Claims (15)
1.一种存储在电子存储设备中的3D网格模型,其包含:
至少一个第一参考3D网格模型(pts)的数据;以及
包含第一和第二实例数据(pt1,pt2)的电子模式-实例记录表,
其中第一实例数据包含对第一参考3D网格模型(pts)的引用(*p_t1)、第一位置数据(pos_t1+pos_s1)、第一取向数据(ori_t2+ori_s1)和第一缩放数据(sca_t2*sca_s1),以及第二实例数据包含对第一或进一步参考3D网格模型(pts)的引用(*p_t2)、第二位置数据、第二取向数据(ori_t2+ori_s1)和第二缩放数据(sca_t2*sca_s1),以及
所述电子模式-实例记录表进一步包含至少一个辅助3D网格模型实例的第三实例数据(ps1)的实例记录,其中第三实例数据(ps1)包含所述第一和第二实例数据(pt1,pt2),或该第三实例数据包含对所述第一和第二实例数据的引用,以及第一和第二实例数据在模式-实例记录表中没有实例记录。
2.按照权利要求1所述的3D网格模型,其中将所述第一、第二和第三实例数据作为元数据项(mdt1,mdt2,mdps1)与至少一个第一参考模型相联系。
3.按照权利要求1或2所述的3D网格模型,其中基本实例包含单个参考3D网格模型,和辅助实例包含至少两个参考3D网格模型。
4.按照权利要求1、2或3所述的3D网格模型,其中至少一个第一参考3D网格模型的数据包含指向其基本或辅助实例每一个的指针。
5.按照权利要求1-4的任何一项所述的3D网格模型,进一步包含定义第二辅助3D网格模型实例的第四实例数据(ps2),其中第四实例数据包含对至少第一参考3D网格模型(pts)的引用(*p_t1)、第四位置数据(pos_s2)、第四取向数据(ori4_s2)和第四缩放数据(sca_s2)。
6.按照权利要求1-5的任何一项所述的3D网格模型,进一步包含定义第一参考3D网格模型(pts)的第三实例(pt3)的第五实例数据,其中第五实例数据引用(*pt3)第一参考3D网格模型(pts)和包含第五位置数据、第五取向数据和第五缩放数据。
7.一种创建3D网格模型的方法,其包含如下步骤:
-将一个或多个第一参考3D网格模型的形状数据(pts)存储在电子存储设备上;
-将定义一个或多个第一参考3D网格模型的至少两个实例的第一实例数据记录(pt1)和第二实例数据记录(pt2)存储(220)在电子存储设备上的电子模式-实例记录表中,其中第一和第二实例数据记录的每一个包含对第一参考3D网格模型(pts)之一的引用(*p_t1,*p_t2)、位置数据(pos_t1,pos_t2)、取向数据(ori_t1,ori_t2)和缩放数据(sca_t1,sca_t2),以及其中第一实例和第二实例可在显示器上看见;
-将至少一个第三3D网格模型的第三实例数据记录(ps1)存储(340)在所述电子模式-实例记录表中,其中第三3D网格模型包含所述第一和第二实例数据记录、或它们的副本的数据;以及
-在所述电子模式-实例记录表中删除(520)第一和第二实例数据记录。
8.按照权利要求7所述的方法,其中第三3D网格模型包含对所述第一和第二实例数据的引用(*pt1,*pt2),以及其中将所述模式-实例记录表作为第一参考模型的元数据(mdt1,mdt2,mdps1)与存储在所述电子存储设备上的一个或多个第一参考3D网格模型的形状数据(pts)相联系。
9.按照权利要求7或8所述的方法,进一步包含在存储所述第三实例数据之前,接收修改第一实例数据记录和第二实例数据记录的至少一个的位置、取向和/或比例的用户输入,从而按照至少一个实例的所述修改位置、取向和/或比例更新显示的步骤。
10.按照权利要求7-9之一所述的方法,其中在存储第三实例数据记录的所述步骤之后第一和第二实例在显示器上仍然可见和未改变。
11.一种上面存储着使计算机能够执行按照权利要求7-9的任何一项所述的方法步骤的数据的计算机可读存储介质。
12.一种显示3D对象的图像的基于计算机系统,其包含:
-电子存储设备(esd),
其中存储了作为一个或多个第一参考3D对象(pts)的形状数据的一组数据点,以及
存储了包含第一数据记录(ps1)的电子模式-实例记录表,
该第一数据记录(ps1)定义包含一个或多个第一参考3D对象的至少两个实例(pt1,pt2)的对象,其中该第一数据记录包含至少一个第一参考3D对象(pts)的引用(*p_t1,*p_t2),其中对于一个或多个第一参考3D对象的至少两个实例(pt1,pt2)的每一个,该第一数据记录(ps1)包含位置数据(pos_t1,pos_t2)、取向数据(ori_t1,ori_t2)和缩放数据(sca_t1,sca_t2),以及其中第一实例和第二实例可在显示器上看见;以及
-处理单元,用于处理包括所述形状数据的所述第一数据记录,以获取显示器上3D对象的所述图像。
13.按照权利要求12所述的系统,进一步包含:
操作分类方块(100);
实例化方块(210);
加入新记录方块(220);
初始实例操作方块(310);
判定新模式模型方块(320);
变换初始实例方块(330);
模式模型更新方块(340);
实例模型操作方块(410);
实例模型记录更新方块(420);
一般操作方块(510);
删除记录方块(520);以及
模式-实例记录表更新方块(600)。
14.按照权利要求12或13所述的系统,进一步包含显示器。
15.按照权利要求12-14之一所述的系统,进一步包含按照第一数据记录的对象的位置数据(pos_s1)、取向数据(ori_s1)和缩放数据(sca_s1)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2010/002140 WO2012083502A1 (en) | 2010-12-23 | 2010-12-23 | 3d mesh model and method for creating the 3d mesh model |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103348385A true CN103348385A (zh) | 2013-10-09 |
Family
ID=46313003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010800709215A Pending CN103348385A (zh) | 2010-12-23 | 2010-12-23 | 三维网格模型以及创建三维网格模型的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130265304A1 (zh) |
EP (1) | EP2656317A1 (zh) |
CN (1) | CN103348385A (zh) |
WO (1) | WO2012083502A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3039654A4 (en) | 2013-08-26 | 2017-04-05 | Thomson Licensing | Bit allocation scheme for repetitive structure discovery based 3d model compression |
CN108573519B (zh) | 2017-03-14 | 2022-02-11 | 阿里巴巴集团控股有限公司 | 三维图形文件生成和在客户端展示三维图形的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001022366A1 (fr) * | 1999-09-17 | 2001-03-29 | Thomson Licensing S.A. | Procede de construction d'un modele de scene 3d par analyse de sequence d'images |
CN1710607A (zh) * | 2005-07-08 | 2005-12-21 | 北京航空航天大学 | 一种面向虚拟现实三维图形引擎的三维场景组织方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970496A (en) * | 1996-09-12 | 1999-10-19 | Microsoft Corporation | Method and system for storing information in a computer system memory using hierarchical data node relationships |
FR2810770B1 (fr) * | 2000-06-23 | 2003-01-03 | France Telecom | Raffinement d'un maillage triangulaire representatif d'un objet en trois dimensions |
CN100566414C (zh) * | 2007-08-06 | 2009-12-02 | 北京航空航天大学 | 一种基于特征保留的三维模型递进传输方法 |
-
2010
- 2010-12-23 US US13/996,469 patent/US20130265304A1/en not_active Abandoned
- 2010-12-23 CN CN2010800709215A patent/CN103348385A/zh active Pending
- 2010-12-23 WO PCT/CN2010/002140 patent/WO2012083502A1/en active Application Filing
- 2010-12-23 EP EP10861121.1A patent/EP2656317A1/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001022366A1 (fr) * | 1999-09-17 | 2001-03-29 | Thomson Licensing S.A. | Procede de construction d'un modele de scene 3d par analyse de sequence d'images |
CN1710607A (zh) * | 2005-07-08 | 2005-12-21 | 北京航空航天大学 | 一种面向虚拟现实三维图形引擎的三维场景组织方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2656317A1 (en) | 2013-10-30 |
US20130265304A1 (en) | 2013-10-10 |
WO2012083502A1 (en) | 2012-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8983805B2 (en) | Modeled object updating | |
CN104346769B (zh) | 三维建模对象的压缩 | |
Camara et al. | TerraLib: Technology in support of GIS innovation | |
CN106887183B (zh) | 一种bim增强现实在建筑沙盘中的互动演示方法及系统 | |
CN111324965A (zh) | 一种基于云的通用参数化模型解析方法及设计系统 | |
CN111079387B (zh) | 一种问卷自动化生成方法、装置、计算机设备及存储介质 | |
CN110009721A (zh) | 生成由曲线表示的图像的三角网格 | |
CN109918526A (zh) | 一种面向规划管理的bim与3dgis融合方法 | |
CN102385744B (zh) | 3d建模对象的水印添加 | |
Davis | HIPO (hierarchy plus input-process-output) | |
US20010026278A1 (en) | Three-dimensional skeleton data compession apparatus | |
KR100503789B1 (ko) | 렌더링시스템, 렌더링방법 및 그 기록매체 | |
CN106709985A (zh) | 一种虚拟祭祀三维场景的生成方法及装置 | |
CN109544703B (zh) | 一种易于实现交互的数据中心Web3D模型加载方法 | |
CN103348385A (zh) | 三维网格模型以及创建三维网格模型的方法 | |
CN111815746A (zh) | 一种基于usd系统生成毛发数据方法 | |
Lai et al. | Rhino 3D to Abaqus: A T-spline based isogeometric analysis software framework | |
Zheng et al. | Collaborative design: Improving efficiency by concurrent execution of Boolean tasks | |
Thaller et al. | Procedural mesh features applied to subdivision surfaces using graph grammars | |
CN112182705A (zh) | 基于bim技术的仿真模拟模型数据解析方法 | |
Cyre et al. | Knowledge visualization from conceptual structures | |
CN115762251B (zh) | 基于虚拟现实技术的电力机车车体组装方法 | |
CN115239023B (zh) | 一种兵棋推演系统 | |
CN111475249B (zh) | 一种基于web端四方连接技术的三维展示方法 | |
Sumei | Total object unified model driven architecture of product lifecycle management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20161130 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |