CN101261741A - 一种基于细节编码及重构的物理变形方法 - Google Patents
一种基于细节编码及重构的物理变形方法 Download PDFInfo
- Publication number
- CN101261741A CN101261741A CNA2007101760971A CN200710176097A CN101261741A CN 101261741 A CN101261741 A CN 101261741A CN A2007101760971 A CNA2007101760971 A CN A2007101760971A CN 200710176097 A CN200710176097 A CN 200710176097A CN 101261741 A CN101261741 A CN 101261741A
- Authority
- CN
- China
- Prior art keywords
- normal vector
- coding
- base net
- net lattice
- 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.)
- Granted
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
一种基于细节编码及重构的物理变形方法:(1)在预处理阶段,对原始的精细网格模型进行自适应的简化以建立其基网格表示,生成的基网格供运行时物理变形计算使用;(2)基于基网格对精细网格顶点的位置及法向量进行细节编码;(3)在运行时阶段,对基网格模型进行物理变形计算;(4)根据变形后的基网格模型和细节编码重构精细网格模型,最后进行真实感绘制。本发明该方法用户只需简单指定物体的材质参数,即可交互模拟复杂物体的弹性变形过程,在保证物体的变形质量的前提下较好地保持物体表面的几何细节。
Description
技术领域
本发明属于计算机虚拟现实和计算机图形学技术领域,特别是计算机动画中基于物理的物体变形技术。
背景技术
长期以来,物体变形始终是计算机图形学领域的研究热点,现实世界中有许多物体是柔软的、可变形的,因此物体变形的模拟在计算机动画、计算机辅助设计、视频游戏和手术仿真等领域都有着广泛的应用。
在计算机图形学领域,现有的实现物体变形的方法主要分为两类:基于几何的方法和基于物理的方法。基于几何的方法将控制点集的目标位置或微分属性作为约束条件,通过几何运算将物体调整为预想的姿态或形状。如传统的自由变形技术通过操纵控制框架来使物体发生变形,其基本思路是将要变形的物体线形地嵌入控制框架中,并假设物体和控制框架由同一种材料做成,移动控制顶点使控制框架产生变形,物体也随之产生变形。自由变形技术非常直观,算法效率高,但它不能很好地保持物体表面的几何细节。为了更好地解决这个问题,学者们提出了多分辨率网格编辑技术。该技术将原始模型分解为一个模型序列,序列中的每个模型都代表原始模型的一个不同频率下的版本,这样原始模型就可表示为一个基础模型和附加的一系列细节编码。用户可以在较低频率的模型上进行交互,通过重建技术将细节编码在变形后的较低频率的模型上重建,即可获得最终的变形效果。基于微分属性的网格编辑技术是最近两年比较热的网格编辑方法,它将传统的改变物体空间坐标的问题转化为对物体网格局部几何微分属性的操纵。基于此方法,用户只需采用很少的编辑操作即可实现网格的高效编辑,避免多分辨率技术所必需的模型分解工作,并且在变形过程中能较好地保持表面几何细节。总体来说,基于几何的方法往往不依据物理学原理,设计者根据对真实物理世界的直观感觉来改变物体的形状,这使得它虽然计算速度快,但逼真度不高,需要设计者反复调整。
基于物理的方法遵循客观的物理规律对物体进行变形计算,更容易对变形对象进行合理的控制,真实感强,但计算代价高昂,多应用于动画、视频游戏和虚拟手术等领域。目前广泛采用的物理变形方法是将可变形物体视为连续性固体,采用有限元法(finite elementmethod)数值求解其本构方程。有限元法更符合真实的物理规律,然而计算代价高昂,在最新的消费级图形硬件上一般只能实时模拟具有几百个单元的物体变形。Pentland等人(参见A Penland,J Williams.Good vibrations:model dynamics for graphics and animation.In:Procof the 16th annual conference on Computer graphics and interactive techniques.New York:ACM Press,1989,215-222)引入的模态分析法(modal analysis)较大地简化了计算工作量。它利用类似频域分析的思路,通过预计算并存储物体的固有模态,将微分方程组转换为一组互不耦合的方程,实时计算每个模态的模态坐标,利用线性叠加的方法得到结点位移。但方法的缺点是:实时性差,不易保留复杂物体的弹性。
总的来说,基于几何的变形方法计算速度快,较适合实时交互应用,但逼真度不够;基于物理的方法,特别是有限元法逼真度高,但计算代价高昂,在目前的消费级图形硬件上尚无法实时模拟复杂物体的变形。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种实时的、能够保留复杂物体几何细节的基于细节编码及重构的物理变形方法,该方法用户只需简单指定物体的材质参数,即可交互模拟复杂物体的弹性变形过程,在保证物体的变形质量的前提下较好地保持物体表面的几何细节。
本发明采用的技术方案是:一种基于细节编码及重构的物理变形方法,其特点在于:
(1)在预处理阶段,对原始的精细网格模型进行自适应的简化以建立其基网格表示,生成的基网格供运行时物理变形计算使用;
(2)基于基网格对精细网格顶点的位置及法向量进行细节编码;
(3)在运行时阶段,对基网格模型进行物理变形计算;
(4)根据变形后的基网格模型和细节编码重构精细网格模型,最后进行真实感绘制。
本发明的原理:在预处理阶段,本发明使用自适应的网格简化算法对原始的精细网格模型进行简化,从而得到基网格模型。
为了充分保留原始网格模型表面的局部细节特征并在变形后进行恢复,本发明给出了一种细节编码方法,该方法分为顶点位置编码和顶点法向量编码两部分:
(1)顶点位置编码.对于精细网格模型上的任一顶点p,其位置的细节编码可由以下三元组构成:(q,Nq,h),其中q为顶点p在基网格上的对应点,Nq代表q点的法向量,而h代表p和q两点间距离。注:出于稳定性考虑,通常希望记录局部特征的向量长度尽可能短,因此要求位于基网格的对应点q的法向量方向指向p点。
基于上述定义,p点的位置可以表示为p=q+h·Nq。
(2)顶点法向量编码.对于精细网格模型上的任一顶点p,其法向量的细节编码可由以下三元组构成:(q,Rq,Nlocal),其中q为顶点p在基网格上的对应点,Rq代表q点所在的局部空间到世界空间的变换矩阵,Nlocal代表p点在该局部空间的法向量方向,如图2所示。
这里将p点的法向量映射到q点所在的局部空间,并假设在变形过程中该法向量在局部空间内保持不变,记为Nlocal,该值可在预计算过程中求得;Rq是q点所在的局部空间到世界空间的变换矩阵,由q点的法向量N、切向量T和副法向量B确定,如下式所示:
本发明在运行阶段,首先需对基网格模型进行物理变形计算,使用了模态分析法进行物理变形,用户可根据需求进行适当调整。模态分析法的本质就是对弹性物体变形系统的动力方程进行解耦操作,使其成为一组以模态坐标及模态参数描述的独立方程,以便求出系统的模态坐标乃至结点位移。在变形模拟过程中,只需处理那些变形效果明显的模态即可,一般来说,要想比较真实的表现物体变形效果,大概需要50个模态左右,因此模态分析法可有效地减少计算量。
本发明在利用模态分析法计算物体变形时,首先预先求得物体的模态矩阵和相应的特征值并进行存储;在变形阶段,求解物体的模态坐标,之后计算出物体各个结点的位移即可。在基于变形后的基网格模型进行精细网格模型重构时,对于精细网格顶点p,其基网格对应点q变形后的新位置和新法向量均很容易计算得到,分别记为q′和Nq′。由于假设在变形过程中,细节编码中的h和Nlocal始终保持不变,因此点p变形后的新位置p′可通过公式p′=q′+h·Nq′得到;点p变形后的新法向量Np′可通过公式Np′=Rq′Nlocal得到。
本发明与现有技术相比的优点在于:基于物理的物体变形方法计算代价高昂,目前即使采用模态分析法来加速物理方程的求解仍无法实时模拟复杂几何物体的形变过程;另一方面,在计算机动画、视频游戏等应用领域,人们并不关注于精确的力学仿真结果,在满足实时的前提下实现尽可能逼真的变形效果才是关键。本发明将原始的精细网格模型划分为较为简单的基网格模型和细节编码两部分,通过对基网格模型进行精确的物理变形计算从而使得物体的整体变形效果符合真实物理规律,效果自然;利用细节编码对变形后物体的表面细节进行重构,较好地恢复了物体的表面细节特征,使得本方法适合应用于复杂几何物体。总而言之,本发明变形速度快,对于复杂几何物体的变形完全可以满足实时需要。变形计算符合真实物理规律,效果自然。
附图说明
图1为本发明细节保持变形方法主要流程图;
图2为本发明的法向量编码的示意图;
图3为本发明实例的原始bunny精细网格模型;
图4为本发明实施例简化后的bunny基网格模型;
图5为本发明实施例变形后的bunny基网格模型;
图6为本发明实施例变形后的bunny精细网格模型。
具体实施方式
下面结合实施例对本发明进行详细说明。
实施例:对Stanford大学提供的bunny模型进行细节保持的变形计算。如图3所示,Bunny原始网格模型顶点数为35022。
如图1,本发明包括预处理阶段和运行时阶段两个部分共四个步骤,具体如下:
第一步:基网格生成。
本发明要求对原始的精细网格模型进行自适应的简化以建立其基网格表示,生成的基网格供运行时物理变形计算使用。本发明采用M Garland,P S Heckbert.Surface simplification usingquadric error metric.In:Proc of the 24th Annual Conference on Computer Graphics and interactiveTechniques International Conference on Computer Graphics and Interactive Techniques.New York:ACM Press,1997,209-216中提供的网格简化算法对精细网格模型进行简化,图4给出了对原始bunny模型简化后得到的基网格模型,其顶点数为2981。
第二步:基于基网格对精细网格顶点的位置及法向量进行细节编码。
如图2所示,精细网格上的任一顶点p进行细节编码的过程如下:
(1)查找点p在基网格上的对应三角形。按照点到三角形的最小距离原则,即计算点p到基网格所有三角形的距离,以其中距离最小者作为对应三角形。
(2)在对应三角形内部查找对应点q。由于要求对应点q的法向量方向指向点p,因此点q应满足(p-q)×Nq=0。其中q点位置和法向量可分别由对应三角形的各顶点位置和法向量双线性插值得到。具体计算时采用多维迭代法在三角形区域内查找(p-q)×Nq的最小值以求得对应点q。
(3)记录点q位置,点q的法向量Nq以及p和q两点间距离h进行位置细节编码;记录q点所在的局部空间到世界空间的变换矩阵Rq,点p在该局部空间的法向量方向Nlocal进行法向量细节编码。
重复上述步骤(1)-(3),直至对精细网格上的所有顶点都完成细节编码。
第三步:对基网格模型进行物理变形计算。
使用模态分析法计算物理变形的具体过程如下:
(1)弹性物体动力方程可表示为: 其中u、和ü分别是系统结点的位移向量、速度向量和加速度向量;F是系统所受的诸如碰撞或用户输入而产生的外力向量;M、C和K分别是系统的质量矩阵、阻尼矩阵和刚度矩阵。根据基网格模型的有限元网格,计算物体的总体质量矩阵M和刚度矩阵K,阻尼矩阵C=c1K+c2M,其中c1和c2为Rayleigh阻尼常数;物体的总体质量矩阵M和刚度矩阵K可由相关的有限元分析软件计算得到。
(3)根据公式MΦΛ=KΦ对总质量矩阵M和刚度矩阵K进行特征值分解,计算相应的模态、特征值Φ及特征值矩阵Λ,去掉特征值过大的模态。使用数学工具或者专业的矩阵计算库进行计算,如在Matlab里可使用eigs命令计算得到。
(4)令z=Φ-1·u,g=ΦT·F,则弹性物体的动力方程可简化为对角等式: 这里z看作在模态坐标中表示的值,F是系统所受的诸如碰撞或用户输入而产生的外力向量,I为单位矩阵,u为顶点位置。
(5)每帧通过数值求解步骤4中的二次微分方程 计算模态坐标z的新值。
(6)根据u=u0+Φ·z更新各顶点位移u,如果模拟尚未完成,则返回步骤5,否则结束。图5给出了bunny基网格模型的物理变形效果,本例中所施的合力位于bunny的嘴部,所保留的模态数为24,基网格变形所需计算时间约为5ms。
第四步:根据变形后的基网格模型和细节编码重构精细网格模型。
精细网格顶点p进行细节重构的过程如下:
(1)依据物理变形后的基网格模型计算基网格对应点q变形后的新位置和
(2)新法向量,分别记为q′和Nq′,其中q′=αa′+βb′+γc′和Nq′=αNa′+βNb′+γNc′,其中a′、b′和c′为点p所对应三角形三个顶点变形后的新位置,Na′、Nb′和Nc′为三个顶点变形后的新法向量,均可通过物理变形计算得到。
(3)通过公式p′=q′+h·Nq′计算点p变形后的新位置p′;h为细节编码中的距离编码。
(4)通过公式Np′=Rq′Nlocal计算点p变形后的新法向量Np′;其中Rq′为变形后的新变换矩阵,可通过变形后q’点的法向量和切向量得到,具体公式为R′q=[T′qB′qN′q],T′q=a′-b′,Nq′如步骤2所示计算,B′q=T′q×N′q,Nlocal为细节编码中的法向量编码值。
(5)重复上述步骤,直至重构出精细网格上的所有顶点,随后将精细网格模型的顶点位置及法向量等信息送入帧缓存进行真实感绘制。
图6给出了变形后的bunny精细网格模型效果图,对比图3和图5可以看出,本文提出的细节编码及重构方法较好地恢复了物体表面的细节特征。Bunny变形及重构所需的总时间为21.5ms,渲染帧率达到46.7fps,完全可以满足实时需要。
Claims (5)
1. 一种基于细节编码及重构的物理变形方法,其特征在于:
(1)在预处理阶段,对原始的精细网格模型进行简化生成基网格模型,生成的基网格模型供运行阶段物理变形计算使用;
(2)基于基网格模型对精细网格顶点的位置及法向量进行细节编码;
(3)在运行时阶段,对基网格模型进行物理变形计算;
(4)根据步骤(3)中的物理变形后的基网格模型和步骤(2)中的细节编码重构精细网格模型,最后进行真实感绘制。
2. 根据权利要求1所述的基于细节编码及重构的物理变形方法,其特征在于:所述步骤(2)的进行细节编码的过程如下:
(1)查找基网格模型上的任一顶点p在基网格上的对应三角形,计算点任一顶点p到基网格所有三角形的距离,以其中距离最小者作为对应三角形;
(2)在所述的对应三角形内部查找对应点q,要求对应点q的法向量方向指向任一顶点p,对应点q满足(p-q)×Nq=0,其中:Nq为法向量,对应点q的位置和法向量Nq分别由对应三角形的各顶点位置和法向量双线性插值得到;
(3)记录对应点q的位置,使该对应点q的法向量Nq以及任一顶点p和对应点q两点间距离h进行位置细节编码,记录对应点q所在的局部空间到世界空间的变换矩阵Rq,对任一顶点p在该局部空间的法向量方向Nlocal进行法向量细节编码;
(4)重复上述(1)-(3)步骤,直至对精细网格上的所有顶点都完成细节编码。
3. 根据权利要求1所述的基于细节编码及重构的物理变形方法,其特征在于:所述步骤(3)中的物理变形计算采用模态分析方法,实现步骤:
(1)根据基网格模型的有限元网格,计算物体的总体质量矩阵M和刚度矩阵K,阻尼矩阵C=α1K+α2M,其中α1和α2为Rayleigh阻尼常数;
(2)确定系统的初始状态,包括:各顶点的初始位置u0和初始速度
(3)根据公式MΦΛ=KΦ对总质量矩阵M和刚度矩阵K进行特征值分解,计算相应的模态、特征值Φ及特征值矩阵Λ,去掉特征值过大的模态;
(4)令z=Φ-1·u,g=ΦT·F, z为在模态坐标中表示的值,F是系统所受的诸如碰撞或用户输入而产生的外力向量,I为单位矩阵,u为顶点位置。
(5)每帧通过数值求解步骤(4)中的二次微分方程 计算模态坐标z的新值;上述修改后,相应的说明书中也要进行修改。
(6)根据u=u0+Φ·z更新各顶点位移u,如果模拟尚未完成,则返回步骤(5),否则结束。
4. 根据权利要求1所述的基于细节编码及重构的物理变形方法,其特征在于:所述步骤(4)中为精细网格模型重构的方法如下:
(1)依据物理变形后的基网格模型计算基网格对应点q变形后的新位置和新法向量,分别记为q′和Nq′,其中:q′=αa′+βb′+γc′和Nq′=αNa′+βNb′+γNc′,a′、b′和c′为点p所对应三角形三个顶点变形后的新位置,Na′、Nb′和Nc′为三个顶点变形后的新法向量;
(2)通过公式p′=q′+h·Nq′计算点任一顶点p变形后的新位置p′,h为细节编码中的距离编码;
(3)通过公式Np′=Rq′Nlocal计算点p变形后的新法向量Np′,其中:Rq′为变形后的新变换矩阵,可通过变形后q’点的法向量和切向量得到,公式为R′q=[T′q B′q N′q],T′q=a′-b′,Nq′如步骤(2)所示计算,B′q=T′q×N′q,Nlocal为细节编码中的法向量编码值;
(4)重复上述步骤(1)-(3),直至重构出精细网格上的所有顶点。
5. 根据权利要求2所述的基于细节编码及重构的物理变形方法,其特征在于:所述的查找对应点q的方法为:假设p点对应三角形为Δ(a,b,c),其顶点法向量分别为Na,Nb和Nc,则三角形内部任意一点都可以表示为:q=αa+βb+γc,其中α+β+γ=1,相应的法向量可表示为:Nq=αNa+βNb+γNc,基网格上的对应点q的法向量方向指向任一顶点p,故对应点q点满足下式:(p-q)×Nq=0,具体计算时采用多维迭代法在三角形区域内查找(p-q)×Nq的最小值以求得对应点q。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710176097A CN100583160C (zh) | 2007-10-19 | 2007-10-19 | 一种基于细节编码及重构的物理变形方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710176097A CN100583160C (zh) | 2007-10-19 | 2007-10-19 | 一种基于细节编码及重构的物理变形方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101261741A true CN101261741A (zh) | 2008-09-10 |
CN100583160C CN100583160C (zh) | 2010-01-20 |
Family
ID=39962181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710176097A Expired - Fee Related CN100583160C (zh) | 2007-10-19 | 2007-10-19 | 一种基于细节编码及重构的物理变形方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100583160C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102509356A (zh) * | 2011-11-10 | 2012-06-20 | 杭州电子科技大学 | 使用网格细分的细节保留几何模型变形方法 |
CN105069826A (zh) * | 2015-08-26 | 2015-11-18 | 中国科学院深圳先进技术研究院 | 弹性物体变形运动的建模方法 |
CN105261056A (zh) * | 2015-11-06 | 2016-01-20 | 北京航空航天大学 | 一种基于模态空间细分策略的物体变形序列补全方法 |
CN109801367A (zh) * | 2019-02-25 | 2019-05-24 | 广西大学 | 一种基于压缩流形模式的网格模型特征编辑方法 |
US10394979B2 (en) | 2015-08-26 | 2019-08-27 | Shenzhen Institutes Of Advanced Technology Chinese Academy Of Sciences | Method and device for elastic object deformation modeling |
CN111859763A (zh) * | 2020-07-27 | 2020-10-30 | 上海圣之尧智能科技有限公司 | 有限元模拟方法、系统及介质 |
-
2007
- 2007-10-19 CN CN200710176097A patent/CN100583160C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102509356A (zh) * | 2011-11-10 | 2012-06-20 | 杭州电子科技大学 | 使用网格细分的细节保留几何模型变形方法 |
CN105069826A (zh) * | 2015-08-26 | 2015-11-18 | 中国科学院深圳先进技术研究院 | 弹性物体变形运动的建模方法 |
CN105069826B (zh) * | 2015-08-26 | 2018-06-29 | 中国科学院深圳先进技术研究院 | 弹性物体变形运动的建模方法 |
US10394979B2 (en) | 2015-08-26 | 2019-08-27 | Shenzhen Institutes Of Advanced Technology Chinese Academy Of Sciences | Method and device for elastic object deformation modeling |
CN105261056A (zh) * | 2015-11-06 | 2016-01-20 | 北京航空航天大学 | 一种基于模态空间细分策略的物体变形序列补全方法 |
CN109801367A (zh) * | 2019-02-25 | 2019-05-24 | 广西大学 | 一种基于压缩流形模式的网格模型特征编辑方法 |
CN109801367B (zh) * | 2019-02-25 | 2023-01-13 | 广西大学 | 一种基于压缩流形模式的网格模型特征编辑方法 |
CN111859763A (zh) * | 2020-07-27 | 2020-10-30 | 上海圣之尧智能科技有限公司 | 有限元模拟方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100583160C (zh) | 2010-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Barbič et al. | Subspace self-collision culling | |
CN100583160C (zh) | 一种基于细节编码及重构的物理变形方法 | |
CN105302974B (zh) | 一种基于有限元和时变模态分析的柔性物体实时切割仿真方法 | |
CN100545871C (zh) | 一种直接传递三维模型姿态的方法 | |
Teran et al. | Adaptive physics based tetrahedral mesh generation using level sets | |
CN101719284B (zh) | 一种基于层次模型的虚拟人皮肤物理变形方法 | |
Qin et al. | Dynamic NURBS swung surfaces for physics-based shape design | |
CN102360515A (zh) | 一种三维模型渐进网格数据组织方法 | |
CN101833785A (zh) | 一种具有物理真实感的可控动态形状插值方法 | |
Bender et al. | Adaptive cloth simulation using corotational finite elements | |
Sun et al. | Adaptive generation and local refinement methods of three-dimensional hexahedral element mesh | |
Zhang et al. | Adaptive generation of hexahedral element mesh using an improved grid-based method | |
JP2603902B2 (ja) | 自動メッシュ生成方法及びシステム | |
Velho | Mesh simplification using four-face clusters | |
Allegre et al. | The hybridtree: Mixing skeletal implicit surfaces, triangle meshes, and point sets in a free-form modeling system | |
Li et al. | Mesh simplification algorithm based on absolute curvature-weighted quadric error metrics | |
Zhang et al. | Design patterns of soft products using surface flattening | |
CN102393968A (zh) | 一种几何精确的不可拉伸条带模拟方法 | |
CN102930586A (zh) | 一种基于线性旋转不变微分坐标的可交互几何变形方法 | |
CN112862957B (zh) | 一种基于约束投影的gpu并行试衣仿真方法 | |
CN109118561B (zh) | 一种基于位置的层次化动态模拟方法 | |
CN101655832B (zh) | 一种基于标量场梯度的物理变形方法 | |
KR101110342B1 (ko) | 유체 시뮬레이션 형상 제어 시스템 및 방법 | |
CN105335552A (zh) | 不可伸展带状物体的几何性质描述模型及动力学模拟方法 | |
Peng et al. | A Simulated Annealing Algorithm for Progressive Mesh Optimization. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100120 Termination date: 20131019 |