CN106940898A - 混合数据模型在建筑物三维建模中的应用 - Google Patents
混合数据模型在建筑物三维建模中的应用 Download PDFInfo
- Publication number
- CN106940898A CN106940898A CN201710129268.9A CN201710129268A CN106940898A CN 106940898 A CN106940898 A CN 106940898A CN 201710129268 A CN201710129268 A CN 201710129268A CN 106940898 A CN106940898 A CN 106940898A
- Authority
- CN
- China
- Prior art keywords
- octree
- node
- building
- cube
- model
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Structural Engineering (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Civil Engineering (AREA)
- Computational Mathematics (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
混合数据模型在建筑物三维建模中的应用,属于三维建模技术领域。本发明对三维空间数据模型进行了深入研究,根据建筑物特点提出了一种基于八叉树和NURBS的混合数据模型。混合模型采用了八叉树作为整体描述,利用了NURBS描述实体的不规则曲面。存储结构采用扩展节点和混合式的八叉树结构,编码方法采用八进制前缀编码技术。根据混合模型设计了建筑物三维建模的数据结构,利用OpenGL实现了建筑物三维建模和可视化系统。实验结果表明,模型系统体现八叉树和NURBS的优点,具有一定的实用性和较好的可视化效果。
Description
技术领域
本发明涉及一种混合数据模型在建筑物三维建模中的应用,属于三维建模技术领域。
背景技术
建筑物是城市中的主要地物,建筑物三维建模是计算机图形学、地理信息系统、摄影测量学及其相关学科研究的热点,并在虚拟现实、复杂场景设计、计算机视觉和三维GIS等领域得到了广泛应用,建筑物三维建模方法直接影响到城市三维可视化的速度和效果,如何快捷、逼真地构建建筑物三维模型是很多研究人员重点研究的课题。
按照模型的存储元素类型分类,三维空间数据模型可分为栅格数据模型、矢量数据模型、栅格和矢量混合模型3类。按照模型的构成元素分类,三维空间数据模型可分为基于面元的模型、基于体元的模型和面元体元混合模型3类。
基于面元的模型包括格网(Grid)、不规则三角形格网(TIN)、线框(Wire Frame)、边界表示(Boundary Representation)、断面(Section)和参数函数表示(ParameterFunction)等。
基于体元的模型包括四面体格网(TEN)、八叉树(Octree)、结构实体几何法(CSG)、三维栅格(Array)、块段(Block)、六面体(Hexahedral)、多面体(Polyhedral)和棱柱体(Prism)等。
基于面元模型的优点为数据存储量小,建模快捷,实体显示和更新的速度快,不足之处为不能描述实体的内部属性,难以进行实体的三维空间分析和查询。基于体元模型的优点为适于空间操作和分析,不足之处为数据结构复杂,存储空间大,建模速度慢。
八叉树体素分解是将空间三维物体逐级分解,最终形成八叉树体素表示的结构。八叉树的主要优点是可以方便地实现物体的并、交、差等集合运算,适用于较规则的实体的建模。
参数函数表示的指导思想是利用有限的空间数据,构造一个函数的解析式,用这个解析式来生成新的空间点,用以逼近原有物体。参数函数表示包括解析函数模型和非解析函数模型。解析函数模型的优点为数学运算简便、数据存储量小,但复杂的空间对象很难用统一的函数参数方程来表达。为了克服解析函数的局限性,人们提出了非解析函数。B样条函数是比较实用的参数函数,具有存储量小、分析运算速度快、空间几何不变性等特点,是构建三维空间实体边界曲面的有效方法。
发明内容
本发明提供一种在建筑物三维建模中运用的混合数据模型,混合模型采用了八叉树作为整体描述,利用了NURBS描述实体的不规则曲面,存储结构采用扩展节点和混合式的八叉树结构,编码方法采用八进制前缀编码技术,根据混合模型设计了建筑物三维建模的数据结构。
本发明的大体思路为首先利用八叉树对建筑物实体V进行三维空间分割,当分割后的建筑物子体位于实体边界且外形不是规则立方体时,采用NURBS曲面描述该体元的表面,然后用一个属性值实现八叉树与NURBS曲面的链接,建立混合模型,根据混合模型设计建筑物三维建模的数据结构,存储结构采用扩展节点和混合式的八叉树结构,编码方法采用八进制前缀编码技术,最后进行实体的三维建模。
为了实现建筑物三维建模的问题,本发明提供了一种基于八叉树与NURBS曲面相结合的混合数据模型。该模型的具体构建过程包括:
1)输入一个建筑物实体V,利用八叉树对建筑物实体V进行三维空间分割,当分割后的建筑物子体位于实体边界且外形不是规则立方体时,采用NURBS曲面描述该体元的表面,具体步骤如下:
①通过用树结构对模型进行递归,按X、Y、Z,3个不同方向,将所要表示的三维空间实体V分割为8个大小相等的子立方体。然后根据每个子立方体中所含的目标来决定是否对子立方体继续进行8等分的划分。一直划分到每个子立方体被一个目标所充满,或没有目标,或其大小已成为预先定义的不可再分的体素为止。八叉树每个节点有8个子节点或者没有子节点。若立方体未被某个目标填满,则需要继续划分。当立方体被某个目标填满或者立方体中没有目标时,都不需继续划分。八叉树每个维度每划分一次,其分辨率都将增大到原来的两倍。在边界灰度节点中加入子体的面、边、顶点信息,从而形成扩展的八叉树结构。
②采用八叉树空间分解法生成曲面离散点集,根据空间曲面的大小,得到一个包围整个空间曲面的立方体包围盒,将该包围盒作为八叉树的根节点来初始化八叉树数据结构。
③将包围盒分解成8个子区域,作为大立方体的8个子节点,生成子体曲面上的空间离散点集。
④空间分割时注意采集实体不规则部分的外围散点,将不规则体元剖分成参数函数曲面,生成子体的NURBS曲面。
2)用一个属性值实现八叉树与NURBS曲面的链接,建立混合模型,若八叉树某节点编码的属性值为N,表示该节点关联一个局部的NURBS曲面。通过节点与对应的8个子节点体内的特征点相结合,形成局部NURBS曲面,实现时采用网格细化和求交切割的方法,用不规则体元填充八叉树与表面模型之间的空隙,完成模型的自适应分割。
3)根据混合模型设计建筑物三维建模的数据结构,存储结构采用扩展节点和混合式的八叉树结构,编码方法采用八进制前缀编码技术,具体步骤如下:
①在八叉树的上层使用指针式结构建立节点的索引。
②在下层按节点编码的大小排序,建立该局部空间内包含的所有非空叶节点的线性表。
③对同一父节点的8个兄弟节点,其具有最小(x,y,z)值的节点编号为0,相邻兄弟节点的编号沿x方向增加1,沿y方向增加2,沿z方向增加4,并将父节点的编码作为其8个子节点编码的前缀。为保证八叉树中每一节点编码的长度相同,在编码后增加一串区别于0~7八进制数的字符“T”,使每个节点编码的长度均为树的最大深度H。节点编码可表示为q1q2…qiTT…T,其中q1,q2,…,qi∈{0,1,…,7},0≤i≤H。显然,q1q2…qn表示了空间最低层次(第n层)立方体网格单元,q1q2…qiTT…T表示了空间分割至第i层时的立方体网格。
4)利用OpenGL实现建筑物三维建模和可视化系统。
附图说明
图1是八叉树分割方式的方法结构示意图。
图2是NURBS对曲线和曲面的模拟方式示意图。
图3是混合三维数据模型的分割及模拟方式的结构示意图。
图4是三维模型。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
对弧面形状的三维空间实体进行分割,构建八叉树结构,分割方法参见图1。八叉树每个节点有8个子节点或者没有子节点。图1(c)中,小圆圈表示该立方体未被某个目标填满,需要继续划分。灰度小矩形表示该立方体被某个目标填满,空白小矩形表示该立方体中没有目标,这两种情况下都不需继续进行空间划分。将实体转换为八叉树结构时,在边界灰度节点中加入子体的面、边、顶点信息,从而形成扩展的八叉树结构。
当分割后的建筑物子体位于实体边界且外形不是规则立方体时,设置该子体的属性值为N,表示该节点关联一个局部的NURBS曲面,采用NURBS曲面描述该体元的表面。通过节点与对应的8个子节点体内的特征点相结合,形成局部NURBS曲面。图2为NURBS拟合曲线和曲面的示意图。基于八叉树和NURBS曲面建立的混合数据模型如图3所示。
根据八叉树-NURBS混合三维数据模型,采用面向对象的程序设计语言C++为建筑物设计相应的数据结构,其形式化表示如下:
class BuildingObject{//建筑物对象
private:
int buildingID;//建筑物编号
float length;//建筑物主体长
float width;//建筑物主体宽
float height;//建筑物主体高
float roofheight;//建筑物屋顶高
float ridgelength;//建筑物屋脊长
TreeNode octree[8];//定义8个子八叉树
public:
void initialize();
Octree*CreatOctree()//八叉树生成函数
Nurbs*pNurbs CreatNURBS(NurbsPoint**point)//NURBS曲面生成函数};
树节点的数据结构:
struct TreeNode{//八叉树节点
long code;//节点编码
int size;//节点大小
int type;//属性
int layer;//节点所在层
int index;//节点在兄弟节点中的序号
struct TreeNode*pParent;//父节点指针
struct TreeNode*pChd[8];//子节点指针
bool leaf;//是否为叶子节点
bool Polygon;//节点是否关联NURBS曲面对象
NurbsPoint**point;//NURBS曲面控制点,用指
针定义二维动态数组
int nNurebsCtrl;//NURBS曲面控制点数
Nurbs*pNurbs;//关联NURBS曲面指针
int NurbsObjectID;//曲面对象的ID码
}
采用扩展节点(面、边、顶点)和混合式的八叉树结构进行存储,在八叉树的上层使用指针式结构建立节点的索引,而在下层按节点编码的大小排序,建立该局部空间内包含的所有非空叶节点的线性表。减少了存储空间,又提高了显示的精度和搜索效率。
利用OpenGL技术实现实体的三维建模和可视化。生成如图4所示的三维模型。
对于本例中的弧面形状的建筑物,采用混合模型对三维空间实体的分割次数远远小于八叉树模型,为八叉树模型的1/8左右。混合模型的存储量也比八叉树模型少50%以上,相应的模型显示速度提高了20%,模型的精度也有所提高。
Claims (4)
1.混合数据模型在建筑物三维建模中的应用,其特征在于,步骤如下:
1)输入一个建筑物实体V;
2)利用八叉树对建筑物实体V进行三维空间分割,当分割后的建筑物子体位于实体边界且外形不是规则立方体时,采用NURBS曲面描述该体元的表面;
3)用一个属性值实现八叉树与NURBS曲面的链接,建立混合模型;
4)根据混合模型设计建筑物三维建模的数据结构,存储结构采用扩展节点和混合式的八叉树结构,编码方法采用八进制前缀编码技术;
5)利用OpenGL实现建筑物三维建模和可视化系统。
2.如权利要求1所述的方法,其特征在于,所述步骤2)具体为:
①通过用树结构对模型进行递归,按X、Y、Z,3个不同方向,将所要表示的三维空间实体V分割为8个大小相等的子立方体;然后根据每个子立方体中所含的目标来决定是否对子立方体继续进行8等分的划分;一直划分到每个子立方体被一个目标所充满,或没有目标,或其大小已成为预先定义的不可再分的体素为止;八叉树每个节点有8个子节点或者没有子节点;若立方体未被某个目标填满,则需要继续划分;当立方体被某个目标填满或者立方体中没有目标时,都不需继续划分;八叉树每个维度每划分一次,其分辨率都将增大到原来的两倍;将实体转换为八叉树结构时,在边界灰度节点中加入子体的面、边、顶点信息,从而形成扩展的八叉树结构;
②采用八叉树空间分解法生成曲面离散点集,根据空间曲面的大小,得到一个包围整个空间曲面的立方体包围盒,将该包围盒作为八叉树的根节点来初始化八叉树数据结构;
③将包围盒分解成8个子区域,作为大立方体的8个子节点,生成子体曲面上的空间离散点集;
④空间分割时注意采集实体不规则部分的外围散点,将不规则体元剖分成参数函数曲面,生成子体的NURBS曲面。
3.如权利要求1所述的方法,其特征在于,所述步骤3)具体为:
①若八叉树某节点编码的属性值为N,表示该节点关联一个局部的NURBS曲面;通过节点与对应的8个子节点体内的特征点相结合,形成局部NURBS曲面;
②实现时采用网格细化和求交切割的方法,用不规则体元填充八叉树与表面模型之间的空隙,完成模型的自适应分割。
4.如权利要求1所述的方法,其特征在于,所述步骤4)具体为:
①在八叉树的上层使用指针式结构建立节点的索引;
②在下层按节点编码的大小排序,建立该局部空间内包含的所有非空叶节点的线性表;
③对同一父节点的8个兄弟节点,其具有最小(x,y,z)值的节点编号为0,相邻兄弟节点的编号沿x方向增加1,沿y方向增加2,沿z方向增加4,并将父节点的编码作为其8个子节点编码的前缀;为保证八叉树中每一节点编码的长度相同,在编码后增加一串区别于0~7八进制数的字符“T”,使每个节点编码的长度均为树的最大深度H;节点编码可表示为q1q2…qiTT…T,其中q1,q2,…,qi∈{0,1,…,7},0≤i≤H;显然,q1q2…qn表示了空间最低层次立方体网格单元,q1q2…qiTT…T表示了空间分割至第i层时的立方体网格。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710129268.9A CN106940898A (zh) | 2017-03-06 | 2017-03-06 | 混合数据模型在建筑物三维建模中的应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710129268.9A CN106940898A (zh) | 2017-03-06 | 2017-03-06 | 混合数据模型在建筑物三维建模中的应用 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106940898A true CN106940898A (zh) | 2017-07-11 |
Family
ID=59469527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710129268.9A Pending CN106940898A (zh) | 2017-03-06 | 2017-03-06 | 混合数据模型在建筑物三维建模中的应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106940898A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165311A (zh) * | 2018-07-23 | 2019-01-08 | 广州都市圈网络科技有限公司 | 阶梯专题图生成方法 |
CN109544650A (zh) * | 2018-11-07 | 2019-03-29 | 苏州工业园区格网信息科技有限公司 | 基于三维空间剖分的地理坐标压缩编解码方法 |
CN112464308A (zh) * | 2020-11-10 | 2021-03-09 | 杭州群核信息技术有限公司 | 一种基于异形空间的快速建模和设计方法 |
-
2017
- 2017-03-06 CN CN201710129268.9A patent/CN106940898A/zh active Pending
Non-Patent Citations (2)
Title |
---|
王育坚等: "基于八叉树空间分割的NURBS曲面重构方法", 《计算机工程与设计》 * |
王育坚等: "混合数据模型在建筑物三维建模中的应用", 《武汉理工大学学报(信息与管理工程版)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165311A (zh) * | 2018-07-23 | 2019-01-08 | 广州都市圈网络科技有限公司 | 阶梯专题图生成方法 |
CN109544650A (zh) * | 2018-11-07 | 2019-03-29 | 苏州工业园区格网信息科技有限公司 | 基于三维空间剖分的地理坐标压缩编解码方法 |
CN109544650B (zh) * | 2018-11-07 | 2020-05-05 | 苏州工业园区格网信息科技有限公司 | 基于三维空间剖分的地理坐标压缩编解码方法 |
CN112464308A (zh) * | 2020-11-10 | 2021-03-09 | 杭州群核信息技术有限公司 | 一种基于异形空间的快速建模和设计方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105069020B (zh) | 自然资源数据三维可视化方法和系统 | |
CN101158966B (zh) | 一种基于矢量和栅格混合表示的城市环境量化数据组织方法 | |
CN103903061B (zh) | 三维矿产资源预测评价中信息综合处理装置及其方法 | |
CN102855662A (zh) | 海洋环境的可视化方法 | |
KR20100136604A (ko) | 3차원 지형 영상 실시간 가시화 시스템 및 이의 방법 | |
CN109118588B (zh) | 一种基于块分解的彩色lod模型自动生成方法 | |
CN102663800A (zh) | 一种顾及城市意象的城市建筑综合与渲染的方法 | |
Boguslawski | Modelling and analysing 3d building interiors with the dual half-edge data structure | |
CN114820975B (zh) | 基于全要素参数符号化的三维场景仿真重构系统及方法 | |
Raper | Key 3D modelling concepts for geoscientific analysis | |
CN106940898A (zh) | 混合数据模型在建筑物三维建模中的应用 | |
Khayyal et al. | Creation and spatial analysis of 3D city modeling based on GIS data | |
CN113178004A (zh) | 一种基于超核八叉树海量点云显示方法 | |
Wenzhong | Development of a hybrid model for three-dimensional GIS | |
Du | Application of CAD aided intelligent technology in landscape design | |
CN117523125A (zh) | 一种建筑物三维体块模型快速构建方法 | |
Cui et al. | A voxel-based octree construction approach for procedural cave generation | |
CN108345688A (zh) | 一种城市设计的数字化转译及应用方法 | |
CN114565730A (zh) | 地图矢量样本的处理方法、设备和计算机可读存储介质 | |
CN113486416A (zh) | 一种3d建筑楼层分层的实现方法 | |
Giertsen et al. | 3D Visualization for 2D GIS: an Analysis of the Users' Needs and a Review of Techniques | |
CN117392335B (zh) | 三维面元地质模型向三维体元地质模型的转换方法 | |
Crumley | Voxel-space shape grammars | |
CN110660114B (zh) | 一种复垦竣工图的界址点表批量生产方法 | |
Zhou et al. | Compressing Aerodynamic Hazard Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170711 |
|
WD01 | Invention patent application deemed withdrawn after publication |