[发明专利]一种基于圆弧曲线的三维模型弯曲变形方法无效
申请号: | 201010216593.7 | 申请日: | 2010-07-02 |
公开(公告)号: | CN101872489A | 公开(公告)日: | 2010-10-27 |
发明(设计)人: | 郝云生;李仲君;李凤霞;介飞;张庆弋 | 申请(专利权)人: | 北京理工大学 |
主分类号: | 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在世界坐标系中的坐标的向量表示;(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)根据如下方法计算该三维模型每一个网格顶点与关节点O构成的向量在对应的骨骼上的投影值,①对于三维模型内属于骨骼OA的每一个网格顶点,该网格顶点与关节点O构成的向量在骨骼OA上的投影值等于y,y来自该网格顶点的局部坐标P=(x,y,z);②对于三维模型内属于骨骼OB的每一个网格顶点,该网格顶点与关节点O构成的向量在骨骼OB上的投影值为P2·μB′/|μB′|,其中P2为该网格顶点局部坐标;(9)三维模型的每个网格顶点对应的圆弧曲线的圆心局部坐标O′=(d/cos(υ))·γ,圆心角θ=π-υ×2,点O′到骨骼OA的距离r=d·tan(υ),其中γ=γ′/|γ′|,γ′=(α+b)/2,υ=arccos(α·b)/2,而α=μB′/|μB′|,b=(0,1,0);(10)对于三维模型变形区的每一个网格顶点,该顶点对应的t值为
该顶点在对应圆弧曲线上的位置参数ratio值
其中P′为该顶点在平面AOB上的投影点的局部坐标,该顶点的局部坐标写为P=(x,y,z),则P′=(x,y,0),向量χ=(-1,0,0);获取所有t值中的最大值tMAX和最小值tMIN;(11)根据如下方法计算三维模型过渡区中每一个网格顶点对应的t值,①对于三维模型过渡区中属于骨骼OA的每一个网格顶点,该顶点对应的t值为-x,其中该网格顶点的局部坐标为P1=(x,y,z);②对于三维模型过渡区中属于骨骼OB的每一个网格顶点,该顶点对应的t值为
其中P2′为该顶点在平面AOB上的投影点的局部坐标,该网格顶点的局部坐标为P2=(x,y,z),则P2′=(x,y,0),点C坐标为d·α;(12)使用如下方法计算三维模型的变形区域的顶点在弯曲变形后的局部坐标,其中弯曲变形角度为w2,①若θ+w2<0,则变形后的圆心角θ′=-(θ+w2),否则θ′=θ+w2,三维模型中在变形过程中长度保持不变的圆弧对应t值为:tC=d·[θcot(θ/2)-θ′cot(θ′/2)]/(θ′-θ);②变形后三维模型的变形区中所有网格顶点的t值中的最小值t′MIN=tC-tm,其中tm=(tMAX-tMIN)/2;③若tC+tm<[d/sin(θ′/2)]·[1-cos(θ′/2)],则变形后三维模型的变形区中所有网格顶点的t值中的最大值t′MAX=[d/sin(θ′/2)]·[1-cos(θ′/2)],否则t′MAX=tC+tm;④变形后三维模型的每个网格顶点对应的圆弧曲线的圆心局部坐标O″=(x0,y0,0),其中x0=d·cot(θ′/2),y0=d,圆弧曲线的半径r′=x;⑤对于三维模型变形区的每一个网格顶点,该网格顶点变形前局部坐标写为P=(x,y,z),从步骤(10)的计算结果中获得该顶点的t值t1,该顶点变形后的t值为t2=t′MIN+(t′MAX-t′MIN)·(t1-tMIN)/(tMAX-tMIN),从步骤(10)的计算结果中获得该顶点的ratio值τ,该顶点变形后的局部坐标P′=(x′,y′,z′),其中x′=x0+(r′+t2)·cos(π+θ′·τ),y′=y0+(r′+t2)·sin(π+θ′·τ),z′=z;(13)使用如下方法计算三维模型的过渡区域的顶点在弯曲变形后的局部坐标,其中弯曲变形角度为w2,①对于三维模型过渡区域内属于骨骼OA的每一个网格顶点P1,从步骤(8)中步骤①的计算结果中获取该顶点与关节点O构成的向量在骨骼OA上的投影值lP1,从步骤(11)中步骤①的计算结果中获取该顶点的t值tP1;②在三维模型的变形区域中变形前t值为tP1的网格顶点在变形后t值的增量σ=t′MIN+(t′MAX-t′MIN)·(tP1-tMIN)/(tMAX-tMIN)-tP1,顶点P1变形后的t值t′P1=tP1+σ×(L1-lP1)/(L1-d);③顶点P1变形前局部坐标写为(x1,y1,z1),顶点P1变形后的局部坐标为P1′=(-t′P1,y1,z1);④对于三维模型过渡区域内属于骨骼OB的每一个网格顶点P2,从步骤(8)中步骤②的计算结果中获取该顶点与关节点O构成的向量在骨骼OB上的投影值tP2,从步骤(11)中步骤②的计算结果中获取该顶点的t值tP2;⑤在三维模型的变形区域中变形前t值为tP2的网格顶点在变形后t值的增量σ′=t′MIN+(t′MAX-t′MIN)·(tP2-tMIN)/(tMAX-tMIN)-tP2,顶点P2变形后的t值t′P2=tP2+σ′×(L2-lP2)/(L2-d);⑥顶点P2变形后的局部坐标P2′=(x2′,y2′,z2),其中z2为顶点P2变形前的局部坐标中的z坐标,x2′和y2′来自顶点P2变形后在平面AOB上的投影点的局部坐标P2″=(x2′,y2′,0),其中P2″=lP2·α′+t′P2·γ′,α′=(cos(θ′-π/2),sin(θ′-π/2),0),
C′=d·α′:(14)使用如下方法计算三维模型的非变形区域的顶点在弯曲变形后的局部坐标,其中弯曲变形角度为w2,对于三维模型非变形区域内属于骨骼OA的每一个网格顶点,其局部坐标在变形前后不变;对于三维模型非变形区域内属于骨骼OB的每一个网格顶点,其变形前局部坐标为P,该顶点变形后的局部坐标P′=P·R1T,旋转轴方向向量写为ρ1=(x,y,z),则旋转矩阵R1为:R 1 = ( 1 - cos ( w ) ) x 2 + cos ( w ) ( 1 - cos ( w ) ) xy - sin ( w ) z ( 1 - cos ( w ) ) xz + sin ( w ) y ( 1 - cos ( w ) ) xy + sin ( w ) z ( 1 - cos ( w ) ) y 2 + cos ( w ) ( 1 - cos ( w ) ) yz - sin ( w ) x ( 1 - cos ( w ) ) xz - sin ( w ) y ( 1 - cos ( w ) ) yz + sin ( w ) x ( 1 - cos ( w ) ) z 2 + cos ( w ) ]]> 其中旋转角w=w2,ρ1=(0,0,1);(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/201010216593.7/,转载请声明来源钻瓜专利网。
- 上一篇:一种衬套加工工艺
- 下一篇:一种面向关联规则挖掘的隐私数据保护方法