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

技术编号:11319812 阅读:91 留言:0更新日期:2015-04-22 09:15
本发明专利技术公开了一种鸟类躯干模型上羽毛的实时动态生成方法,具体为:将鸟类躯干的多边形模型进行UV映射,在每个顶点处建立顶点局部坐标系,设定位于顶点局部坐标系中的羽毛中羽杆走向矢量;生成粒子系统,各粒子约束在多边形的面上,粒子之间排斥力为羽毛宽度,演化至静止后,各粒子位置为毛囊的位置,随机确定羽毛的类型;在鸟类模型动画变形后更新顶点局部坐标系,计算出当前帧时的羽毛羽杆走向,以毛囊位置为坐标原点,建立羽毛局部坐标系,根据设定宽度和长度建立羽毛参考NURBS面片,在该NUBRS面片上生成羽毛,针对动画中各帧重复上述步骤。该方法能够实现羽毛之间的无穿插覆盖,并能够实时生成动态的羽毛。

【技术实现步骤摘要】

本专利技术属于三维动画领域,尤其一种三维动画中鸟类躯干模型上羽毛的自动无穿插覆盖和实时动态生成方法。
技术介绍
三维动画技术,是近年来随着计算机软硬件技术的发展而产生的一种新兴技术,可以方便快捷地制作出满足导演需求的三维动画或影视特效镜头。三维动画片的制作原理一般为:首先,利用三维动画制作工具(比如3ds Max、Maya或Houdini)在计算机中建立一个虚拟的世界;然后,在这个虚拟的三维世界中添加场景和三维卡通角色等三维模型;最后,设定模型的动画曲线、虚拟摄影机的运动轨迹和其它动画参数,渲染得到动画。由于三维动画技术具备可精确模拟真实景象、几乎没有创作限制等特点,目前被广泛应用于娱乐、教育、军事等诸多领域。尽管现有三维软件都提供了大量功能和丰富插件,但用于绘制鸟类躯干羽毛并实现随身体动画而变化的却很少,或者偏于理论而非实际应用。主要原因是,鸟躯干上的羽毛分布虽然貌似随机,但并非完全随机,因为不同毛囊之间存在着最小间距,以免羽毛之间的穿插,另外,羽干的方向也要紧贴躯干表面,而鸟的躯干本身会因为动画而形变,因此在现有技术中,并不存在一个完整的技术方案用于解决鸟类躯干模型上的羽毛动态生成问题。
技术实现思路
有鉴于此,本专利技术提供了,能够实现羽毛之间的无穿插覆盖,并能够根据鸟类模型的动画变形进行实时动态生成。为了达到上述目的,本专利技术的技术方案为:,包括如下步骤:步骤1,针对鸟类躯干的多边形模型,进行UV映射,获得构成该模型的每个多边形在第O帧时各顶点I?η在世界坐标系中的三维坐标Dltl?D η(ι、法线矢量Nltl?Nntl、切线矢量Tltl?T n0,并在各顶点I?η处分别构建顶点局部坐标系Cltl?C η0,参考真实鸟类的羽毛走向,在各顶点处设定位于顶点局部坐标系中的羽毛中羽杆走向矢量民?En,其中η为多边形顶点数。步骤2,生成一个粒子系统,其粒子总数为鸟类躯干模型上所需覆盖的羽毛总数,为每个粒子设定排斥力并约束在多边形模型面上,排斥力的作用距离为r,r为羽毛的宽度,让该粒子系统自动演化,直到各粒子都处于静止的状态,将静止状态时的各粒子在世界坐标系中的三维坐标作为羽毛中毛囊的位置,根据步骤I中的各顶点三维坐标Dltl?Dntl,计算出毛囊在所处多边形的质心坐标系中的质心坐标(U1, U2,......,Un);其中U1^Un依次为该毛囊相对于其所处多边形中顶点I?η的坐标值。步骤3,针对每个毛囊处的羽毛,根据真实鸟类各类型羽毛所占总羽毛量的百分比,随机设定该处羽毛类型。在鸟类躯干模型的动画中,针对其中的每一帧均执行如下步骤4?步骤6直至动画完成:步骤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彡η。步骤5,获得当前帧k时,在躯干动画变形后,毛囊所在多边形的法线矢量Lk;根据步骤2中毛囊的质心坐标,计算出该毛囊处羽毛中羽杆走向矢量Vk= u !F1^u2F2k+-..+UnFnk和毛囊的三维坐标Pk= u ^fu2D2k+…+UnDnk,毛囊出羽杆走向矢量以及毛囊的三维坐标均是位于世界坐标系中。针对每个毛囊,以羽杆走向矢量Vk所在方向为Y轴,以羽杆走向矢量Vk和法线矢量N的叉乘为X轴,以X轴矢量与Y轴矢量的叉积为Z轴,以Pk为坐标原点,建立该毛囊处羽毛局部坐标系Wk。步骤6,在每个毛囊对应的当前帧k时的羽毛局部坐标系Wk中的XY平面上,根据羽毛的长度与宽度,生成羽毛参考NURBS面片,依据羽毛类型在该羽毛参考NURBS面片进行羽毛的生成,NURBS为非均匀有理B样条曲线。进一步地,步骤3中,鸟类躯干上羽毛类型具体包括各类型羽毛所占总羽毛量的百分比,则设定一个的总区间,依据各种羽毛类型所占的百分比,将该总区间分为多个分区间,每个分区间对应一种羽毛类型;在总区间中生成与粒子系统中粒子数目相同数量的随机数,并将随机数赋予给每个粒子,则每个粒子以其对应的随机数所处分区间来确定其羽毛类型。进一步地,步骤6中,设定羽毛的长度为1,宽度为r,在每个毛囊处羽毛局部坐标系的x-y平面上,由以下9个坐标值确定的点:, , , , , , , , 生成该处羽毛参考NURBS面片,根据需要利用晶格变形将羽毛参考NURBS面片进行弯曲,在该羽毛参考NURBS面片上插值进行羽毛的生成。有益效果:1、本专利技术所提供的羽毛动态生成方法,由于采用粒子系统进行毛囊的生成,充分考虑到羽毛的宽度设定了排斥力,通过粒子系统动态演化后静止时的位置确定毛囊位置,能够实现覆盖时相邻羽毛之间无穿插,且粒子分布和运动具有随机性,能够实现逼真的羽毛分布。2、本专利技术仅通过设定多边形各顶点处羽毛中羽杆走向即可得到位于多边形上各毛囊处的羽毛走向,能够实时生成动态的羽毛。3、本专利技术以概率分布的方式设定鸟类躯干上的羽毛类型,并生成随机数来确定单个粒子上羽毛的类型,充分符合鸟类羽毛生成规律。4、本专利技术所建立的羽平面为非均匀有理B样条曲线NURBS平面,可根据需要进行晶格变形,充分符合鸟类羽毛有所弯曲的特征,使羽枝不是全部在同一平面上。【附图说明】图1为本方法流程图。【具体实施方式】下面结合附图并举实施例,对本专利技术进行详细描述。本专利技术提供了一种三维动画中鸟类躯干模型上羽毛的实时动态生成方法,其流程图如图1所示,主要包括如下步骤:步骤1,针对鸟类躯干的多边形模型,进行UV映射,获得构成该模型的每个多边形在第O帧时各顶点I?η在世界坐标系中的三维坐标Dltl?D η(ι、法线矢量Nltl?N n(l和切线矢量Tltl?T n0,并在各顶点I?η处分别构建顶点局部坐标系Cltl?C η0,参考真实鸟类的羽毛走向,在各顶点处设定位于顶点局部坐标系中的羽毛中羽杆走向矢量民?En,其中η为多边形顶点数。世界坐标系是三维动画制作工具中的默认坐标系,由三个互相垂直并相交的坐标轴X、Y、Z组成,默认情况下,X轴正向为屏幕水平向右,Y轴正向为垂直向上,Z轴正向为垂直屏幕平面指向使用者,坐标原点在屏幕左下角。顶点局部坐标系是由三个互相垂直并相交的坐标轴X、Y、Z组成,Y轴为多边形模型上该顶点处的法线矢量,X轴为切线矢量Ti, Z为X轴矢量与Y轴矢量的叉积,坐标原点位于该顶点处,顶点局部坐标系随模型动画变形而变化。各顶点的切线矢量,是根据各顶点在UV映射后获得的UV坐标值和其在世界坐标系中的二维坐标计算获得。步骤2,生成一个粒子系统,其粒子总数为鸟类躯干模型上所需覆盖的羽毛总数,为每个粒子设定排斥力并约束在多边形模型面上,排斥力的作用距离为r,r为羽毛的宽度,让该粒子系统自动演化,直到各粒子都处于静止的状态,将此时各粒子在世界坐标系中的三维坐标作为羽毛中毛囊位置,根据步骤!中的各顶点三维坐标Dltl?Dntl,计算出毛囊在所处多边形的质心坐标系中的质心坐标(U1, U2,......,un);其中U1^Un依次为该毛囊相对于其所处多边形中顶点I?η的坐标值。粒子系统为三维计算机图本文档来自技高网...

【技术保护点】
一种鸟类躯干模型的羽毛实时动态生成方法,其特征在于,包括如下步骤:步骤1,针对鸟类躯干的多边形模型,进行UV映射,获得构成该模型的每个多边形在第0帧时各顶点1~n在世界坐标系中的三维坐标D10~Dn0、法线矢量N10~Nn0、切线矢量T10~Tn0,并在各顶点1~n处分别构建顶点局部坐标系C10~Cn0,参考真实鸟类的羽毛走向,在各顶点处设定位于顶点局部坐标系中的羽毛中羽杆走向矢量E1~En,其中n为多边形顶点数;步骤2,生成一个粒子系统,其粒子总数为鸟类躯干模型上所需覆盖的羽毛总数,为每个粒子设定排斥力并约束在多边形模型面上,所述排斥力的作用距离为r,r为羽毛的宽度,让该粒子系统自动演化,直到各粒子都处于静止的状态,将静止状态时的各粒子在世界坐标系中的三维坐标作为羽毛中毛囊的位置,根据步骤1中的各顶点三维坐标D10~Dn0,计算出毛囊在所处多边形的质心坐标系中的质心坐标(u1,u2,……,un);其中u1~un依次为该毛囊相对于其所处多边形中顶点1~n的坐标值;步骤3,针对每个毛囊处的羽毛,根据真实鸟类各类型羽毛所占总羽毛量的百分比,随机设定该处羽毛类型;在鸟类躯干模型的动画中,针对其中的每一帧均执行如下步骤4~步骤6直至动画完成:步骤4,获得当前帧k时躯干动画变形后各顶点1~n的三维坐标D1k~Dnk、法线矢量N1k~Nnk和切线矢量T1k~Tnk,并在各顶点处构建顶点局部坐标系C1k~Cnk,计算出顶点局部坐标系C1k~Cnk至世界坐标系的变化矩阵M1k~Mnk;获得当前帧k时,顶点i处羽毛中羽杆走向矢量Ei相对于世界坐标系中的表达形式Fik=MikEi,其中1≤i≤n;步骤5,获得当前帧k时,在躯干动画变形后,毛囊所在多边形的法线矢量Lk;根据步骤2中毛囊的质心坐标,计算出该毛囊处羽毛中羽杆走向矢量Vk=u1F1k+u2F2k+…+unFnk和毛囊的三维坐标Pk=u1D1k+u2D2k+…+unDnk,所述毛囊出羽杆走向矢量以及毛囊的三维坐标均是位于世界坐标系中;针对每个毛囊,以羽杆走向矢量Vk所在方向为Y轴,以羽杆走向矢量Vk和法线矢量N的叉乘为X轴,以X轴矢量与Y轴矢量的叉积为Z轴,以Pk为坐标原点,建立该毛囊处羽毛局部坐标系Wk;步骤6,在每个毛囊对应的当前帧k时的羽毛局部坐标系Wk中的XY平面上,根据羽毛的长度与宽度,生成羽毛参考NURBS面片,依据羽毛类型在该羽毛参考NURBS面片进行羽毛的生成,所述NURBS为非均匀有理B样条曲线。...

【技术特征摘要】

【专利技术属性】
技术研发人员:李然朱承昊
申请(专利权)人:北京科艺有容科技有限责任公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1