一种“质点-弹簧”系统驱动的点集模型动画自动生成方法

文档序号:6633302阅读:227来源:国知局
一种“质点-弹簧”系统驱动的点集模型动画自动生成方法
【专利摘要】本发明公开一种由“质点-弹簧”系统驱动的点集模型动画自动生成方法。方法首先读取点集模型数据,将其缩放为指定大小,并计算缩放后模型的坐标轴向包围盒;然后通过剖分包围盒建立“质点-弹簧”系统,同时确定弹簧格网与点集模型中各点的关联关系;根据设定的初始条件和运动基本定律,分析“质点-弹簧”系统的受力情况,由弹簧系统驱动点集中各点的位置更新。在点集变化过程中,由当前时刻点集模型构建点集曲面,并将点集曲面进行网格化处理,再通过绘制网格模型生成动画的当前帧;动画的后续帧由动力学方程所确定的下一时刻的弹簧系统状态决定。本方法只需设定系统的初始状态便可自动地生成点集模型运动动画。
【专利说明】一种"质点-弹簧"系统驱动的点集模型动画自动生成方法

【技术领域】
[0001] 本发明公开一种"质点-弹簧"系统驱动的点集模型动画自动生成方法,该方法属 于计算机动画【技术领域】,尤其涉及点集动画自动生成的技术方法。

【背景技术】
[0002] 在计算机动画领域中,生成动画的方法主要有以下三种:逐帧法、关键帧法和骨骼 动画。帧是指动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头,在动画软 件的时间轴上巾贞表现为一格。
[0003] 逐帧法就是对每一帧的内容进行逐个编辑和绘制,然后按照时间顺序依次播放形 成动画。该类方法主要用于传统动画的制作。其优点是:仿真性好,自由度高,能模拟各种 画面变化;不足之处在于:动画设计工作非常繁琐,劳动强度巨大。
[0004] 关键帧法是指在动画的制作过程中,设计人员只负责设计动画的关键性画面,由 计算机通过插值计算生成中间的过渡帧,进而完成动画的制作。相对于逐帧法,该类方法显 著地减少了动画设计人员的工作量,降低了动画制作的成本;其不足之处是:在处理较为 复杂的运动过程时,仍需要绘制大量的关键帧才能保证动画画面的真实感效果;若部分关 键帧设置不当,还会在动画中产生动作失真等现象。
[0005] 骨骼动画(参见:戚军,专利"一种骨骼动画的实现方法",申请号: CN201110362515. 2)技术中,动画模型由两个部分来表示:一部分是用层次结构表示的一 系列骨骼(即骨架),每一个骨骼都包含了其自身的动画数据;另一部分是蒙在骨架上的皮 肤(即网格模型),用于提供动画绘制所需要的几何模型和纹理材质信息等。通过对骨架进 行动画模拟,再利用骨骼控制皮肤就生成了骨骼动画效果。相对于关键帧动画,该方法在 生成动画时,只需存储每一帧的骨骼(骨骼数目相对较少)数据,因而占用空间较小,并且 多个皮肤可以共享相同骨骼以生成不同的动画;不足之处在于:骨骼动画渲染过程中耗时 较多,骨髓与皮肤之间的运动关系不易把握。


【发明内容】

[0006] 本发明针对现有技术的不足,提出一种"质点-弹簧"系统驱动的点集模型动画自 动生成方法。该方法基于点集模型和物理运动规律,通过设定动画运动的初始条件,快速、 自动地生成符合自然物理规律的模型运动及曲面变形效果。相对于关键帧动画,本方法无 需绘制关键帧,从而减少了设计人员的工作量,节约了动画制作的成本;相对于骨骼动画, 本方法无需定义骨骼的运动轨迹,渲染刷新速度快,便于动画设计人员简单、快捷地进行动 画制作。
[0007] 本发明采用以下技术方案:
[0008] -种"质点-弹簧"系统驱动的点集模型动画自动生成方法,其步骤是:
[0009] a.点集模型预处理:读取点集模型数据,该数据是确定坐标系下一系列三维空间 顶点的坐标;分别选取点集模型中顶点坐标在X、y、Z方向上的最大值和最小值,并根据这 些值构建各棱均平行于坐标轴的轴向包围盒B1 ;对包围盒B1和包围盒中的点集等比例缩 放,使其最长棱边为L,形成规格化点集模型和包围盒B2 ;将规格化模型及其包围盒B2平移 至坐标系空间中的易处理位置;
[0010] b.建立"质点-弹簧"系统:将包围盒B2中平行于X、y、z轴的各条棱剖分成Np N2、N 3份,称每份的长度为段元,形成大小为N1XN2XN3的空间栅格结构,其将包围盒B 2剖分 成一系列小的栅格单元;选取包围盒B2的8个顶点中坐标分量最小者记为P,计算其它栅 格顶点相对于点P偏离的段元数目,得到各栅格顶点坐标;在栅格顶点处放置质量为M的质 点,将每一质点与其相邻或间隔相邻质点采用刚度系数为K的弹簧相连,得到"质点-弹簧" 系统;
[0011] C.关联模型顶点与弹簧格网:建立点集模型中每个点V e p与其所在的"质点-弹 簧"系统中确定空间栅格单元之间的关联关系:先确定点集模型中任一点所在栅格的索引 号和点V在栅格中所处的局部相对位置;根据模型点V所在栅格相对于点P偏离的段元数 目,计算栅格的索引号;选取点V所在栅格中的一点作为基点b,建立点V和基点b的相对 关系;
[0012] d.施加作用力于弹簧系统:设置质点运动初始状态,如弹簧的质量M、初始的速度 V等参数,对"质点-弹簧"系统中的部分或所有质点施加作用力,改变其运动状态;
[0013] e.分析弹簧系统的受力情况,并更新点集坐标:检测"质点-弹簧"系统中的每个 质点,根据弹簧连接关系分析质点受力情况:计算其受到弹簧内部力、阻尼、重力等的合力; 然后根据牛顿定律求解每一质点的加速度、速度、位移量等信息以及其在下一时刻的位置 坐标;
[0014] f.构建点集模型相应的点集曲面:根据当前点集模型中各点的空间位置,运用曲 面拟合方法构造当前点集模型的隐式曲面表示;
[0015] g.网格化点集曲面:将隐式曲面所在的空间剖分为小立方体(Cubes)的集合,采 用基于空间剖分的Marching Cubes方法,对隐式曲面在各小立方体内的部分进行三角化处 理,并将所有小立方体内的三角化结果集合起来,将隐式曲面转化为三角网格模型;
[0016] h.动画生成:将生成的网格模型渲染成动画的当前帧,而由动力学方程所确定的 下一时刻的弹簧系统状态决定动画的下一帧,反复迭代(即回到第e步,迭代分析弹簧系统 的受力情况、更新点集坐标、重建网格模型),直到生成所需的动画帧系列为止。这一系列的 连续帧实现了动画的自动生成。
[0017] 本发明方法相对于现有技术,具有如下优点:
[0018] (1)同时适用于2D、3D动画领域,可用于各种基于物理规律动画的生成;
[0019] (2)只须给定初始状态,后继的物体运动状态由"质点-弹簧"系统自动迭代产生, 无需考虑复杂的中间环节,极大地简化了设计人员的工作量;
[0020] (3)根据参数设定质点的质量、弹簧的劲度系数、阻尼、重力加速度等,通过不同的 组合方式可产生不同的动画效果。

【专利附图】

【附图说明】
[0021] 图1是本发明方法的流程图及相关数据的变换情况;
[0022] 图2是缩放前后点集模型的包围盒示例:其中(a)是缩放前的包围盒,(b)是缩放 后的包围盒;
[0023] 图3是栅格化后的包围盒示例(取N1 = 4, N2 = 3, N3 = 2);
[0024] 图4是栅格顶点偏离点p段元数目示意图;
[0025] 图5是2D条件下"质点-弹簧"系统的实例:(a)是"质点-弹簧"系统总结构, (b)是结构弹簧,(c)是剪切弹簧,(d)是弯曲弹簧;
[0026] 图6是模型点在栅格中相对于基点所处位置的示意图;
[0027] 图7为隐式曲面在一个小立方体内的部分可以用三角形逼近的示意图;
[0028] 图8为小立方体顶点不同符号配置的15种简化情况。

【具体实施方式】
[0029] 下面结合附图和实施例,对本发明做详细说明。
[0030] 如图1所示,一种"质点-弹簧"系统驱动的点集模型动画自动生成方法,其具体 实施步骤如下:
[0031] 根据用户读取的点集模型数据以及设定的初始条件:规格长度L,包围盒等分的 份数HN 3,弹簧的初始长度Ltl (Ltl是弹簧连接的两质点间的距离),弹簧的刚度系数K(K =ct/Lci,本实例中,α =15.0),质点的质量Μ,阻尼系数Cd等,实现点集模型动画的自动生 成。
[0032] 1.点集模型的预处理:本实例对读入的点集模型构建长方体轴向包围盒B1,确定 L与包围盒B1的最长棱边之间的比例,依据此比例对点集模型和长方体包围盒B1进行成比 例缩放处理,并移动二者的几何中心至坐标原点。具体做法为:
[0033] a)由文件读取点集模型数据至内存,建立一维数组存放点集,并定义顶点数据结 构,包含X,y,Z三个分量,存放点集的坐标值。与此同时,记录X, y, z三个方向上的最小 值X1, Y1, Z1和最大值X2, y2, Z2。则长方体包围盒8个顶点坐标为(X1, Y1, Z1)、(X1, Y1, Z2)、 (X1, y2, Z1)、(X1, y2, z2)、(x2, y" Z1)、(x2, y" z2)、(x2, y2, Z1)、(x2, y2, Z2),即可确定长方体包围 盒B1的大小,可参考附图2(a)。
[0034] b)长方体包围盒B1的长宽高分别为W、H、D,本实例中,规格长度L = 2,则放缩比 例为:
[0035] μ = max (ff, H, D) /L
[0036] 依据μ对点集模型和长方体包围盒B1进行成比例缩放处理,形成规格化点集模 型和包围盒B 2,参考附图2(b),并移动二者的几何中心至坐标原点。
[0037] 2.建立"质点-弹簧"系统:本实例中,将长方体包围盒B2平行于x,y,ζ轴的各条 棱等分成&、队、队份(取N 1 = 6,N2 = 6,N3 = 6),并称每份为段元;形成大小为N1XN2XN3 的空间栅格结构,其将包围盒B2剖分为一系列小的空间栅格单元,附图3为4 X 3 X 2的空间 栅格结构示意图。设定包围盒B2的8个顶点中X,y,ζ值均小于0的点为p (参考附图4), 若Dx、Dy、Dz是空间栅格结构中任意网格点q相对于网格点p所偏离的段元数目,点q的坐 标(i,j,k)可表示为:
[0038] i = (Dx-N1^) Xff/(μ XN1)
[0039] j = (Dy-N2/2) ΧΗ/(μ XN2)
[0040] k = (Dz_N3/2) X D/ ( μ X N3)
[0041] 进而在栅格顶点处放置质点,每一质点与其相邻或间隔质点之间使用劲度系数为 K的弹簧进行连接,可参考附图5。
[0042] a)结构弹簧:结构弹簧是将一个质点和与它直接相连的质点连接,可参考附图 5 (b)。
[0043] b)剪切弹簧:剪切弹簧是将一个质点和与它对角的质点连接,可参考附图5(c)。
[0044] c)柔性弹簧:柔性弹簧跨过一个质点,将一个质点和它的间隔质点相连,可参考 附图5(d)。
[0045] 对于长方体栅格网而言,每个质点共有6条结构弹簧、6条柔性弹簧、12条剪切弹 簧,边界点处需特殊考虑。对所有质点添加弹簧后,最后得到"质点-弹簧"系统。
[0046] 3.关联模型顶点与弹簧格网:在本实例中,建立弹簧格网与点集模型中每个点的 关联关系主要包括两步:求解模型点V所在栅格的索引号和点V在栅格中所处的位置。具 体做法如下:
[0047] a)由步骤2可知,模型点V所在栅格相对于网格点p所偏离的段元数目分别为Dx、 Dy、Dz,换句话说Dx、Dy、Dz分别为点V所在栅格的X,y,z轴方向上的索引号,将其转化为一 维形式,即:
[0048] Iindex = DjDyXNADzXN1XN2
[0049] 其中 Dx e [Oj1-ILDy e [0, N2-I], Dz e [0, N3-I]。式中 index 是点 V 在长方体 包围盒B2中所对应的栅格。
[0050] b)以"质点-弹簧"系统中每一个小栅格的几何中心点作为坐标原点,构建局部空 间坐标系,其坐标轴向与全局坐标系保持一致。将小栅格8个顶点中X,y,z坐标值都处于 坐标系负轴的点作为基点b (bx,by,bz),计算基点与相邻的三个顶点的长度,分别记为R x、Ry、 Rz。进而记录每个模型点v(vx,vy vz)在三个分量上与基点的距离(可参考附图6),并计算 出所占比例Px、P y、Pz,即点集模型中的比例值为:
[0051] Px = (v x-bx)/Rx ;
[0052] Py = (v y-by) /Ry ;
[0053] Pz = (v z-bz)/Rz〇
[0054] 4.施加作用力于弹簧系统:设置质点运动初始状态,如质点的质量M = 0· 01等参 数,对"质点-弹簧"系统中的部分质点施加作用力,改变其运动状态。
[0055] 5.分析弹簧系统的受力情况,并更新点集坐标:在本实例中,通过逐行扫描的方 法,检测每一质点受到弹簧内部力、阻尼、重力等的合力;然后根据牛顿定律和显性欧拉积 分法求解每一质点在下一时刻的位置坐标,实现"质点-弹簧"系统的整体更新;
[0056] 进而由弹簧系统驱动点集模型中各点的位置更新。主要分为以下3步:
[0057] a)检测"质点-弹簧"系统中的质点,通过逐行扫描的办法,检测每一个质点的受 力情况。下面我们就其受力做具体分析:
[0058] 首先,每一质点都受到弹簧系统内部力,用表示质点i和质点j之间的弹簧作 用在质点i上的力,这里的弹簧遵循Hooke定律,则有:

【权利要求】
1. 一种"质点-弹黃"系统驱动的点集模型动画自动生成方法,其步骤是: a. 点集模型预处理;读取点集模型数据,该数据是确定坐标系下一系列H维空间顶点 的坐标;分别选取点集模型中顶点坐标在X、y、Z方向上的最大值和最小值,并根据该些值 构建各棱均平行于坐标轴的轴向包围盒Bi ;对包围盒Bi和包围盒中的点集等比例缩放,使 其最长棱边为以形成规格化点集模型和包围盒B,;将规格化模型及其包围盒B,平移至坐标 系空间中的易处理位直; b. 建立"质点-弹黃"系统:将包围盒B2进行剖分,形成空间栅格结构;在栅格顶点处 放置质量为M的质点,将每一质点与其相邻或间隔相邻质点采用刚度系数为K的弹黃相连, 得到"质点-弹黃"系统; C.关联模型顶点与弹黃格网;根据"质点-弹黃"系统中的空间栅格与点集模型中每个 顶点的位置分布关系,确定点集模型中各个顶点所对应的栅格,建立二者之间的关联; d. 施加作用力于弹黃系统:设置质点运动初始状态,对"质点-弹黃"系统中的部分或 所有质点施加作用力,改变其运动状态; e. 分析弹黃系统的受力情况,并更新点集坐标;检测"质点-弹黃"系统中的每个质 点,根据弹黃连接关系分析质点受力情况:计算其受到弹黃内部力、阻尼、重力及其他力的 合力;然后根据运动定律求解每一质点的加速度、速度、位移量和其他信息W及其在下一时 刻的位置坐标; f. 构建点集模型相应的点集曲面:根据当前点集模型中各点的空间位置,运用曲面拟 合方法构造当前点集模型的隐式曲面表示; g. 网格化点集曲面;采用基于空间剖分的Marching化bes方法,将隐式曲面转化为H 角网格模型; h. 动画生成;将生成的网格模型撞染成动画的当前峽,并由动力学方程所确定的下一 时刻的弹黃系统状态决定动画的下一峽;反复迭代,直到生成所需的动画峽系列为止。
【文档编号】G06T13/00GK104463934SQ201410617737
【公开日】2015年3月25日 申请日期:2014年11月5日 优先权日:2014年11月5日
【发明者】祁彬斌, 庞明勇 申请人:南京师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1