CN101866494B - 一种利用网格顶点对角色模型进行分割的方法 - Google Patents
一种利用网格顶点对角色模型进行分割的方法 Download PDFInfo
- Publication number
- CN101866494B CN101866494B CN2010102108101A CN201010210810A CN101866494B CN 101866494 B CN101866494 B CN 101866494B CN 2010102108101 A CN2010102108101 A CN 2010102108101A CN 201010210810 A CN201010210810 A CN 201010210810A CN 101866494 B CN101866494 B CN 101866494B
- Authority
- CN
- China
- Prior art keywords
- model
- bone
- vector
- mesh
- vertex
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000011218 segmentation Effects 0.000 title description 4
- 210000000988 bone and bone Anatomy 0.000 claims abstract description 72
- 239000011159 matrix material Substances 0.000 claims description 18
- 230000009466 transformation Effects 0.000 claims description 5
- 238000005452 bending Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 210000002414 leg Anatomy 0.000 description 2
- 244000309466 calf Species 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 210000000689 upper leg Anatomy 0.000 description 1
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种利用网格顶点对角色模型进行分割的方法,该方法选取原始模型中相邻的四个关节点,通过根据角色模型的骨骼信息对角色模型的网格顶点按照与关节点和骨骼的位置关系进行分类,将角色模型分割成若干个局部模型,从而可以对构成角色模型的每一个局部模型分别进行变形,以提高变形速度和变形质量,并通过从动作数据中获取局部模型对应的运动单元中的弯曲和扭转角度,实现自动变形。
Description
技术领域
本发明涉及一种对角色模型进行分割的方法,属于计算机图形学、虚拟现实技术领域。
背景技术
在三维模型的变形中,通常有以下几种变形技术:Morphing方法、FFD变形方法、基于骨骼的变形方法。Morphing方法通过插值方法实现变形,FFD变形方法通过控制包围三维模型表面的控制体实现变形,基于骨骼的变形技术通过设置模型表面网格顶点对应于骨骼的影响权值实现变形。
对于角色模型,通常有两部分信息包含在其中,表示模型几何特征的表面网格信息以及表示模型拓扑特征的模型骨骼信息。角色模型的变形通常具有以下特点:变形发生在关节点附近的区域,属于局部变形;变形由一段骨骼围绕一个关节点旋转引起,因此变形后的模型与骨骼的运动情况一致;模型对应的关节点自由度多,运动复杂,导致模型的变形控制比较复杂。
对于角色模型的变形,由于各个变形区域互相之间基本不受影响,因此,本专利提出一种按照骨骼结构将角色模型分割成若干个局部模型的方法,每个局部模型可以按照运动单元中弯曲和扭转角度分别进行变形。运动单元中包括三个关节点A、O、B,其中关节点A和O连接成骨骼OA,关节点B和O连接成骨骼OB,这样的结构称为运动单元。分割的目的是,通过将角色模型分割成若干个局部模型,并对每个局部模型分别应用较优的变形设置参数进行变形,可以获得更佳的变形效果,并且由于通过局部变形简化了变形计算,因此可以提高角色模型的变形速度。此外,还可以通过从骨骼运动数据中获取运动单元中弯曲和扭转角度实现角色模型的自动变形。
发明内容
本发明的目的是克服已有技术的缺陷,为了提高角色模型变形速度和变形效果,并将变形与角色模型的骨骼运动相结合的问题,提出一种利用网格顶点对角色模型进行分割的方法。
本发明是通过下述技术方案实现的:
首先选取原始模型中相邻的四个关节点A、O、B、C,其中关节点A和O连接成骨骼OA,关节点B和O连接成骨骼OB,关节点B和C连接成骨骼BC。
建立局部模型由以下步骤实现:
(1)在原始模型表面网格上关节点O附近选择两个顶点P1、P2,作为优选,应当使平面OP1P2与骨骼OA和骨骼OB各自的夹角大致相等,从而可以得到能够满足变形需要的分割结果。
(2)根据如下方法获得平面OP1P2的方程系数,
②n=n′/|n′|,变量s=-n·μo;其中μo表示关节点O在世界坐标系中的坐标的向量表示;·表示向量的点乘;
③V=[n,s];V存储了平面OP1P2的方程的四个系数,
平面方程的系数是指Ax+By+Cz+D=0中的A、B、C和D。
(3)在原始模型表面网格上关节点B附近选择两个顶点P1′、P2′,作为优选,应当使平面BP1′P2′与骨骼BO和骨骼BC各自的夹角大致相等,从而可以得到能够满足变形需要的分割结果。
(4)根据如下方法获得平面BP1′P2′的方程系数,
②m=n″/|n″|,变量s′=-m·μB;其中μB表示关节点B在世界坐标系中的坐标的向量表示;·表示向量的点乘;
③V′=[m,s′];V′存储了平面BP1′P2′的方程的四个系数;
(5)对原始模型的每一个三角形网格,判断其网格顶点与平面OP1P2的关系,若网格的所有顶点都与关节点A在平面OP1P2的同一侧,则判定该三角形网格属于骨骼OA,否则该三角形网格不属于骨骼OA;若原始模型中不是全部由三角形网格构成的,则需要在判断前将非三角形网格看作多个三角形组成。
判断顶点与关节点A在平面OP1P2的同一侧方法为:
对网格中的一个顶点,在世界坐标系中的坐标的向量表示为P,关节点A在世界坐标系中的坐标的向量表示为μA,
计算fP=n·P+s,fA=n·μA+s,若fP与fA同号,则判定顶点P与顶点A在平面OP1P2的同一侧,否则判定顶点P与顶点A不在平面OP1P2的同一侧。
(6)对原始模型上不属于骨骼OA的每一个三角形网格,判断其网格顶点与平面BP1′P2′的关系,若该网格的所有顶点都与关节点O在平面BP1′P2′的同一侧,则判定该三角形网格属于骨骼OB,否则该三角形网格属于骨骼BC。判断该网格的顶点与关节点O在平面BP1′P2′的同一侧的方法的原理与步骤(5)相同;
(7)对原始模型中属于骨骼OB的每一个三角形网格,使用公式3获得每一个顶点与关节点O分别构成的向量在骨骼OB上的投影值l(投影值为正时表示该投影位于骨骼OB上,反之位于骨骼OB的反向延长线上),若该三角形网格的每一个顶点所对应的投影值l都大于骨骼OB长度的一半,则判定该三角形网格在骨骼OB的后半区域,否则判定该三角形网格位于骨骼OB的前半区域。
其中,获得顶点与关节点O构成的向量在骨骼OB上的投影值l的方法如下:
(8)根据上述判定结果将原始模型分割为两个局部模型:属于骨骼OA的三角形网格以及属于骨骼OB且在骨骼OB的前半区域上的三角形网格构成局部模型M1,属于骨骼BC的三角形网格以及属于骨骼OB且在骨骼OB的后半区域上的三角形网格构成局部模型M2,然后获得两个局部模型中每个网格顶点的局部坐标,方法分别如下:
A.获得局部模型M1中每个网格顶点的局部坐标的方法如下:
①计算局部模型M1对应的局部坐标系到世界坐标系的变换矩阵F1:
其中上标T表示矩阵转置操作,
B.获得局部模型M2中每个网格顶点的局部坐标的方法如下:
①计算局部模型M2对应的局部坐标系到世界坐标系的变换矩阵F2:
其中上标T表示矩阵转置操作,
对比已有技术,本发明方法的有益效果在于,通过根据角色模型的骨骼信息对角色模型的网格顶点进行分类,将角色模型分割成若干个局部模型,从而可以对构成角色模型的每一个局部模型分别进行变形,以提高变形速度和变形质量,并通过从动作数据中获取局部模型对应的运动单元中的弯曲和扭转角度,实现自动变形。
附图说明
图1为原始三维模型及相应关节点和骨骼的示意图;
图2为分割原始模型后,建立局部模型的示意图;
图3为人体腿部的三维模型及其对应的关节点和骨骼在屏幕上的投影显示;
图4为将人体腿部的三维模型分割为局部模型M1和M2后的示意图。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步解释,本发明实质是一种是将原始模型分割为两个局部模型的方法,根据本技术方案可将角色模型分割成若干个局部模型,便于后续针对性的处理。
选取原始模型中相邻的四个关节点A、O、B、C,其中关节点A和O连接成骨骼OA,关节点B和O连接成骨骼OB,关节点B和C连接成骨骼BC,如图1所示。本发明内容部分记载的技术方案将原始模型划分成局部模型M1和局部模型M2,如附图2所示。
接下来以对人体的大腿、小腿和脚组成的三维模型进行变形为例,说明本发明的具体实施方式,该原始三维模型及其对应的关节点和骨骼在屏幕上的投影显示如图3所示。
根据本技术方案,通过用户交互对原始模型进行分割,建立局部模型的方法如下:
在关节点O附近选择两个顶点P1、P2,其中关节点O坐标为(-0.099197,0.543307,-0.151083),点P1坐标为(-0.0875814,0.515792,-0.0973924),点P2坐标为(-0.122981,0.528414,-0.112797)。计算得到平面OP1P2的方程V=(-0.131726,-0.893468,-0.429376,0.407489)。
在关节点B附近选择两个顶点P1′、P2′,其中关节点B坐标为(-0.053979,0.029863,-0.339496),点P1′坐标为(-0.0623082,0.0758197,-0.249175),点P2′坐标为(-0.0871224,0.0691930,-0.263863),计算获得平面BP1′P2′的方程V′=(-0.0288590,-0.891964,0.451185,0.178254)。
关节点A坐标为(-0.103617,0.816265,-0.070128),对三维模型的每一个网格,判断该网格所有的网格顶点是否与关节点A在平面OP1P2的同一侧,若是,则该网格属于骨骼OA,否则该网格不属于骨骼OA。
对于三维模型中不属于骨骼OA的每一个网格,判断该网格所有的网格顶点是否与关节点O在平面BP1′P2′的同一侧,若是,则该网格属于骨骼OB,否则该网格属于骨骼BC。
对于三维模型中属于骨骼OB的每一个三角形网格,判断该网格所有网格顶点与关节点O构成的向量在骨骼OB上的投影值是否大于骨骼OB长度的一半,若是,则该网格在骨骼OB的后半区域,否则该网格在骨骼OB的前半区域。
属于骨骼OA的网格以及属于骨骼OB且在骨骼OB的前半区域上的网格构成局部模型M1,属于骨骼BC的网格以及属于骨骼OB且在骨骼OB的后半区域上的网格构成局部模型M2。
计算局部模型M1和M2的局部坐标系到直接坐标系的变换矩阵以及局部模型M1和M2中每一个网格顶点的局部坐标。
原始三维模型由局部模型M1和M2构成,如图4所示。
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种利用网格顶点对角色模型进行分割的方法,其特征在于,包括以下步骤:
首先选取原始模型中相邻的四个关节点A、O、B、C,其中关节点A和O连接成骨骼OA,关节点B和O连接成骨骼OB,关节点B和C连接成骨骼BC,然后:
(1)在原始模型表面网格上关节点O附近选择两个顶点P1、P2;
(2)根据如下方法获得平面OP1P2的方程系数,
②n=n′/|n′|,变量s=-n·μo;其中μo表示关节点O在世界坐标系中的坐标的向量表示;·表示向量的点乘;
③V=[n,s];V存储了平面OP1P2的方程的四个系数,
(3)在原始模型表面网格上关节点B附近选择两个顶点P1′、P2′;
(4)根据如下方法获得平面BP1′P2′的方程系数,
②m=n″/|n″|,变量s′=-m·μB;其中μB表示关节点B在世界坐标系中的坐标的向量表示;·表示向量的点乘;
③V′=[m,s′],V′存储了平面BP1′P2′的方程的四个系数;
(5)对原始模型的每一个三角形网格,判断其网格顶点与平面OP1P2的关系,若网格的所有顶点都与关节点A在平面OP1P2的同一侧,则判定该三角形网格属于骨骼OA,否则该三角形网格不属于骨骼OA;若原始模型中不是全部由三角形网格构成的,则需要在判断前将非三角形网格看作多个三角形组成;
其中,所述判断顶点与关节点A在平面OP1P2的同一侧的方法为:
对网格中的一个顶点,在世界坐标系中的坐标的向量表示为P,关节点A在世界坐标系中的坐标的向量表示为μA,计算fP=n·P+s,fA=n·μA+s,若fP与fA同号,则判定顶点P与顶点A在平面OP1P2的同一侧,否则判定顶点P与顶点A不在平面OP1P2的同一侧;
(6)对原始模型上不属于骨骼OA的每一个三角形网格,判断其网格顶点与平面BP1′P2′的关系,若该网格的所有顶点都与关节点O在平面BP1′P2′的同一侧,则判定该三角形网格属于骨骼OB,否则该三角形网格属于骨骼BC;
(7)对原始模型中属于骨骼OB的每一个三角形网格,获得每一个顶点与关节点O分别构成的向量在骨骼OB上的投影值l;
若该三角形网格的每一个顶点所对应的投影值l都大于骨骼OB长度的一半,则判定该三角形网格在骨骼OB的后半区域,否则判定该三角形网格位于骨骼OB的前半区域;
(8)根据上述判定结果将原始模型分割为两个局部模型:属于骨骼OA的三角形网格以及属于骨骼OB且在骨骼OB的前半区域上的三角形网格构成局部模型M1,属于骨骼BC的三角形网格以及属于骨骼OB且在骨骼OB的后半区域上的三角形网格构成局部模型M2;然后获得两个局部模型中每个网格顶点的局部坐标,方法分别如下:
A.获得局部模型M1中每个网格顶点的局部坐标的方法如下:
①计算局部模型M1对应的局部坐标系到世界坐标系的变换矩阵F1:
F1为4×4矩阵,
其中上标T表示矩阵转置操作,
B.获得局部模型M2中每个网格顶点的局部坐标的方法如下:
①计算局部模型M2对应的局部坐标系到世界坐标系的变换矩阵F2:
F2为4×4矩阵,
其中上标T表示矩阵转置操作,
2.根据权利要求1所述一种利用网格顶点对角色模型进行分割的方法,其特征在于,步骤(1)中选择两个顶点P1、P2时,作为优选,应当使平面OP1P2与骨骼OA和骨骼OB各自的夹角大致相等。
3.根据权利要求2所述一种利用网格顶点对角色模型进行分割的方法,其特征在于,步骤(3)中选择两个顶点P1′、P2′时,作为优选,应当使平面BP1′P2′与骨骼BO和骨骼BC各自的夹角大致相等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102108101A CN101866494B (zh) | 2010-06-28 | 2010-06-28 | 一种利用网格顶点对角色模型进行分割的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102108101A CN101866494B (zh) | 2010-06-28 | 2010-06-28 | 一种利用网格顶点对角色模型进行分割的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101866494A CN101866494A (zh) | 2010-10-20 |
CN101866494B true CN101866494B (zh) | 2012-06-27 |
Family
ID=42958208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102108101A Expired - Fee Related CN101866494B (zh) | 2010-06-28 | 2010-06-28 | 一种利用网格顶点对角色模型进行分割的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101866494B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102842146B (zh) * | 2011-06-25 | 2015-01-07 | 湖南大学 | 一种基于构造分解法的运动数据转换方法 |
CN104102487A (zh) * | 2014-07-17 | 2014-10-15 | 福建天趣网络科技有限公司 | 一种3D游戏角色Avatar的可视化编辑方法及编辑器 |
CN107103491B (zh) * | 2017-04-11 | 2020-09-08 | 武汉大学 | 一种房价数字估计模型的构建方法 |
CN112785690B (zh) * | 2021-01-28 | 2025-01-17 | 北京爱奇艺科技有限公司 | 一种三维模型构建方法、装置、系统及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1975779A (zh) * | 2006-09-14 | 2007-06-06 | 浙江大学 | 三维人体运动数据分割方法 |
CN101276482A (zh) * | 2008-05-12 | 2008-10-01 | 北京理工大学 | 基于动态Billboard技术的三维场景绘制简化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7353151B2 (en) * | 2000-05-22 | 2008-04-01 | Kabushiki Kaisha Toyota Chuo Kenkyusho | Method and system for analyzing behavior of whole human body by simulation using whole human body |
-
2010
- 2010-06-28 CN CN2010102108101A patent/CN101866494B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1975779A (zh) * | 2006-09-14 | 2007-06-06 | 浙江大学 | 三维人体运动数据分割方法 |
CN101276482A (zh) * | 2008-05-12 | 2008-10-01 | 北京理工大学 | 基于动态Billboard技术的三维场景绘制简化方法 |
Non-Patent Citations (2)
Title |
---|
何丽君,刘勇奎,李笑牛,王晓强.三维网格模型的球面分割几何压缩算法.《计算机辅助设计与图形学学报》.2008,第20卷(第2期),193-200页. * |
李银波,洪波,高上凯,刘凯.人体CT切片图像中骨骼的分割.《生物医学工程学杂志》.2004,第21卷(第2期),169-173页. * |
Also Published As
Publication number | Publication date |
---|---|
CN101866494A (zh) | 2010-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104881557B (zh) | 一种计算机中人体服装动态仿真实现方法 | |
CN101719284B (zh) | 一种基于层次模型的虚拟人皮肤物理变形方法 | |
KR100891885B1 (ko) | 형태 변형 장치, 물체 동작 부호화 장치 및 물체 동작복호화 장치 | |
CN102968811B (zh) | 微创血管介入手术中导丝的实时运动仿真方法 | |
CN103366054B (zh) | 一种基于质点弹簧模型的衣物接缝处理和褶皱增强方法 | |
US8180613B1 (en) | Wrinkles on fabric software | |
CN101140663A (zh) | 一种服装动画计算方法 | |
CN106960459A (zh) | 角色动画中基于扩展位置动力学的蒙皮技术及权重重定位的方法 | |
CN101276482A (zh) | 基于动态Billboard技术的三维场景绘制简化方法 | |
Jin et al. | General constrained deformations based on generalized metaballs | |
CN102903138B (zh) | 一种考虑形状的二维数字角色骨架操作方法 | |
CN103700134A (zh) | 基于可控制纹理烘焙的三维矢量模型实时光影延迟着色渲染方法 | |
CN106504329A (zh) | 一种基于牙体长轴的质点弹簧模型的牙龈变形仿真方法 | |
CN101866494B (zh) | 一种利用网格顶点对角色模型进行分割的方法 | |
Chen et al. | Lattice-based skinning and deformation for real-time skeleton-driven animation | |
CN103699716B (zh) | 一种个性化三维医学图像驱动的器官虚拟显示方法 | |
Li et al. | Skeleton driven animation based on implicit skinning | |
CN116797696A (zh) | 一种角色动画的骨骼驱动方法及设备 | |
CN101872490A (zh) | 一种改进的坐标轴方向突变下的三维模型变形方法 | |
Chen et al. | Skeleton-driven surface deformation through lattices for real-time character animation | |
CN101872489A (zh) | 一种基于圆弧曲线的三维模型弯曲变形方法 | |
CN101894392B (zh) | 基于骨骼运动数据的运动单元弯曲和扭转角度分析方法 | |
CN101894389A (zh) | 一种基于旋转角插值的三维模型扭转变形方法 | |
Tejera et al. | Learning part-based models for animation from surface motion capture | |
Zuo et al. | Anatomical Human Musculature Modeling for Real-time Deformation. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120627 Termination date: 20130628 |