CN105279788A - 一种生成物体空间扫掠体的方法 - Google Patents
一种生成物体空间扫掠体的方法 Download PDFInfo
- Publication number
- CN105279788A CN105279788A CN201510705103.2A CN201510705103A CN105279788A CN 105279788 A CN105279788 A CN 105279788A CN 201510705103 A CN201510705103 A CN 201510705103A CN 105279788 A CN105279788 A CN 105279788A
- Authority
- CN
- China
- Prior art keywords
- model
- voxel
- moment
- dimensional
- motion transform
- 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
Links
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种生成物体空间扫掠体的方法,涉及虚拟仿真、计算机辅助制造(CAM)与产品周期管理(PLM)领域,特别涉及一种虚拟模型运动扫掠体生成方法。该方法采用三维空间体素(Voxel)方法,获得物体在三维空间中经过运动变换所形成的扫掠体,或称包络体、包络空间、扫掠空间、扫掠轨迹。与目前已有扫掠体计算方法相比,本发明提出的方法适用于任意复杂三维形状的刚性与非刚性运动变换,能够对运动变换过程中每一采样时刻的扫掠体进行实时三维显示和表面重建。此外,本发明还提出采用大规模行并行计算的方法对扫掠体计算过程进行加速,在算法计算效率、计算精度以及鲁棒性方面均优于现有已有方法。
Description
技术领域
本发明属于一种虚拟仿真、计算机辅助制造(CAM)与产品周期管理(PLM)领域,特别涉及一种虚拟模型运动扫掠体生成方法。
背景技术
空间扫掠体,又称为空间包络体、包络空间、扫掠空间、扫掠轨迹空间,英文名词是Swept Volume,它是指任意一个物体沿着任意一个轨迹线(甚至是一个面),以某种方式(平移、旋转、缩放、变形)进行运动变换,最终在三维空间中产生一个包括该物体在运动过程中经过的全部空间总和。扫掠体问题包含了包络建模与计算、包络线、面划定及三维显示等一系列子问题。然而,其中最有挑战性的问题就是扫掠体的生成和可视化。空间扫掠体技术在几何造型复杂模型设计、装备组装可行性分析、大规模设计、以及机器人运动路径规划等方面有着非常重要的作用,在航空航天、船舶、汽车以及其它制造业有着非凡价值和意义。
对空间扫掠体的研究最早开始于上世纪5、60年代,尽管已经经过了半个多世纪的发展,也出现了一系列关于生成扫掠体的方法,但由于实现算法复杂、数据计算量太大,在具体实际生产实践中的应用始终存在着巨大障碍,因此该技术一直以来被认为是计算机图形学、可视化、虚拟现实领域中公认的难题之一。
在早期的扫掠体研究阶段,实现方法主要是基于解析几何的方法,如基于运动形态和基于几何形态的算法。基于运动形态的方法是以曲线族包络面方程为基础的,利用包络理论,通过微分方程进行求解。例如,Kim和Moon提出了一个专门针对代数曲线和曲面,生成纯旋转扫掠体的代数算法。该方法得到的扫掠体边界与回旋由平面物体的边界有关。 Parida和Mudur进一步针对更加通用的扫掠体方法,加入了一系列扫掠规则。此后,一些研究人员进一步将该方法加以扩展,提出扫描包络的方法,实现了多边形物体的三维扫掠体生成。由于上述扫掠体生成涉及到大量的方程求解,计算效率较低,其算法复杂度与多边形模型的顶点数量相关。这一时期的扫掠体计算的核心根基是隐函数理论:多样分层和扫描包络偏微分方程。大多数的工作是通过给扫掠路径一定假设条件,然后表征扫掠体的边界。在这方面有大量关于如何进行几何实体造型表面相交计算的研究报道。尽管基于几何计算的方法在一定程度上实现了扫掠体的生成,但是它们普遍的缺陷是仅适用于简单的多边形或者简单的扫掠轨迹,通用性较差,更重要的是其计算过程涉及大量偏微分方程求解,要想得到精确的扫掠体,底层计算的代数复杂度非常高。此外,所有这些用于表面相交计算的算法实现都存在处理精度和鲁棒性等诸多问题。因此,这些基于几何计算的方法无法精确计算出任意多边形沿着一个给定光滑路径的扫掠体。
近年来,随着计算机硬件水平和计算能力的不断提升,扫掠体技术被重新提出,一种新颖的图形表示及操作算法-体素(Voxel)法的出现使得任意复杂图形延任意复杂运动轨迹的扫掠体计算成为了可能。目前针对任意复杂物体的空间扫掠体生成技术,世界上仅有美国波音(Boeing)、法国达索(Dassault)、德国西门子(Siemens)三家企业推出了实际产品,它们分别为波音的Voxmap PointShellTM (VPS),达索的CATIA,西门子的Kineo Wrapping。波音的Voxmap PointShellTM(VPS)本身是一个使用体素(Voxel)来解决空间几何问题的函数库。在VPS中,扫掠体(Swept
Volume)生成模块可以通过用户定义的物体对象运动轨迹来生成物体扫过的空间实体,并完成扫描体表面补偿功能。另外,VPS的网格化功能利用局部体素空间拓扑结构快速生成多边形模型。达索的CATIA是PLM协同解决方案的一个重要组成部分,其空间扫掠体模块实现方法与波音的Voxmap
PointShellTM(VPS)不同,其采用了基于几何拓扑结构演算和水平集(Level-set)方法,在保证计算精度的同时也具有较低的计算复杂度。西门子PLM软件Kineo™ Wrapping解决方案是一个通用的计算扫掠体和包围的软件库。Kineo Wrapping可以通过使用外部定义的运动空间预留,在模拟过程中创建一个移动部件的空间扫掠体。此外,该软件还支持人体模型、机器人或铰接***的运动扫掠体生成。Kineo
Wrapping通过一系列算法优化,使得用户能够直接从扫掠体得到简化的网格模型和包络面,而无须存储其它中间转换。
尽管以上扫掠体生成技术也是基于Voxel的方法且各有特点,但是通过分析它们的工作流程可以发现,它们均存以下不足:
1、用于生成扫掠体的物体模型只能进行刚体运动,即平移和旋转,而对如物体本身弯曲、缩放、挤压以及自由表面任意变形等非刚性变换所产生的扫掠体则无能为力;
2、只能生成一个最终的静态空间扫掠体,而不能将物体运动过程中每一时刻的空间扫掠体实时动态地计算并显示出来;
3、 现有空间扫掠体计算算法复杂度高、计算效率低,并且都是采用离线计算的方式,而不是实时动态计算。
发明内容
本发明目的是针对现有空间扫掠体计算中存在的不足,提出一种新颖的基于三维空间体素的物体空间扫掠体快速计算方法。该方法通过加速的多边形面片体素化算法,将在三维空间中运动变换的物体模型实时地转化为体素模型,再通过快速体素运算算法将不同时刻的体素模型进行合并,从而生成每一时刻的空间扫掠体体素模型,并进行实时三维显示。
本发明方法通过以下具体步骤实现:
第1、将要进行扫掠的虚拟物体模型M以多边形面片和顶点的形式表示,并记录各顶点的坐标信息D以及顶点构成多边形面片所需连接信息P;
第2、为虚拟物体模型M在三维空间中赋予一个时间长度为l的连续运动变换H;
第3、将虚拟物体模型M在三维空间中的连续运动变换H在时间轴上进行离散化采样,每一采样点代表某一时刻t的运动变换H(t),其中
;
第4、在运动变换采样0时刻,将多边形面片和顶点表示的虚拟物体模型M在其自身所处的局部坐标系空间Flocal 中转换成三维体素模型V0 ,并将该体素模型V0 复制到物体运动变换空间所在世界坐标系Fworld 中,作为物体运动变换初始0时刻的扫掠体体素模型SV(0)=V0 ;
第5、在运动变换采样t时刻,其中1≤t≤l,根据虚拟物体模型M当前的运动变换H(t),重新计算虚拟物体模型M的多边形面片顶点坐标信息D、顶点构成多边形面片所需连接信息P;
第6、将第5步经过运动变换H(t)的虚拟物体模型M在其自身所处的局部坐标系空间Flocal 中重新转换成三维体素模型Vt ,并将该体素模型Vt 复制到物体运动变换空间所在的世界坐标系Fworld 中;
第7、将第6步t时刻采样点的三维体素模型Vt 与之前所有0到t-1时刻采样点的三维体素模型的和以集合并运算的方式进行合并,生成到t时刻为止的扫掠体体素模型SV(t)=,其中1≤t≤l,而之前所有0到t-1时刻采样点的三维体素模型的和事实上代表的是t-1时刻的扫掠体体素模型,即SV(t-1)= ,所以t时刻的扫掠体三维体素模型SV(t)又可以表示为SV(t)= Vt
SV(t-1);
第8、将第7步生成的t时刻扫掠体体素模型SV(t)进行三维显示并加以保存;
第9、将第7步生成的t时刻扫掠体体素模型SV(t)进行表面体素提取,生成t时刻扫掠体体素表面点子集SS(t),进行三维显示并加以保存;
第10、将第7步生成的t时刻扫掠体体素模型SV(t)进行表面三维重建,生成t时刻扫掠体表面的多边形面片模型SP(t),进行三维显示并加以保存;
第11、对所有运动变换采样时刻t,,重复第5到第10步,生成物体模型M在每一采样时刻t的扫掠体体素模型SV(t)、扫掠体体素表面点子集SS(t)、扫掠体表面的多边形面片模型SP(t),并进行实时三维动态显示。
其中,第1步所述的虚拟物体模型M可以是单个物体模型,也可以是多个物体模型构成的模型组合;
第1步所述由多个物体模型构成的模型组合中,物体模型之间可以是平级关系也可以是具有层级连接的父子继承关系;
第1步所述的虚拟物体模型M可以由任意三维模型格式加以表达,例如但不限于隐式曲面、网格面、多边形面片、Nurbs曲面、样条区面、实体几何体等;
第2步所述的连续运动变换H包括针对模型M的刚性变换,包括:平移、旋转,以及针对顶点坐标信息D和顶点构成多边形面片所需连接信息P施加的非刚性形变修改,例如但不限于:缩放、弯曲、扭曲、挤压、错切、顶点位移自由变换、蒙皮变换等;
第3步所述的对连续运动变换H在时间轴上进行离散化采样的过程,采样方式不限于等间隔均匀采样,可以是变间隔的非均匀采样,且采样间隔和采样精度可以任意设定;
第4步和第6步所述的虚拟物体模型M在其自身所处的局部坐标系空间Flocal 中转换成三维体素模型的过程,采用并行计算进行加速;
第7步所述的t时刻的扫掠体三维体素模型SV(t)计算过程采用并行计算进行加速;
第9步所述的表面体素提取和第10步表面三维重建采用并行计算进行加速,并且这两步为可选性执行步骤,而非必须执行步骤。
本发明的优点和有益效果:
与传统基于计算几何的扫掠体计算方法相比,本发明提出的方法计算量小、复杂度低、鲁棒性强;与现有基于体素的扫掠体计算方法相比,本发明提出的方法不仅适用于旋转、平移的刚性运动,还适用于弯曲、缩放、挤压以及自由表面任意非刚性变换的扫掠体计算。再有,比目前所有扫掠体生成方法更加优越的是,该方法能够实时计算显示出物体运动变换过程中任意时刻的空间扫掠体,而不仅仅是最终时刻的一个静态扫掠体。此外,本发明提出的方法还采用了并行计算来加速多边形体素化和体素操作运算过程。本发明在生产制造、虚拟现实、军事仿真、人机工程等领域都有着重要的实用价值和良好的应用前景。
附图说明
图1为用于空间扫掠体计算的模型对象;
图2为用于空间扫掠体计算的模型对象赋予一个时间长度为l的连续运动变换H;
图3为将时间长度为l的连续运动变换H进行离散化采样;
图4为将用于实施例空间扫掠体计算的模型进行体素化;
图5为将t时刻采样点的三维体素模型与之前所有0到t-1时刻采样点的三维体素模型的和以集合并运算的方式进行合并;
图6为t时刻采样点计算得到空间扫掠体体素模型;
图7为经过时间长度为l的运动变换后得到的最终空间扫掠体体素模型;
图8为一个机械臂空间扫掠体计算实例;
图9为一个人体运动空间扫掠体计算实例。
其中,101为原始球体模型,102为原始圆柱体模型,103为球体多边形/顶点模型,104为圆柱体多边形/顶点模型,105为模型对象自身局部坐标系;106为扫掠体空间世界坐标系;107为模型对象的体素模型;108为位置在(i, j, k)的一个非空体素;109为一个空体素;110为采样点t时刻的多边形/顶点模型;111为采样点t时刻的扫掠对象体素模型;112为t-1时刻的空间扫掠体体素模型;113为t时刻的空间扫掠体体素模型;114为最终的空间扫掠体体素模型。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图提供的具体实施例旨在作为本发明示例的描述,并不旨在表示可以构建或使用本发明示例的唯一形式。应当理解,此处所描述的具体实施例仅仅用以解释本发明,阐述本发明示例的功能,以及用于构建和操作本发明示例的步骤的序列,并不用于限定本发明。然而,可以通过不同的示例来实现相同或等效功能和序列。
本发明提出的物体空间扫掠体快速计算方法,其特征在于该方法计算物体在三维空间中经过运动变换所形成的扫掠体,或称包络体、包络空间、扫掠空间、扫掠轨迹。该方法核心思想是通过加速的多边形面片体素化算法,将在三维空间中运动变换的物体模型实时地转化为体素模型,再通过快速体素运算算法将不同时刻的体素模型进行合并,从而生成每一时刻的空间扫掠体体素模型,并进行实时三维显示。
在具体实施例中,用于扫掠体计算的物体由一个球体101和一个圆柱体102组成,如图1所示。在其它实施例中,用于计算扫掠体的物体可以是任意复杂三维物体。球体101与圆柱体102之间具有层级连接的父子继承关系,其中球体101为子物体,圆柱体102为球体101的父物体。即是,除非预先设定好的只针对圆柱体102所进行的排它性运动变换外,其它对圆柱体102的运动变换会被向下传递给球体101。反之,对球体101的运动变换则不会传递给圆柱体102。
球体101和圆柱体102的虚拟物体模型可由任何三维设计工具生成,且模型格式是任何能够表达出该物体几何特征信息的格式,只要该模型格式能够进一步转换成多边形/顶点模型。典型的三维模型格式包括但不局限于三角形面片、四边形面片、参数化曲面、实体模型、隐式曲面等。
球体101和圆柱体102的虚拟物体模型多边形/顶点的表示形式103和104可以通过计算机辅助设计和任何能够进行模型格式转换的方法完成,只要生成的多边形/顶点模型能够进一步被转换成体素模型。
完成多边形/顶点模型转换后,球体103和圆柱体104的顶点坐标信息和顶点构成多边形面片的连接信息分别存放在数组D和数组P中。在一个具体实施方式中,D和P以如下形式存放数据:
D=( d0,d1, d2, d3,
d4, d5,
…
, di,
…
, dn-1, dn)
P=( p0, p1, p2, p3,
p4, p5,
…
, pj,
…
, pm-1, pm)
di 为三维空间中的一个三维向量, 0≤i≤n,n为顶点个数;pj 为用于指向数组D中某个元素的索引值。例如,当pj =i时,代表pj 指向的是di 。数组P中的元素排列顺序实际上构成了模型的多边形表示。在一个实施例中,假设构成多边形均为三角形,则数组P中从第一个元素开始,每三个连续的元素构成一个三角形,此时m应为3的整数倍。
数组D中存放的顶点坐标信息值是定义为相对一个局部坐标系105坐标原点的位移。局部坐标系105采用笛卡尔坐标系,由一个坐标原点和三个正交的坐标轴X, Y,
Z构成。局部坐标系105可以直接从原始输入模型中继承过来,也可以在进行多边形面片和顶点模型转换的过程中重新设定。坐标原点与三个正交的坐标轴X, Y,
Z均可以任意设置。
为球体103和圆柱体104所在三维空间Rd 中赋予一个时间长度为l的连续运动变换H。三维空间Rd 中的坐标系被称为世界坐标系106,世界坐标系106坐标原点与三个正交坐标轴U, V, W由使用者自行设定,如图2所示。
在一个实施例中,连续运动变换H为一个针对球体103和圆柱体104的平移和旋转的组合。在其它实施例中,运动变换包括但不局限于平移和旋转,非刚性形变修改包括但不局限于针对顶点坐标信息D和顶点构成多边形面片所需连接信息P施加的缩放、弯曲、扭曲、挤压、错切、顶点位移自由变换、蒙皮变换等。
连续运动变换H的一般形式为:其中,R为三维正交旋转矩阵,T为三维平移向量,S为三维缩放向量,FM代表非刚性形变修改变换。
定义MH 为模型M经变换矩阵H变换而来,即:随着对象M移动,其运动轨迹可以表示成随时间变化的变换矩阵,在t0-tl 之间的每一时间点,Q产生一个新的位置、朝向、大小以及对模型顶点的变换。
进而,定义沿任意运动轨迹Q的扫掠对象形成的扫掠体为:
运动变化矩阵随时间变化是连续的,因为在实际世界中任何物体的移动都不可能是离散的。但是,在计算机计算中,处理对象普遍为离散事件,因此需要将虚拟物体模型在三维空间中的连续运动变换H在时间轴上进行离散化采样,每一采样点代表某一时刻t的运动变换H(t),其中t为整数,且。
在图2所示实施例中,球体103和圆柱体104的连续运动变换H在时间轴上进行的离散化采样过程为等间隔均匀采样,采样间隔为0.025s,即采样频率为40Hz,意味着每秒钟采集40次运动变换值。在其它实施例中,连续运动变换H在时间轴上进行的离散化采样过程可以为变间隔非均匀采样,即每两个采样时间点之间的间隔不必须一样。
完成运动变换及其离散化采样后,在运动变换采样初始0时刻,将多边形面片和顶点表示的球体103和圆柱体104在其自身所处的局部坐标系105中转换成三维体素模型107,如图3所示。
一个体素(Voxel)代表三维空间Rd 中一个规则网格上的一个值。每一个体素的坐标代表了其在三维空间中相对空间坐标系原点的位移。例如,体素108具有坐标(i, j, k),则其相对于坐标系105原点的位置是(i, j,
k)。每一个体素的取值代表了该体素位置所占据的空间的占有性。例如,构成体素模型107的一个体素108取值为1代表体素108所在空间被占据,而除了构成球体103和圆柱体104的体素外的所有体素,如体素109取值为0代表体素109所在空间未被占据。
体素代表了一种体数据存储方式,通过把空间沿着互相正交的坐标轴进行均匀细分,形成均匀分割的离散格空间。在这个体素空间中的物体则是由体素构成的集合表示。
相邻体素之间的间隔构决定了多变面片模型到体素模型转换的精度,并且可以任意设置。
注意,在替代示例中,体素模型能够以不同于上文中描述的规则网格的方式表达。例如,诸如八叉树等数据结构可用于进一步减小存储空间并加速计算。
多边形面片到体素的转换过程可以采用任何能够将多边形面片模型转换成体素模型的方法,而不局限于某种特定方法。在一个实施例中,采用多边形扫描转换算法,对多边形网格模型进行体素化。该方法简仅需要对多边形模型中每一个三角形面片进行三步判断测试,就能得到数学上正确的体素化模型,并且能够通过设置转换条件来控制体素化精度。
多边形面片模型到体素模型的转换可以采用任何能够高度并行化的方式进行加速,例如但不局限于多处理器、多线程、GPU处理器加速等。在并行化过程中,球体103和圆柱体104的多边形面片P以及顶点信息D被分配到并行的处理管线中进行体素化。在所有并行管线中的体素化过程都结束后,将每一条管线中得到的体素数据进行汇总形成最终的体素模型。
在进行体素模型扫掠体计算时,首先将体素模型107复制到物体运动变换空间Rd 所在世界坐标系106中,作为物体运动变换初始0时刻的扫掠体体素模型。复制过程,体素模型中每一个体素的坐标信息全部变换到世界坐标系106当中。
在运动变换采样t时刻,其中1≤t≤l,根据球体103和圆柱体104当前的运动变换H(t),重新计算球体103和圆柱体104的多边形面片顶点坐标信息D、顶点构成多边形面片P,得到采样时刻t变换后的模型110。
将t时刻经过运动变换H(t)的球体103和圆柱体104在其自身所处的局部坐标系空间105中重新转换成三维体素模型111,并将体素模型111复制到物体运动变换空间所在的世界坐标系106中,如图4所示。
球体103和圆柱体104在其自身所处的局部坐标系105空间中转换成三维体素模型的过程,采用并行计算进行加速,包括但不局限于多处理器、多线程、GPU处理器加速等。
将t时刻采样点的三维体素模型111与之前所有0到t-1时刻采样点的三维体素模型的和112以集合并运算的方式进行合并,生成到t时刻为止的扫掠体体素模型103,其中1≤t≤l,如图6所示。
另外一种实施例中,体素模型之间的集合并运算还可以通过数学形态学运算膨胀运算实现。数学形态学表示以形态为基础对图像进行分析的数学工具,其数学基础和所用的语言是集合论。
扫掠体三维体素模型计算过程采用并行计算进行加速,包括但不局限于多处理器、多线程、GPU处理器加速等。
将t时刻扫掠体体素模型113进行三维显示并保存。在一个实施例中,体素的三维显示方法包括但不局限与直接体绘制和体素立方体绘制。其中,体绘制并不绘制点、面、边界等中间图元,而是直接将三维体素数据投射到计算机屏幕上。根据实现方式不同,体绘制可以采用基于光线投射或基于3D贴图方法。光线投射式的原理是以观察视点为原点向屏幕上每一点发射一条射线,当射线穿过场景中的体数据场时,从前向后(或从后向前)将落在射线上的体元的RGB颜色和透明度Alpha值进行叠加,最终获得一幅二维图像。基于3D贴图的方法将三维体素数据表示成一系列平面所在的贴图,通过在特定方向上对贴图进行混合来得到最终的三维图像。
在显示体素数据时可以加入多分辨显示技术(Level of Detail),用于提高显示速度。多分辨显示允许交互式地处理非常大的体素数据,即在显示效率与显示质量之间寻求一种平衡。多分辨显示技术的基本思想是根据当前视点相对被观察物体的距离动态调整物体的细节程度;当距离较远时选择低分辨率的模型;当距离较近时选择高分辨率模型,进而观察到更多的细节。
体素模型数据可以以数据流的方式保存成任何标准或自定义体素数据格式,例如vox,raw,kv6,binvox, HIPS, MIRA, VTK等格式。以binvox文件为例说明输出体素文件的一般数据格式。
Binvox格式使用游走长度编码减小文件大小。每个binvox文件包括一个ASCII头以及后面的二进制数据。
头:
#binvox 1
dim 128 128 128
translate -0.120158 -0.481158 -0.863158
scale 7.24632
data
第一行#binvox 1表示的版本号。下一行dim
128 128 128代表了体素数据的长宽高。再后面两行给出了归一化后的左边变换和缩放信息。最后一行data表示头的结束。
Binvox体素数据中的每一个体素都可以通过相对于(0,0,0)原点的(i,j,k)坐标来获取。Binvox采用的是y轴最快,z轴其次,x轴最慢的方式进行索引更新。
二进制数据
:
ASCII头之后的二进制数据由一系列字节对组成。每个体素对应两个字节,第一个字节表示该体素是空还是非空,第二个字节表示后续多少个体素与当前体素值相同,即同为空或非空。
扫掠体体素模型可以进行表面体素提取,生成扫掠体体素表面点子集。表面体素的提取可以采用任何边界提取或表面轮廓提取算法加以实现,只要能够剔除体素模型被封闭在内部的体素,保留与空体素相邻的位于体素模型表面的体素。表面体素的显示可以采用点绘制。点绘制将点作为绘制基本元素,摒弃了传统的三角片表示方法,只记录点的信息,这些点又不同于基于图像技术的输入像素,而包含了附加的几何信息,并且点采样与视点无关。在一个实施例中,采用斯坦福大学的 QSplat算法进行扫掠体表面体素绘制,QSplat使用一个树状层次包围球数据结构存储数据,树中每个结点包含:球的位置和半径、每点处的法向量、法锥面的宽度、颜色值。在进行绘制时,层次树按深度优先方法递归遍历。对每个中间结点,首先判断该球是否完全在屏幕之外或者是完全背向的,以进行可见性选择。如果该结点至少有一部分子结点是可见的,则将该结点在屏幕上的投影大小同一个阈值进行比较,如果大于阈值,则继续向下递归;如果小于阈值或者已经到达叶结点,则按该结点的球位置和半径确定的屏幕上的位置和大小绘制一个小区域。其中阈值的大小可由上一帧图像绘制的时间动态确定,以达到满足用户指定的每秒绘制帧数的要求。
扫掠体模型表面体素提取采用并行计算进行加速,包括但不局限于多处理器、多线程、GPU处理器加速等。
扫掠体体素模型113可以进行表面三维重建,生成扫掠体表面的多边形面片模型,进行三维显示并加以保存。表面三维重建可以采用任何能够将离散点数据生成多边形面片的算法,包括但不局限于行进立方体算法(marching
Cubes algorithm)、行进四面体算法(marching
tetrahedrons algorithm),Bloomenthal多边形化器(Polygonizer),或其它适合多边形化的算法。
扫掠体表面三维重建采用并行计算进行加速,包括但不局限于多处理器、多线程、GPU处理器加速等。
对所有运动变换采样时刻t,,生成球体103和圆柱体104在每一采样时刻t的扫掠体体素模型114、扫掠体体素表面点子集、扫掠体表面的多边形面片模型,并进行实时三维动态显示。其中,扫掠体体素表面点子集和扫掠体表面的多边形面片模型的计算、显示与保存不是必须执行的。
实验结果
实验采用微软Windows平台下的Visual
C++作为扫掠体***开发平台。Visual C++是目前Windows***下开发工具之一,它不仅提供MFC类库,而且程序编译方便,能有效的跟踪程序的执行过程并发现漏洞。另外,Visual C++还提供了各种图形接口,方便二次开发,用Visual C++编译的程序代码还有执行效率高的优点。
采用Autodesk的3DS max软件制作用于扫掠的三维物体模型。
采用Coin3d实现扫掠体及其包络面的三维可视化。
在第一个扫掠体实例中,演示了多连杆机械臂复杂运动情况下形成的空间扫掠体,如图8所示。
在第二个扫掠体实例中,模拟了上楼梯过程中运动人体所产生的空间扫掠体,如图9所示。与其它计算扫掠体方法相比,本实施例能够针对更加精确的骨骼蒙皮人体模型生成相应的扫掠体,而不只是针对简单的木偶连杆式刚性人体模型。因此,计算所得到的扫掠体精度更高。
此处的实施例的描述只是作为示例给出并且本领域的技术人员可以做出各种修改。以上说明、示例和数据提供了对本发明的各示例性实施例的结构和使用的全面描述。虽然上文以一定的详细度或参考一个或多个单个实施例描述了本发明的各实施例,但是,在不偏离本发明的精神或范围的情况下,本领域的技术人员可以对所公开的实施例做出很多修改。
Claims (8)
1.一种生成物体空间扫掠体的方法,其特征在于该方法的具体操作包括以下步骤:
第1、将要进行扫掠的虚拟物体模型M以多边形面片和顶点的形式表示,并记录各顶点的坐标信息D以及顶点构成多边形面片所需连接信息P;
第2、为虚拟物体模型M在三维空间中赋予一个时间长度为l的连续运动变换H;
第3、将虚拟物体模型M在三维空间中的连续运动变换H在时间轴上进行离散化采样,每一采样点代表某一时刻t的运动变换H(t),其中
;
第4、在运动变换采样0时刻,将多边形面片和顶点表示的虚拟物体模型M在其自身所处的局部坐标系空间Flocal 中转换成三维体素模型V0 ,并将该体素模型V0 复制到物体运动变换空间所在世界坐标系Fworld 中,作为物体运动变换初始0时刻的扫掠体体素模型SV(0)=V0 ;
第5、在运动变换采样t时刻,其中1≤t≤l,根据虚拟物体模型M当前的运动变换H(t),重新计算虚拟物体模型M的多边形面片顶点坐标信息D、顶点构成多边形面片所需连接信息P;
第6、将第5步经过运动变换H(t)的虚拟物体模型M在其自身所处的局部坐标系空间Flocal 中重新转换成三维体素模型Vt ,并将该体素模型Vt 复制到物体运动变换空间所在的世界坐标系Fworld 中;
第7、将第6步t时刻采样点的三维体素模型Vt 与之前所有0到t-1时刻采样点的三维体素模型的和以集合并运算的方式进行合并,生成到t时刻为止的扫掠体体素模型SV(t)=,其中1≤t≤l,而之前所有0到t-1时刻采样点的三维体素模型的和事实上代表的是t-1时刻的扫掠体体素模型,即SV(t-1)= ,所以t时刻的扫掠体三维体素模型SV(t)又可以表示为SV(t)= Vt SV(t-1);
第8、将第7步生成的t时刻扫掠体体素模型SV(t)进行三维显示并加以保存;
第9、将第7步生成的t时刻扫掠体体素模型SV(t)进行表面体素提取,生成t时刻扫掠体体素表面点子集SS(t),进行三维显示并加以保存;
第10、将第7步生成的t时刻扫掠体体素模型SV(t)进行表面三维重建,生成t时刻扫掠体表面的多边形面片模型SP(t),进行三维显示并加以保存;
第11、对所有运动变换采样时刻t,,重复第5到第10步,生成物体模型M在每一采样时刻t的扫掠体体素模型SV(t)、扫掠体体素表面点子集SS(t)、扫掠体表面的多边形面片模型SP(t),并进行实时三维动态显示。
2.根据权利要求1所述的方法,其特征在于第1步所述的虚拟物体模型M为单个物体模型或多个物体模型构成的模型组合。
3.根据权利要求2所述的方法,其特征在于由多个物体模型构成的模型组合中,物体模型之间为平级关系或者具有层级连接的父子继承关系。
4.根据权利要求1所述的方法,其特征在于第1步所述的虚拟物体模型M可以以任意三维模型格式加以表达。
5.如权利要求4所述的方法,其特征在于所述三维模型格式包括隐式曲面、网格面、多边形面片、NURBS曲面、样条区面、实体几何体。
6.根据权利要求1所述的方法,其特征在于第2步所述的连续运动变换H包括针对模型M的刚性变换,以及针对顶点坐标信息D和顶点构成多边形面片所需连接信息P施加的非刚性形变修改。
7.如权利要求6所述的方法,其特征在于所述刚性变换包括平移、旋转,所述非刚性形变修改包括:缩放、弯曲、扭曲、挤压、错切、顶点位移自由变换、蒙皮变换。
8.根据权利要求1所述的方法,其特征在于第3步所述的对连续运动变换H在时间轴上进行离散化采样的过程,采样方式为等间隔均匀采样或变间隔非均匀采样,采样间隔和采样精度可以任意设定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510705103.2A CN105279788B (zh) | 2015-10-27 | 2015-10-27 | 一种生成物体空间扫掠体的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510705103.2A CN105279788B (zh) | 2015-10-27 | 2015-10-27 | 一种生成物体空间扫掠体的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105279788A true CN105279788A (zh) | 2016-01-27 |
CN105279788B CN105279788B (zh) | 2017-10-17 |
Family
ID=55148738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510705103.2A Active CN105279788B (zh) | 2015-10-27 | 2015-10-27 | 一种生成物体空间扫掠体的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105279788B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107092741A (zh) * | 2016-02-02 | 2017-08-25 | 达索***公司 | 使用面轨迹的b‑rep设计 |
CN107358650A (zh) * | 2017-07-17 | 2017-11-17 | 湖北理工学院 | 一种可重构的机械结构基本体形态构建方法 |
CN108022275A (zh) * | 2017-12-12 | 2018-05-11 | 苏州蜗牛数字科技股份有限公司 | 一种在虚幻引擎中的骨骼实例化方法及装置 |
CN110262389A (zh) * | 2019-07-02 | 2019-09-20 | 广东三维家信息科技有限公司 | 模拟门型加工过程的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5542036A (en) * | 1994-07-05 | 1996-07-30 | General Electric Company | Implicit modeling of swept volumes and swept surfaces |
CN104658012A (zh) * | 2015-03-05 | 2015-05-27 | 第二炮兵工程设计研究院 | 一种基于惯性与光学测量融合的运动捕捉方法 |
-
2015
- 2015-10-27 CN CN201510705103.2A patent/CN105279788B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5542036A (en) * | 1994-07-05 | 1996-07-30 | General Electric Company | Implicit modeling of swept volumes and swept surfaces |
CN104658012A (zh) * | 2015-03-05 | 2015-05-27 | 第二炮兵工程设计研究院 | 一种基于惯性与光学测量融合的运动捕捉方法 |
Non-Patent Citations (3)
Title |
---|
ANDREAS VON DZIEGIELEWSKI 等: "High Precision Conservative Surface Mesh Generation for Swept Volumes", 《JOURNAL OF LATEX CLASS FILES》 * |
J. ROSSIGNAC 等: "Boundary of the volume swept by a free-form solid in screw motion", 《COMPUTER-AIDED DESIGN》 * |
吴凡: "基于机器视觉的虚拟雕刻刀具跟踪及扫掠体建模研究", 《中国优秀硕士学位论文全文数据库工程科技I辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107092741A (zh) * | 2016-02-02 | 2017-08-25 | 达索***公司 | 使用面轨迹的b‑rep设计 |
CN107092741B (zh) * | 2016-02-02 | 2023-07-18 | 达索***公司 | 使用面轨迹的b-rep设计 |
CN107358650A (zh) * | 2017-07-17 | 2017-11-17 | 湖北理工学院 | 一种可重构的机械结构基本体形态构建方法 |
CN108022275A (zh) * | 2017-12-12 | 2018-05-11 | 苏州蜗牛数字科技股份有限公司 | 一种在虚幻引擎中的骨骼实例化方法及装置 |
CN110262389A (zh) * | 2019-07-02 | 2019-09-20 | 广东三维家信息科技有限公司 | 模拟门型加工过程的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105279788B (zh) | 2017-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gallagher et al. | Computer visualization: graphics techniques for engineering and scientific analysis | |
US4821214A (en) | Computer graphics method for changing the shape of a geometric model using free-form deformation | |
US8681145B2 (en) | Attribute transfer between computer models including identifying isomorphic regions in polygonal meshes | |
Mukundan | Advanced methods in computer graphics: with examples in OpenGL | |
JPH07120434B2 (ja) | ボリュームレンダリングを行う方法及び装置 | |
CN113593051B (zh) | 一种实景可视化方法及大坝可视化方法及计算机设备 | |
CN105279788B (zh) | 一种生成物体空间扫掠体的方法 | |
Li et al. | A GPU-based voxelization approach to 3D Minkowski sum computation | |
Eyiyurekli et al. | Interactive free-form level-set surface-editing operators | |
Moran et al. | Visualization of AMR data with multi-level dual-mesh interpolation | |
Mirolo et al. | A solid modelling system for robot action planning | |
CN101609565A (zh) | 基于L-Rep模型的三维实体布尔运算方法 | |
Wang et al. | Three-dimensional reconstruction based on improved marching cubes algorithm | |
Min et al. | Accelerating probabilistic volumetric mapping using ray-tracing graphics hardware | |
CN106408644B (zh) | 三维控制笼构造方法 | |
Min et al. | OctoMap-RT: Fast probabilistic volumetric mapping using ray-tracing GPUs | |
Vyatkin et al. | Optimized finite element method using free-form volume patches for deformation of three-dimensional objects | |
Lopes | Accuracy in scientific visualisation | |
Stroila et al. | Clip art rendering of smooth isosurfaces | |
Wang et al. | LVDIF: a framework for real-time interaction with large volume data | |
Uchiki et al. | SCOPE: solid and colored object projection environment | |
US20230215094A1 (en) | Computer Graphics Interface Using Visual Indicator Representing Object Global Volume and/or Global Volume Changes and Method Therefore | |
Kil et al. | 3D warp brush modeling | |
Rassovsky | Cubical marching squares implementation | |
Gagvani et al. | Realistic volume animation with alias |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |