一种鸟类躯干模型的羽毛实时动态生成方法

文档序号:8224212阅读:479来源:国知局
一种鸟类躯干模型的羽毛实时动态生成方法
【技术领域】
[0001]本发明属于三维动画领域,尤其一种三维动画中鸟类躯干模型上羽毛的自动无穿插覆盖和实时动态生成方法。
【背景技术】
[0002]三维动画技术,是近年来随着计算机软硬件技术的发展而产生的一种新兴技术,可以方便快捷地制作出满足导演需求的三维动画或影视特效镜头。
[0003]三维动画片的制作原理一般为:首先,利用三维动画制作工具(比如3ds Max、Maya或Houdini)在计算机中建立一个虚拟的世界;然后,在这个虚拟的三维世界中添加场景和三维卡通角色等三维模型;最后,设定模型的动画曲线、虚拟摄影机的运动轨迹和其它动画参数,渲染得到动画。
[0004]由于三维动画技术具备可精确模拟真实景象、几乎没有创作限制等特点,目前被广泛应用于娱乐、教育、军事等诸多领域。
[0005]尽管现有三维软件都提供了大量功能和丰富插件,但用于绘制鸟类躯干羽毛并实现随身体动画而变化的却很少,或者偏于理论而非实际应用。主要原因是,鸟躯干上的羽毛分布虽然貌似随机,但并非完全随机,因为不同毛囊之间存在着最小间距,以免羽毛之间的穿插,另外,羽干的方向也要紧贴躯干表面,而鸟的躯干本身会因为动画而形变,因此在现有技术中,并不存在一个完整的技术方案用于解决鸟类躯干模型上的羽毛动态生成问题。

【发明内容】

[0006]有鉴于此,本发明提供了一种鸟类躯干模型的羽毛实时动态生成方法,能够实现羽毛之间的无穿插覆盖,并能够根据鸟类模型的动画变形进行实时动态生成。
[0007]为了达到上述目的,本发明的技术方案为:一种鸟类躯干模型的羽毛实时动态生成方法,包括如下步骤:
[0008]步骤1,针对鸟类躯干的多边形模型,进行UV映射,获得构成该模型的每个多边形在第O帧时各顶点I?η在世界坐标系中的三维坐标Dltl?D η(ι、法线矢量Nltl?Nntl、切线矢量Tltl?T n0,并在各顶点I?η处分别构建顶点局部坐标系Cltl?C η0,参考真实鸟类的羽毛走向,在各顶点处设定位于顶点局部坐标系中的羽毛中羽杆走向矢量民?En,其中η为多边形顶点数。
[0009]步骤2,生成一个粒子系统,其粒子总数为鸟类躯干模型上所需覆盖的羽毛总数,为每个粒子设定排斥力并约束在多边形模型面上,排斥力的作用距离为r,r为羽毛的宽度,让该粒子系统自动演化,直到各粒子都处于静止的状态,将静止状态时的各粒子在世界坐标系中的三维坐标作为羽毛中毛囊的位置,根据步骤I中的各顶点三维坐标Dltl?Dntl,计算出毛囊在所处多边形的质心坐标系中的质心坐标(U1, U2,......,Un);其中U1^Un依次为该毛囊相对于其所处多边形中顶点I?η的坐标值。
[0010]步骤3,针对每个毛囊处的羽毛,根据真实鸟类各类型羽毛所占总羽毛量的百分比,随机设定该处羽毛类型。
[0011]在鸟类躯干模型的动画中,针对其中的每一帧均执行如下步骤4?步骤6直至动画完成:
[0012]步骤4,获得当前帧k时躯干动画变形后各顶点I?η的三维坐标Dlk?D 、法线矢量Nlk?N 和切线矢量T lk?T ^并在各顶点处构建顶点局部坐标系Clk?C nk,计算出顶点局部坐标系Clk?Cnk至世界坐标系的变化矩阵M lk?Mnk;获得当前帧k时,顶点i处羽毛中羽杆走向矢量Ei相对于世界坐标系中的表达形式F ik= MikEi,其中I彡i彡η。
[0013]步骤5,获得当前帧k时,在躯干动画变形后,毛囊所在多边形的法线矢量Lk;根据步骤2中毛囊的质心坐标,计算出该毛囊处羽毛中羽杆走向矢量Vk= u !F1^u2F2k+-..+UnFnk和毛囊的三维坐标Pk= u ^fu2D2k+…+UnDnk,毛囊出羽杆走向矢量以及毛囊的三维坐标均是位于世界坐标系中。
[0014]针对每个毛囊,以羽杆走向矢量Vk所在方向为Y轴,以羽杆走向矢量Vk和法线矢量N的叉乘为X轴,以X轴矢量与Y轴矢量的叉积为Z轴,以Pk为坐标原点,建立该毛囊处羽毛局部坐标系Wk。
[0015]步骤6,在每个毛囊对应的当前帧k时的羽毛局部坐标系Wk中的XY平面上,根据羽毛的长度与宽度,生成羽毛参考NURBS面片,依据羽毛类型在该羽毛参考NURBS面片进行羽毛的生成,NURBS为非均匀有理B样条曲线。
[0016]进一步地,步骤3中,鸟类躯干上羽毛类型具体包括各类型羽毛所占总羽毛量的百分比,则设定一个[0,1]的总区间,依据各种羽毛类型所占的百分比,将该总区间分为多个分区间,每个分区间对应一种羽毛类型;在总区间中生成与粒子系统中粒子数目相同数量的随机数,并将随机数赋予给每个粒子,则每个粒子以其对应的随机数所处分区间来确定其羽毛类型。
[0017]进一步地,步骤6中,设定羽毛的长度为1,宽度为r,在每个毛囊处羽毛局部坐标系的x-y平面上,由以下9个坐标值确定的点:[-r/2,0], [0,0], [r/2,0], [_r/2,1/2], [O, I/2], [r/2, 1/2], [-r/2, I], [0,I], [r/2, I]生成该处羽毛参考NURBS面片,根据需要利用晶格变形将羽毛参考NURBS面片进行弯曲,在该羽毛参考NURBS面片上插值进行羽毛的生成。
[0018]有益效果:
[0019]1、本发明所提供的羽毛动态生成方法,由于采用粒子系统进行毛囊的生成,充分考虑到羽毛的宽度设定了排斥力,通过粒子系统动态演化后静止时的位置确定毛囊位置,能够实现覆盖时相邻羽毛之间无穿插,且粒子分布和运动具有随机性,能够实现逼真的羽毛分布。
[0020]2、本发明仅通过设定多边形各顶点处羽毛中羽杆走向即可得到位于多边形上各毛囊处的羽毛走向,能够实时生成动态的羽毛。
[0021]3、本发明以概率分布的方式设定鸟类躯干上的羽毛类型,并生成随机数来确定单个粒子上羽毛的类型,充分符合鸟类羽毛生成规律。
[0022]4、本发明所建立的羽平面为非均匀有理B样条曲线NURBS平面,可根据需要进行晶格变形,充分符合鸟类羽毛有所弯曲的特征,使羽枝不是全部在同一平面上。
【附图说明】
[0023]图1为本方法流程图。
【具体实施方式】
[0024]下面结合附图并举实施例,对本发明进行详细描述。
[0025]本发明提供了一种三维动画中鸟类躯干模型上羽毛的实时动态生成方法,其流程图如图1所示,主要包括如下步骤:
[0026]步骤1,针对鸟类躯干的多边形模型,进行UV映射,获得构成该模型的每个多边形在第O帧时各顶点I?η在世界坐标系中的三维坐标Dltl?D η(ι、法线矢量Nltl?N n(l和切线矢量Tltl?T n0,并在各顶点I?η处分别构建顶点局部坐标系Cltl?C η0,参考真实鸟类的羽毛走向,在各顶点处设定位于顶点局部坐标系中的羽毛中羽杆走向矢量民?En,其中η为多边形顶点数。
[0027]世界坐标系是三维动画制作工具中的默认坐标系,由三个互相垂直并相交的坐标轴X、Y、Z组成,默认情况下,X轴正向为屏幕水平向右,Y轴正向为垂直向上,Z轴正向为垂直屏幕平面指向使用者,坐标原点在屏幕左下角。
[0028]顶点局部坐标系是由三个互相垂直并相交的坐标轴X、Y、Z组成,Y轴为多边形模型上该顶点处的法线矢量,X轴为切线矢量Ti, Z为X轴矢量与Y轴矢量的叉积,坐标原点位于该顶点处,顶点局部坐标系随模型动画变形而变化。
[0029]各顶点的切线矢量,是根据各顶点在UV映射后获得的UV坐标值和其在世界坐标系中的二维坐标计算获得。
[0030]步骤2,生成一个粒子系统,其粒子总数为鸟类躯干模型上所需覆盖的羽毛总数,为每个粒子设定排斥力并约束在多边形模型面上,排斥力的作用距离为r,r为羽毛的宽度,让该粒子系统自动演化,直到各粒子都处于静止的状态,将此时各粒子在世界坐标系中的三维坐标作为羽毛中毛囊位置,根据步骤!中的各顶点三维坐标Dltl?Dntl,计算出毛囊在所处多边形的质心坐标系中的质心坐标(U1, U2,......,un);其中U1^Un依次为该毛囊相对于其所处多边形中顶点I?η的坐标值。
[0031]粒子系统为三维计算机图形学中利用大量几何物体模拟一些模糊现象的技术,例如烟、雾、雪或云等。本发明将粒子系统用于毛囊生成上,即每个粒子处生成一个毛囊,一个毛囊处生成一根羽毛。具体实施时,可采用三维动画制作工具Maya中的粒子模块来做。
[0032]质心坐标系(Generalized Ba
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1