[发明专利]一种基于旋转角插值的三维模型扭转变形方法无效
申请号: | 201010216585.2 | 申请日: | 2010-07-02 |
公开(公告)号: | CN101894389A | 公开(公告)日: | 2010-11-24 |
发明(设计)人: | 李凤霞;黄天羽;刘陈;许仁杰;郝云生 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06T15/00 | 分类号: | G06T15/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于旋转角插值的三维模型扭转变形方法,该方法根据角色模型的变形特点,将三维模型划分成变形区、过渡区和非变形区,通过对三维模型的各个区域应用不同的变形方法,可以提高变形的速度和真实感。在三维模型的变形区以及过渡区内,通过在扭转变形后对网格顶点相对于骨骼的旋转角进行插值,可以实现在扭转变形中三维模型相应区域围绕骨骼的扭转,并且使三维模型表面在关节点附近区域实现光滑、连续的过渡;在三维模型的非变形区内,通过对部分顶点进行相应的欧式变换来获得非变形区网格顶点扭转变形后的局部坐标。 | ||
搜索关键词: | 一种 基于 旋转 角插值 三维 模型 扭转 变形 方法 | ||
【主权项】:
1.一种基于旋转角插值的三维模型扭转变形方法,所述三维模型的骨骼结构为:关节点A和O连接成骨骼OA,关节点B和O连接成骨骼OB,骨骼OA和骨骼OB位于三维模型的中轴附近;其特征在于,包括如下步骤:使用以下方法计算三维模型顶点扭转变形后的局部坐标:(1)在三维模型表面网格上关节点O附近选择两个顶点P1、P2;(2)根据如下方法获得平面OP1P2的方程系数,①计算三维向量其中×表示向量的叉乘;②n=n′/|n′|,变量s=-n·μo;其中μo表示关节点O在世界坐标系中的坐标的向量表示;·表示向量的点乘;③V=[n,s];V存储了平面OP1P2的方程的四个系数;(3)对三维模型的每一个三角形网格,判断其网格顶点与平面OP1P2的关系,若网格的所有顶点都与关节点A在平面OP1P2的同一侧,则判定该三角形网格属于骨骼OA,否则判定该三角形网格属于骨骼OB;若原始模型中不是全部由三角形网格构成的,则需要在判断前将非三角形网格看作多个三角形组成;(4)使用如下方法计算三维模型对应的局部坐标系到世界坐标系的变换矩阵F1:F1为4×4矩阵,F 1 = α 1 T β 1 T γ 1 T μ o T 0 0 0 1 , ]]> 其中上标T表示矩阵转置操作,并且,向量向量γ1=γ1′/|γ1′|,向量α1=β1×γ1;(5)使用如下方法计算三维模型每一个网格顶点的局部坐标:三维模型中网格顶点P的局部坐标为μP′=μP·F1-T,其中μP表示顶点P在世界坐标系中的坐标的向量表示,上标-T表示先对矩阵进行转置操作再对结果求逆矩阵;(6)关节点B的局部坐标μB′=μB·F1-T,其中μB表示关节点B在世界坐标系中的坐标的向量表示,计算α=μB/|μB|;(7)根据如下方法将三维模型划分成变形区、过渡区和非变形区,①设定变形区网格顶点与关节点O构成的向量在骨骼OA和骨骼OB上的最大投影值d;②设定非变形区网格顶点与关节点O构成的向量在骨骼OA上的最小投影值L1,以及在骨骼OB上的最小投影值L2;设置时应保证d小于L1,L2之中的最小值;③在三维模型中,属于骨骼OA的每一个网格顶点,将其在步骤(5)中获得的局部坐标写为P=(x,y,z),若y小于d,则判定该顶点属于变形区;若y大于L1,则判定该顶点属于非变形区;若y大于等于d且小于等于L1,则判定该顶点属于过渡区;④在三维模型中,对属于骨骼OB的每一个网格顶点,用μP′表示该顶点的局部坐标,计算lP=μP′·μB′/|μB′|,若lP小于d,则判定该顶点属于变形区;若lP大于L2,则判定该顶点属于非变形区;若lP大于等于d且小于等于L2,则判定该顶点属于过渡区;(8)对于三维模型内属于骨骼OA的每一个网格顶点,该顶点的局部坐标写为P1=(x,y,z),若z>0,该顶点相对于平面AOB的偏转角φ1=2π-φ′1,否则,φ1=φ′1,其中(9)对于三维模型内属于骨骼OB的每一个网格顶点,该顶点的局部坐标写为P2=(x,y,z),若z>0,该顶点相对于平面AOB的偏转角φ2=2π-φ2′,否则,φ2=φ2′,其中而P2′=(x,y,0),P2″=(P2·α)α;(10)设置参数N,将三维模型的网格顶点按照相对于平面AOB的偏转角分成N个区域,偏转角为φ的网格顶点对应的区域的编号为,当顶点属于骨骼OA时φ=φ1,而属于骨骼OB时φ=φ2;(11)根据如下方法计算三维模型每一个网格顶点与关节点O构成的向量在对应的骨骼上的投影值,①对于三维模型内属于骨骼OA的每一个网格顶点,该网格顶点与关节点O构成的向量在骨骼OA上的投影值等于y,y来自该网格顶点的局部坐标P1=(x,y,z);②对于三维模型内属于骨骼OB的每一个网格顶点,该网格顶点与关节点O构成的向量在骨骼OB上的投影值为P2·μB′/|μB′|,其中P2为该网格顶点局部坐标;(12)获取步骤(10)中每一个区域的变形区和过渡区中且属于骨骼OA的网格顶点与关节点O构成的向量,在骨骼OA上的投影值的最小值l1;以及属于骨骼OB的网格顶点与关节点O构成的向量在骨骼OB上的投影值的最小值l2;(13)使用如下方法计算三维模型的变形区域和过渡区域中的顶点在扭转变形后的局部坐标,其中扭转变形角度为w1,①对于三维模型的变形区和过渡区中属于骨骼OA的每一个网格顶点,其局部坐标写为P1,从步骤(11)的计算结果中获取该网格顶点与关节点O构成的向量在骨骼OA上的投影值lP1,从步骤(12)的计算结果中获取该网格顶点对应的区域的变形区和过渡区中且属于骨骼OA的网格顶点与关节点O构成的向量,在骨骼OA上的投影值的最小值l1以及属于骨骼OB的网格顶点与关节点O构成的向量在骨骼OB上的投影值中的最小值l2,其中该网格顶点对应的区域从步骤(10)的划分结果中获得;②点P1围绕骨骼OA的旋转角θP1=w1×(L1-lP1)/(L1-l1+L2-l2)-w1,顶点P1扭转变形后对应点的局部坐标P1′=P1·RP1T,其中旋转矩阵RP1为:R P 1 = cos ( θ P 1 ) 0 sin ( θ P 1 ) 0 1 0 - sin ( θ P 1 ) 0 cos ( θ P 1 ) ]]> ③对于三维模型的变形区和过渡区中属于骨骼OB的每一个网格顶点,其局部坐标写为P2,从步骤(11)的计算结果中获取该网格顶点与关节点O构成的向量在骨骼OB上的投影值lP2,从步骤(12)的计算结果中获取该网格顶点对应的区域的变形区和过渡区中且属于骨骼OA的网格顶点与关节点O构成的向量,在骨骼OA上的投影值的最小值l1′以及属于骨骼OB的网格顶点与关节点O构成的向量在骨骼OB上的投影值中的最小值l2′,其中该网格顶点对应的区域从步骤(10)的划分结果中获得;④点P2围绕骨骼OA的旋转角θP2=w1×(L1-l1′+lP2-l2′)/(L1-l1′+L2-l2′)-w1,顶点P2扭转变形后对应点的局部坐标P2′=P2·RP2T,其中旋转矩阵RP2为:R P 2 = cos ( θ P 2 ) 0 sin ( θ P 2 ) 0 1 0 - sin ( θ P 2 ) 0 cos ( θ P 2 ) ]]> (14)使用如下方法计算三维模型的非变形区域的顶点在扭转变形后的局部坐标,其中扭转变形角度为w1,对于三维模型非变形区域内属于骨骼OA的每一个网格顶点,其变形前局部坐标为P,该顶点变形后的局部坐标P′=P·R1T,其中旋转矩阵R1为:R 1 = cos ( - w 1 ) 0 sin ( - w 1 ) 0 1 0 - sin ( - w 1 ) 0 cos ( - w 1 ) ]]> 对于三维模型非变形区域内属于骨骼OB的每一个网格顶点,其局部坐标在变形前后不变;(15)使用如下方法计算变形后三维模型对应的局部坐标系到世界坐标系的变换矩阵F1′:F1′为4×4矩阵,F 1 ′ = α ′ T β ′ T γ ′ T μ o ′ T 0 0 0 1 , ]]> 其中上标T表示矩阵转置操作,并且,向量向量γ′=γ″/|γ″|,向量α′=β′×γ′,μo′为关节点O变形后在世界坐标系中的坐标的向量表示,A2、O2、B2为关节点A、O、B变形后在世界坐标系中的坐标;根据获得的三维模型每一个网格顶点的局部坐标以及三维模型变形后局部坐标系到世界坐标系的变换矩阵,绘制变形后的三维模型,完成三维模型的扭曲变形。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201010216585.2/,转载请声明来源钻瓜专利网。