一种基于骨架草图绘制的三维建模方法转让专利

申请号 : CN200910078577.3

文献号 : CN101493954B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡事民栾鹏

申请人 : 清华大学

摘要 :

本发明公开了一种基于骨架草图绘制的三维建模方法,所述方法包括以下步骤:S1,绘制一条基础曲线,即为主骨架线,作为将来生成网格模型的基础路径;S2,在所述主骨架线的基础上,根据想要生成模型的形状,沿着该主骨架线的方向,垂直地绘制一条或多条支撑线,用于控制网格模型的膨胀细节;S3,根据想要生成模型的形状,绘制封闭的截曲线;S4,根据所述主骨架线、支撑线和截曲线创建三维模型。本发明在绘制线条的时候更简单方便,生成的模型更加规则、光滑。

权利要求 :

1.一种基于骨架草图绘制的三维建模方法,其特征在于,所述方法包括以下步骤:S1,绘制一条基础曲线,即为主骨架线,作为将来生成网格模型的基础路径;

S2,在所述主骨架线的基础上,根据想要生成模型的形状,沿着该主骨架线的方向,垂直地绘制一条或多条支撑线,用于控制网格模型的膨胀细节;

S3,根据想要生成模型的形状,绘制封闭的截曲线;

S4,根据所述主骨架线、支撑线和截曲线创建三维模型;

步骤S4中,利用扫描曲面的方法创建三维模型;

创建三维模型具体包括以下步骤:

对主骨架线进行映射处理,沿着曲线方向,以曲线的长度为变量,将二维的主骨架曲线映射到新二维坐标系的x轴上,再将每一条支撑线映射到新二维坐标系的一个点中,该点的x坐标为二维骨架曲线对应的x值,y坐标为支撑线长度;

以所有支撑线映射的坐标为节点,采用样条插值的方法算出主骨架线上每一点的支撑长度;

按照一定的步长,沿着主骨架线的方向,根据之前算出的每一节点的支撑长度,以所述截曲线为膨胀形状进行网格膨胀。

2.如权利要求1所述的基于骨架草图绘制的三维建模方法,其特征在于,在步骤S4之后还包括:S5,根据想要生成模型的形状对步骤S4创建的三维模型进行修改。

3.如权利要求2所述的基于骨架草图绘制的三维建模方法,其特征在于,在步骤S5之后还包括:S6,重复步骤S1~S5的操作,得到一系列三维模型,并进行组合,融合或粘贴。

说明书 :

一种基于骨架草图绘制的三维建模方法

技术领域

[0001] 本发明涉及图形学领域,特别涉及到一种基于骨架草图绘制的三维(3D)建模方法。

背景技术

[0002] 自由形态建模是是三维建模系统中的重要组成部分,这种建模方式无论从使用人群、设计要求,到应用领域,都有着与其它的三维草图技术明显不同之处。自由形态模型的使用者不是专业设计师,而是所有对此感兴趣的用户,甚至是低龄的小孩,这就需要自由形态建模系统从设计上更加容易上手,没过于繁琐的提示过程和控件按钮。而由于自由形态建模系统的简易性和曲线的随意性,其应用领域主要在玩具设计市场和简笔画绘图软件方面。
[0003] 1999年,日本东京大学的Takeo Igarashi第一次设计出了基于草绘的三维自由形态设计系统——Teddy,这种交互系统放弃了其它三维建模系统“精确制图”的思想,允许用户绘制的自由曲线,并采用了一种曲面膨胀算法,将用户输入的草绘轮廓线进行膨胀处理,然后通过切割、光顺等手势操作对模型进行编辑修改,使之逐步达到设计者的初始意图。从此,基于自由曲线的轮廓建模已经被越来越多的学者所重视,也成为了如今图形学领域中一个热点研究方向。当前自由形态设计方法的草图设计都是待生成模型的轮廓曲线,而勾勒轮廓的过程本身不仅难于控制,也容易增加用户的负担。

发明内容

[0004] 本发明的目的是提供一种在绘制线条的时候更简单方便,生成的模型更加规则、光滑的基于骨架草图的3D建模方法。
[0005] 为达到上述目的,本发明的技术方案提供一种基于骨架草图绘制的三维建模方法,所述方法包括以下步骤:
[0006] S1,绘制一条基础曲线,即为主骨架线,作为将来生成网格模型的基础路径;
[0007] S2,在所述主骨架线的基础上,根据想要生成模型的形状,沿着该主骨架线的方向,垂直地绘制一条或多条支撑线,用于控制网格模型的膨胀细节;
[0008] S3,根据想要生成模型的形状,绘制封闭的截曲线;
[0009] S4,根据所述主骨架线、支撑线和截曲线创建三维模型。
[0010] 其中,在步骤S4之后还包括:
[0011] S5,根据想要生成模型的形状对步骤S4创建的三维模型进行修改。
[0012] 其中,在步骤S5之后还包括:
[0013] S6,重复步骤S1~S5的操作,得到一系列三维模型,并进行组合,融合或粘贴。
[0014] 其中,步骤S4中,利用扫描曲面的方法创建三维模型。
[0015] 其中,创建三维模型具体包括以下步骤:
[0016] 对主骨架线进行映射处理,沿着曲线方向,以曲线的长度为变量,将二维的主骨架曲线映射到新二维坐标系的x轴上,再将每一条支撑线映射到新二维坐标系的一个点中,该点的x坐标为二维骨架曲线对应的x值,y坐标为支撑线长度;
[0017] 以所有支撑线映射的坐标为节点,采用样条插值的方法算出主骨架线上每一点的支撑长度;
[0018] 按照一定的步长,沿着主骨架线的方向,根据之前算出的每一节点的支撑长度,以所述截曲线为膨胀形状进行网格膨胀。
[0019] 上述技术方案具有如下优点:本发明在绘制线条的时候更简单方便,生成的模型更加规则、光滑。
[0020] 附图说明
[0021] 图1是本发明实施例的一种一种基于骨架草图绘制的3D建模方法的流程示意图;
[0022] 图2是本发明实施例的一种基于骨架草图绘制的3D建模方法流程示意图;
[0023] 图3是本发明实施例的另一种基于骨架草图绘制的3D建模方法流程示意图。

具体实施方式

[0024] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0025] 结合图1,本实施例的基于骨架草图绘制的3D建模方法包含如下步骤:
[0026] a、主骨架线的绘制:用户绘制一条基础曲线,即为主骨架线,作为将来生成网格模型的基础路径。
[0027] b、支撑线的绘制:在a中主骨架线的基础上,用户根据想要生成模型的形状,沿着该主骨架线的方向,垂直地绘制支撑线,对于每条主骨架线,用户可以绘制多条支撑线控制网格模型的膨胀细节。
[0028] c、截曲线的绘制:用户可以选择特定的曲线形状,例如椭圆等,或者手工绘制曲线,该曲线即为将生成网格模型的截曲线形状,截曲线为封闭曲线。
[0029] d、模型建立:根据用户在a绘制的主骨架线、b绘制的支撑线,以及c绘制的截曲面形状创建三维模型。创建出的模型具有良好的光滑性,在这个部分中,a中绘制的主骨架线和b中绘制的支撑线构成了待生成模型的侧面轮廓,而c中绘制的截曲面形状构成了待生成模型的截面轮廓,方法采用sweep surface(扫描曲面)的方法,沿着主骨架线的方向膨胀出网格模型。
[0030] e、模型修改:用户可以利用两种方式修改模型,一种是传统的操作方法,例如剪切。另一种是调整主骨架线的形状修改模型。
[0031] f、融合与粘贴:用户可以重复a~e的操作,得到一系列网格模型单元,这些单元可以被任意组合,融合或粘贴。
[0032] 概括地说,为了解决上述技术问题,本发明首先允许用户输入三类信息,即a中描述的主骨架线,b中描述的支撑线以及c中描述的截曲面。主骨架线与支撑线是生成模型侧面轮廓的主要依据,而截曲面形状是生成模型截面轮廓的主要依据。在模型建立过程中,方法首先对主骨架线进行映射处理,沿着曲线方向,以曲线的长度为变量,将二维的主骨架曲线映射到新二维坐标系的x轴上,新二维坐标系是把曲线拉成直线当作坐标轴x,坐标x值表示的是某点到端点的曲线长度。y坐标就是按照该点的截曲面长度来确定。再将每一条支撑线映射到新二维坐标系的一个点中,该点的x坐标为二维骨架曲线对应的x值,y坐标为支撑线长度。接着以所有支撑线映射的坐标为节点,采用样条插值的方法算出主骨架线上每一点的支撑长度。最后,按照一定的步长,沿着主骨架线的方向,根据之前算出的每一节点的支撑长度,进行网格膨胀,膨胀形状为c中输入的截曲面。实验结果表明本方法可以方便快捷的进行三维模型创建工作,生成的模型具有很好的光滑性和规则性。
[0033] 下面以具体实例进行详细说明。
[0034] 参照图2,表示基于骨架草图绘制的3D建模方法流程步骤a~e的例子,图中表示的步骤为:
[0035] a、主骨架线的绘制:如图2的步骤1,用户想要生成饰品的模型,需要先根据饰品的形状,绘制一条基础曲线,即为主骨架线,作为将来生成网格模型的基础路径。如图所示这条主骨架线与饰品的大体形态相一致。
[0036] b、支撑线的绘制:在a中主骨架线的基础上,用户根据想要生成模型的形状,沿着该主骨架线的方向,垂直地绘制支撑线,对于每条主骨架线,用户可以绘制多条支撑线控制网格模型的膨胀细节,参考图2的步骤2,用户根据将要生成饰品模型的形状,在垂直主骨架线的方向画出几条支撑线,对比最终的结果我们可以看到,支撑线所在的位置是饰品模型宽度变化的极值点,而支撑线的长度为该点饰品模型的宽度。
[0037] c、截曲线的绘制:用户可以选择特定的曲线形状,例如椭圆等,或者手工绘制曲线,该曲线即为将生成网格模型的截曲线形状,截曲线为封闭曲线。参考图2的步骤3,饰品的模型选定为椭圆形,用户调整椭圆长宽比,控制椭圆的比率。
[0038] d、模型建立:根据用户在a绘制的主骨架线、b绘制的支撑线,以及c绘制的截曲面形状创建三维模型。创建出的模型具有良好的光滑性,在这个部分中,a中绘制的主骨架线和b中绘制的支撑线构成了待生成模型的侧面轮廓,而c中绘制的截曲面形状构成了待生成模型的截面轮廓,方法采用sweep surface的方法,沿着主骨架线的方向膨胀出网格模型,如图2的步骤4,生成的模型都是根据用户输入的主骨架线、支撑线和截曲面形状,在模型建立过程中,方法首先对主骨架线进行映射处理,沿着曲线方向,以曲线的长度为变量,将二维的主骨架曲线映射到新二维坐标系的x轴上,再将每一条支撑线映射到新二维坐标系的一个点中,该点的x坐标为二维骨架曲线对应的x值,y坐标为支撑线长度。方法接着以所有支撑线映射的坐标为节点,采用样条插值的方法算出主骨架线上每一点的支撑长度。最后,方法按照一定的步长,沿着主骨架线的方向,根据之前算出的每一节点的支撑长度,进行网格膨胀,膨胀形状为c中输入的截曲面。
[0039] e、模型修改:用户可以利用两种方式修改模型,一种是传统的操作方法,例如剪切。另一种是调整主骨架线的形状修改模型,如图2的步骤5所示,这种方法修改了主骨架线的走势,由此改变了生成三维模型的形状。
[0040] 参照图3,表示基于骨架草图绘制的3D建模方法流程步骤f的例子。在融合与粘贴部分,用户可以重复a~e的操作,得到一系列网格模型单元,这些单元可以被任意组合,融合或粘贴,正如图3所示,在已有的空瓶的基础上,用户想要设计一个瓶盖,只需在原有瓶子的基础上,按照上述a~e的方法设计,独立生成一个瓶盖,最后将这两部分进行简单的组合操作即可。
[0041] 从自由形态设计方法的内容和设计过程来看,二维骨骼能够很好的刻画模型的轮廓信息,独立的作为交互的输入后,充分的利用骨骼信息,就可以获得与轮廓草图类似或更好的结果。本方法用骨骼绘制替代轮廓线绘制,不仅极大地降低了用户交互的复杂性,生成的模型也更具光滑性。
[0042] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。