CN105205856B - 基于手绘的3d植物枝干建模方法 - Google Patents
基于手绘的3d植物枝干建模方法 Download PDFInfo
- Publication number
- CN105205856B CN105205856B CN201510587546.6A CN201510587546A CN105205856B CN 105205856 B CN105205856 B CN 105205856B CN 201510587546 A CN201510587546 A CN 201510587546A CN 105205856 B CN105205856 B CN 105205856B
- Authority
- CN
- China
- Prior art keywords
- limb
- diseases
- plant
- skeleton
- point set
- 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
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明涉及计算机图形处理与人机交互领域,具体涉及一种基于手绘的3D植物枝干建模算法,包括以下步骤:构建一个3D采集窗口,在该窗口内进行手绘3D植物枝干的骨架;提取3D植物骨架信息得到植物枝干的点集数据;以去噪简化后的枝干点集数据为中心构建六棱台生成不同粗细的植物枝干。本发明基于手绘的3D植物枝干建模算法可以直接手绘3D枝干骨架,不需要2D到3D的骨架转换,方法能适应多种植物的枝干重建,并且后期的参数调整灵活便捷,能够高度还原植物的特征使得重建得到的植物枝干模型更加符合原始手绘草图。
Description
技术领域
本发明涉及计算机图形处理与人机交互领域,具体涉及一种基于手绘的3D植物枝干建模方法。
背景技术
植物建模是计算机图形学研究的热点之一,也是虚拟现实的重要组成部分。由于植物种类繁多、易受外界环境影响以及人为因素干扰,所以植物的几何形态丰富多样,无法为植物寻找到一个通用的生成算法。因此植物建模与仿真一直都是计算机图形学中一个具有挑战性的课题。
目前基于手绘的植物枝干建模方法主要是由日本东京大学Okabe等提出的基于草图的手绘系统,该系统根据用户手绘出的2D平面植物骨架,使用算法生成3D枝干,但该方法在转换过程中会出现不同程度的失真,绘制的速度也较慢,不能有效表现植物枝干的多变造型。
发明内容
针对上述方法存在的问题,本发明提出一种基于手绘的3D植物枝干建模方法,通过鼠标绘制3D植物枝干的骨架,利用骨架的点集信息通过渲染窗口生成植物枝干,使生成的植物枝干模型更接近于真实的植物枝干。
为实现上述目的,本发明具体技术方案如下:一种基于手绘的3D植物枝干建模方法,包括如下步骤:
1)绘制植物的枝干骨架,即构建一个3D采集窗口,在该窗口中设定一个固定深度值,通过视角变换在不同的视平面利用鼠标绘制不同的分枝,从而得到植物的枝干骨架;
2)采集枝干骨架点,得到初始的枝干骨架3D点集数据;
3)存储枝干骨架3D点集数据,即构建一个树形存储结构存储枝干骨架3D点集数据,每一级枝干作为离该枝干最近的上一级枝干的子枝干存储;
4)利用去噪简化算法对枝干骨架3D点集数据进行数据点集去噪简化操作,得到枝干骨架的简化数据点集;
5)用枝干元将枝干骨架的简化数据点集渲染成枝干;
6)通过枝干粗细度与平滑调整算法调整枝干的局部信息,生成真实多样的3D植物枝干。
进一步地,上述步骤4)中,去噪简化算法包括如下步骤:
4.1)初始化,即设定夹角阈值,设当前节点为起始节点,转步骤4.2);
4.2)保留每个枝干的起始节点和终点,转步骤4.3);
4.3)计算当前节点与相邻点的切向夹角,转步骤4.4);
4.4)判断切向夹角与夹角阈值的大小关系,如果切向夹角小于或等于夹角阈值,则删去该当前节点,转步骤4.5),否则直接转步骤4.5);
4.5)判断枝干骨架是否遍历结束,如果遍历结束转步骤4.7),否则转步骤4.6);
4.6)选取下一个点为当前节点,转步骤4.3);
4.7)去噪简化操作结束,得到枝干骨架的简化数据点集。
进一步地,上述步骤5)中,用枝干元将简化数据点集渲染成枝干的方法包括如下步骤:
5.1)定义枝干元函数,设定简化后每点的内置半径参数;
5.2)对简化数据点集从起始点开始依次将相邻两点传入枝干元函数;
5.3)分别以相邻的两个点为圆心,内置半径参数为半径,该相邻两点构成的单位化向量作为该圆所在面的垂直方向,依次构造两个六边形;
5.4)连接两个六边形生成六棱台,即枝干元,将若干个枝干元连接起来生成一个分枝模型;
5.5)重复步骤5.2)至步骤5.4),直至数据点集的终点,生成完整的枝干模型。
进一步地,上述步骤6)中,枝干粗细度与平滑调整算法包括如下步骤:
6.1)调整枝干元六棱台的半径和长度参数,生成不同粗细的枝干;
6.2)利用曲线编辑器,生成一条平滑曲线,在曲线上添加或删除控制点;
6.3)通过鼠标拖动控制点调整曲线的形状;
6.4)调整控制点在枝干中的位置及属性值,对生成的植物枝干进行平滑处理。
跟现有方法相比,本发明的基于手绘的3D植物枝干建模方法可以直接手绘3D枝干骨架,不需要2D到3D的骨架转换;其次该方法能适应多种植物的枝干重建,并且后期的参数调整方法灵活便捷,能够高度还原植物的特征使得重建得到的植物枝干模型更加符合原始手绘草图。
附图说明
图1为基于手绘的3D植物枝干建模方法流程图。
图2为去噪简化算法流程图。
图3为实施例中枝干元函数的模型。
图4为曲线编辑器界面图。
图5为实施例中植物枝干手绘图。
图6为实施例中植物枝干显示图。
具体实施方式
下面结合附图和实施实例对本发明作进一步描述。
图1为基于手绘的3D植物枝干建模方法流程图,包括以下步骤:
1)绘制植物的枝干骨架,即构建一个3D采集窗口,在该窗口中设定一个固定深度值,通过视角变换在不同的视平面利用鼠标绘制不同的分枝,从而得到植物的枝干骨架;在本实施实例中,构建一个3D的绘图窗口,将其作为三维数据的采集区,深度值大小设定为0.5,用户通过点击按钮来切换绘制的枝干种类,然后在区域内用鼠标绘制出植物的骨架;
2)采集枝干骨架点,得到初始的枝干骨架3D点集数据;如果用户需要更为复杂、数量更多的枝干,可以使用随机算法在最后一级枝干随机生成一些子枝干,本实施例中具体做法是在最后一级枝干的点集中随机选取点,取得该点的位置和切向量,随机生成一个0到360度的随机角,该角决定了随机枝干的所在平面,再随机一个0到90度的角,该角确定了在以确定面上,随机枝干与点切向的夹角,将该点沿着得到的方向平移,得到随机枝干的骨架点集;
3)存储枝干骨架3D点集数据,构建一个树形存储结构存储枝干骨架3D点集数据,每一级枝干作为离该枝干最近的上一级枝干的子枝干存储;
4)利用去噪简化算法对枝干骨架3D点集数据进行数据点集去噪简化操作,得到枝干骨架的简化数据点集;去噪简化算法流程如图2所示,包括下面步骤:
4.1)初始化,即设定夹角阈值,本实施例中阈值设定为5度,设当前节点为起始节点,转步骤4.2);
4.2)保留每个枝干的起始点和终点,转步骤4.3);
4.3)计算当前节点与相邻点的切向夹角;转步骤4.4)
4.4)判断切向夹角与阈值的大小关系,如果切向夹角小于或等于阈值,则删去该点,转步骤4.5),否则直接转步骤4.5);
4.5)判断枝干骨架是否遍历结束,如果遍历结束转步骤4.7),否则转步骤4.6);
4.6)选取下一个点为当前节点,转步骤4.3);
4.7)去噪简化操作结束,得到枝干骨架的简化数据点集。
5)在显示窗口中,用枝干元将简化数据点集渲染成枝干;其中,用枝干元将简化数据点集渲染成枝干的方法包括如下步骤:
5.1)定义枝干元函数f(R,P,T),其中R为内置半径参数,P为点的位置坐标,T为点的切向量,通过上述3个值,可以生成以该点为中心,内置参数R为半径,并垂直于T的六边形;本实施例中,枝干元为六棱台,是由相邻两个六边形连接而成,枝干元函数模型如图3所示;
5.2)对简化数据点集从起始点开始依次将相邻两点传入枝干元函数;
5.3)分别以相邻的两个点为圆心,内置半径参数为半径,每个点的切向作为该面的垂直方向,构造两个六边形;
5.4)连接两个六边形面生成六棱台,即枝干元,将若干个枝干元连接起来生成一个分枝模型;
5.5)重复步骤5.2)至步骤5.4),直至数据点集的终点,生成完整的枝干模型。
6)通过枝干粗细度与平滑调整算法调整枝干的局部信息,生成的真实多样的3D植物枝干,其中,枝干粗细度和平滑调整算法包括如下步骤:
6.1)调整枝干元六棱台的半径和长度参数,生成不同粗细的枝干;
6.2)利用曲线编辑器,用户生成一条平滑曲线,并在曲线上添加和删除控制点;本实施例中,曲线编辑器如图4所示;
6.3)用户鼠标拖动控制点调整曲线的形状;
6.4)调整点在枝干中的位置及属性值,对生成的植物枝干进行平滑处理。
本发明具体实施例的植物枝干手绘图和显示图分别如图5和图6所示。
Claims (4)
1.一种基于手绘的3D植物枝干建模方法,其特征在于包括如下步骤:
1)绘制植物的枝干骨架,即构建一个3D采集窗口,在该窗口中设定一个固定深度值,通过视角变换在不同的视平面利用鼠标绘制不同的分枝,从而得到植物的枝干骨架;
2)采集枝干骨架点,得到初始的枝干骨架3D点集数据;
3)存储枝干骨架3D点集数据,即构建一个树形存储结构存储枝干骨架3D点集数据,每一级枝干作为离该枝干最近的上一级枝干的子枝干存储;
4)利用去噪简化算法对枝干骨架3D点集数据进行数据点集去噪简化操作,得到枝干骨架的简化数据点集;
5)用枝干元将枝干骨架的简化数据点集渲染成枝干;
6)通过枝干粗细度与平滑调整算法调整枝干的局部信息,生成真实多样的3D植物枝干。
2.如权利要求1所述的基于手绘的3D植物枝干建模方法,其特征在于所述步骤4)中,去噪简化算法包括如下步骤:
4.1)初始化,即设定夹角阈值,设当前节点为起始节点,转步骤4.2);
4.2)保留每个枝干的起始节点和终点,转步骤4.3);
4.3)计算当前节点与相邻点的切向夹角,转步骤4.4);
4.4)判断切向夹角与夹角阈值的大小关系,如果切向夹角小于或等于夹角阈值,则删去该当前节点,转步骤4.5),否则直接转步骤4.5);
4.5)判断枝干骨架是否遍历结束,如果遍历结束转步骤4.7),否则转步骤4.6);
4.6)选取下一个点为当前节点,转步骤4.3);
4.7)去噪简化操作结束,得到枝干骨架的简化数据点集。
3.如权利要求1所述的基于手绘的3D植物枝干建模方法,其特征在于所述步骤5)中,用枝干元将简化数据点集渲染成枝干的方法包括如下步骤:
5.1)定义枝干元函数,设定简化后每点的内置半径参数;
5.2)对简化数据点集从起始点开始依次将相邻两点传入枝干元函数;
5.3)分别以相邻的两个点为圆心,内置半径参数为半径,该相邻两点构成的单位化向量作为该圆所在面的垂直方向,依次构造两个六边形;
5.4)连接两个六边形生成六棱台,即枝干元,将若干个枝干元连接起来生成一个分枝模型;
5.5)重复步骤5.2)至步骤5.4),直至数据点集的终点,生成完整的枝干模型。
4.如权利要求1所述的基于手绘的3D植物枝干建模方法,其特征在于所述步骤6)中,枝干粗细度与平滑调整算法包括如下步骤:
6.1)调整枝干元六棱台的半径和长度参数,生成不同粗细的枝干;
6.2)利用曲线编辑器,生成一条平滑曲线,在曲线上添加或删除控制点;
6.3)通过鼠标拖动控制点调整曲线的形状;
6.4)调整控制点在枝干中的位置及属性值,对生成的植物枝干进行平滑处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510587546.6A CN105205856B (zh) | 2015-09-15 | 2015-09-15 | 基于手绘的3d植物枝干建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510587546.6A CN105205856B (zh) | 2015-09-15 | 2015-09-15 | 基于手绘的3d植物枝干建模方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105205856A CN105205856A (zh) | 2015-12-30 |
CN105205856B true CN105205856B (zh) | 2018-01-12 |
Family
ID=54953514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510587546.6A Expired - Fee Related CN105205856B (zh) | 2015-09-15 | 2015-09-15 | 基于手绘的3d植物枝干建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105205856B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106408655B (zh) * | 2016-09-21 | 2019-04-05 | 江苏大学 | 一种3d镂空灯罩设计方法 |
CN111612874B (zh) * | 2020-04-16 | 2023-06-13 | 江苏大学 | 一种用于绘制复杂模型的3d画板 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488226A (zh) * | 2008-01-16 | 2009-07-22 | 中国科学院自动化研究所 | 基于单次三维激光扫描的树木测量和重建方法 |
CN101847267A (zh) * | 2010-06-01 | 2010-09-29 | 中国科学院自动化研究所 | 基于深度检索的树木建模方法 |
CN101866495A (zh) * | 2010-06-01 | 2010-10-20 | 中国科学院自动化研究所 | 基于骨架点云的树木建模方法 |
CN101887596A (zh) * | 2010-06-01 | 2010-11-17 | 中国科学院自动化研究所 | 树木点云数据基于分割和自动生长的三维模型重建方法 |
-
2015
- 2015-09-15 CN CN201510587546.6A patent/CN105205856B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488226A (zh) * | 2008-01-16 | 2009-07-22 | 中国科学院自动化研究所 | 基于单次三维激光扫描的树木测量和重建方法 |
CN101847267A (zh) * | 2010-06-01 | 2010-09-29 | 中国科学院自动化研究所 | 基于深度检索的树木建模方法 |
CN101866495A (zh) * | 2010-06-01 | 2010-10-20 | 中国科学院自动化研究所 | 基于骨架点云的树木建模方法 |
CN101887596A (zh) * | 2010-06-01 | 2010-11-17 | 中国科学院自动化研究所 | 树木点云数据基于分割和自动生长的三维模型重建方法 |
Non-Patent Citations (5)
Title |
---|
A Modelling Method and User Interface for Creating Plants;Bernd Lintermann et al;《Computer Graphics Forum》;19981231;第17卷(第1期);全文 * |
Interactive Design of Botanical Trees using Freehand Sketches and Example-based Editing;Makoto Okabe et al;《Computer Graphics Forum》;20051231;第24卷(第3期);全文 * |
交互式植物建模系统;曾兰玲 等;《计算机辅助设计与图形学学报》;20091231;第21卷(第12期);全文 * |
基于手绘花瓣的花朵建模方法;濮群 等;《计算机应用研究》;20120531;第29卷(第5期);全文 * |
基于描绘单幅图像的三维树木交互建模系统;刘一松 等;《计算机应用研究》;20120630;第29卷(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105205856A (zh) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105574929A (zh) | 一种基于地面LiDAR点云数据的单株植被三维建模方法 | |
CN103606190B (zh) | 单张人脸正面照片自动转换为三维人脸模型的方法 | |
Xie et al. | Tree modeling with real tree-parts examples | |
CN106815847A (zh) | 基于激光雷达点云的树木分割方法及单棵树提取方法 | |
Zhang et al. | Data-driven synthetic modeling of trees | |
CN101650836B (zh) | 三维植物器官几何曲面自适应网格化方法及系统 | |
CN103310481A (zh) | 一种基于模糊熵迭代的点云精简方法 | |
CN103279980A (zh) | 基于点云数据的树叶建模方法 | |
WO2015149302A1 (zh) | 基于点云与数据驱动的树木模型重建方法 | |
CN105913416A (zh) | 一种自动分割三维人脸模型区域的方法 | |
CN104166748A (zh) | 一种基于关系模型的林分生长建模方法 | |
CN101783016A (zh) | 一种基于形状分析的树冠外形提取方法 | |
CN110322497A (zh) | 一种基于三维可视化的交互式点云对象提取方法 | |
CN104050720A (zh) | 点云曲面重建方法及系统 | |
CN105405163A (zh) | 一种基于多方向场的逼真的静态头发建模方法 | |
CN106960465A (zh) | 一种基于方向场和螺旋线匹配的单幅图像头发重建方法 | |
CN103745497A (zh) | 植物生长建模方法和系统 | |
CN105205856B (zh) | 基于手绘的3d植物枝干建模方法 | |
CN106909788A (zh) | 计算机气象软件中基于位势高度数据的槽线自动绘制方法 | |
Pirk et al. | Modeling plant life in computer graphics | |
CN103810750A (zh) | 一种基于人体截面环的参数化变形方法 | |
CN105261062A (zh) | 一种人物分段建模方法 | |
CN104616356B (zh) | 一种小班边界三维可视化编辑方法 | |
CN105574917A (zh) | 一种用于3d模型的法线贴图重构处理系统及处理方法 | |
US20130271460A1 (en) | Apparatus and method for generating 3d tree images |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180112 Termination date: 20180915 |