一种基于球面调和函数的柔性体建模方法实现*
2011-07-28陈治国方艳红
陈治国,吴 斌,方艳红
(西南科技大学 信息工学院,四川 绵阳 621010)
虚拟环境中三维物体的建模主要包括对刚性物体建模,对柔性物体的变形和接触力建模。对柔性物体的变形和接触力建模,可以分为基于几何的力变形建模和基于物理意义的力变形建模两大类。基于几何的力变形建模方法通过几何插值的方法可直接改变物体表面的控制点从而改变物体形状。接触力的大小与物体的变形量成正比[2],常见的有基于正方形面片和三角面片的模型,这类模型的建立比较简单,因而在虚拟现实建模技术中最先得到发展。基于物理意义的力变形模型则基于物体的力学本构方程,通过分析力和形变的关系对柔性物体进行建模[3],最常见的是弹簧质点模型、有限元模型和边界元模型,但三者都存在着不足之处[4]。
针对这些问题,参考文献[5]提出了运用绝对节点坐标的方法,即采用基于Hertz接触碰撞理论,给出了碰撞力计算表达式,对空间中虚拟柔性体进行建模。此方法实现了基于绝对节点坐标的柔性体间、柔性体与刚体间的建模与实时碰撞仿真。本文则在引入球面调和函数理论的基础上,研究了一种新的基于球面调和函数的虚拟柔性体建模方法,利用球面调和函数的正交归一性、旋转不变性重构信号,及其多尺度特性表达物体的细节部分,实现物体的精确建模和实时表达。在准确地表达柔性体、增强虚拟环境沉浸感的同时,大大提高了虚拟环境中交互的实时性。
1 球面调和函数原理
球面调和函数 (Spherical Harmonics)[6]Ylm(θ,φ)(其中-l≤m≤l)是定义在球面坐标系上的一组正交、完备的函数系。平面上任意连续图形可以用傅里叶函数表示,同样作为傅里叶函数的三维扩展,空间中的任意连续曲面可以用球面调和函数的线性组合来表达。通常情况下,球面调和函数定义在复数域上,本文所涉及的主要是实数域上的球面调和函数问题。所以下面首先讨论实数域上球面调和函数的概念及相关性质。
图1 球面坐标系
如图1所示,对于单位球球面上任一点(x,y,z)可以用球面坐标表示为:
球 面 调 和 函 数 Ylm(θ,φ)的 表达式为:)
其中,Plm是m阶l次的连带勒让德多项式,K是标量因子,并且:
式(2)中的连带勒让德多项式Plm值的递归计算式为:
按照式(4),可以计算出球面调和函数的前几项。
美国Waters公司MICROMASS Quattro Micro API型质谱仪,配有电喷雾离子化源(ESI),数据采集:MassLynx 4.1软件(美国Waters公司)。岛津LC‐20 10CHT高效液相色谱仪,恒温水浴箱(Heto Holten Denmark),匹配紫外检测器、荧光检测器。
为表示球面调和函数产生特定的顺序,可以按如下方法变为一维向量的形式:
其中i=l(l+1)m。则球面上的任意一个函数 f(θ,φ)的球面调和系数为:
球面上的函数f(θ,φ)可以通过球面调和函数的线性组合来近似表示:
2 基于球面调和函数的柔性体建模方法
为了表示任何形状的物体,可将球面调和描述子参数化,那么任何一个单连通的曲面拓扑结构等价于球面:
其中,x(θ,φ),y(θ,φ)和 z(θ,φ)是 θ和 φ 的坐标函数。
将式(9)中三式合并为单值向量函数如下:
这 里 yi,j=(θi,φi),j=l2+l+m+1,k=(Lmax+1)2。 因 为n≠k 总成立,故(a1,a2,a3,…,ak)T可以通过用最小二乘拟合求解上述线性系统得到。由于 aj≡都是原始的系数的估计,则可以重构出原函数如下:
同样对 x(θ,φ)和 y(θ,φ)应用最小二乘估计,即可求出与的 估 计和,从而得到重构系数。则可以由所估计出的系数按照式(13)重构出原曲面 s(θ,φ)。
SPHARM的多尺度特性(LOD)使得它可以很好地表达物体的细节部分。应用这个性质开发出一种程序(SHAPE explorer (SphericalHarmonics Parameterization Explorer)),用户通过交互的方式改变参数可获得任意形状。
3 绘制过程及结果
绘制过程是首先利用 3D max画出原图 Orginal,然后经过预处理后在基于Matlab2009a平台下的SPHARM软件进行球面调和分析,得到球面调和系数,最后利用得到的系数进行模型重构。本文采用的试验平台处理器为2.80 GHz,内存2 GB,显卡为英特尔G41 Express Chipset的PC机。实验中3D模型使用模型的顶点作为采样点,实验模型中用到的采样点为10 242个,用Visage Imaging公司的Amira软件实现对数据的可视化。实验结果如图2所示。
图2 球面调和函数建模效果图
图中,L为球面调和函数表达式中的尺度,图(a)表示原始物体,图(b)、(c)、(d)分别表示尺度 L 为 3、8、15时物体重构的形状。可以看出,运用的尺度越大,重构的sˆ(θ,φ)就越精确,物体形状的复杂性决定了近似表达物体的尺度高低。基函数的尺度越高越能较好地表达物体形状的细节部分。
本文在分析球面调和函数理论的基础上,将球面调和函数的多尺度LOD(Level Of Detail)性引入柔性体建模中,探讨了基于球面调和函数的虚拟柔性体建模方法,利用其多尺度特性实现对物体细节部分的精确建模和实时表达。实验结果表明,该实现方法表达模型效率高、交互性好,为柔性物体可视化触觉再现系统的深入研究奠定了基础。
[1]邵延华,吴斌,张红英,等.一种虚拟现实建模的新方法[J].信息化纵横,2009(18):46-48.
[2]SALISBURY K, BARBAGLI F, CONTIF.Haptic rendering:introductory concepts[J].IEEE Computer Graphics and Applications Magazine, SpecialIssue on Haptic Rendering, 2004, 20(2):24-32.
[3]潘振宽,高波.手术仿真中基于质点—弹簧模型的人体组织变形仿真[J].青岛大学学报,2003,18(3):9-14.
[4]蔡伟,况迎辉.触觉可视化技术中柔性物体变形模型研究[J].计算机技术与发展,2010,20(3):20-23.
[5]虞磊,赵治华,任启鸿,等.基于绝对节点坐标的柔性体碰撞仿真[J].清华大学学报(自然科学版).2010,50(7):1135-1140.
[6]PRESS W H,TEUKOLSKY S A,VETTERLING W,et al.C++数值算法(第 2版)[M].胡健伟,赵志勇,薛运华,等译.北京:电子工业出版社,2005.