CN106340066B - 一种建筑物参数化三维建模方法 - Google Patents
一种建筑物参数化三维建模方法 Download PDFInfo
- Publication number
- CN106340066B CN106340066B CN201610824504.4A CN201610824504A CN106340066B CN 106340066 B CN106340066 B CN 106340066B CN 201610824504 A CN201610824504 A CN 201610824504A CN 106340066 B CN106340066 B CN 106340066B
- Authority
- CN
- China
- Prior art keywords
- slope
- seal wall
- roof
- courtyard
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/04—Architectural design, interior design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2021—Shape modification
Landscapes
- Engineering & Computer Science (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Residential Or Office Buildings (AREA)
Abstract
本发明公开了一种所述建筑物参数化三维建模方法包括:获取建筑物的规则二维底面,并参数化其正面朝向;垂直向上拉伸底面,形成立方体模型;根据底面的正面朝向将立方体模型拆分出顶面、左右两平面、正面与背面;对顶面执行屋顶建模规则;对左右两平面执行山墙建模规则;对正面与背面执行屋脸建模规则。本发明能够提供古建筑建模模块,并进一步构建古建筑民居。
Description
技术领域
本发明涉及建筑工程,特别地,涉及一种建筑物参数化三维建模方法。
背景技术
在三维地理信息系统中,为了批量、快速地进行三维建模,支持三维参数交互操作,现有技术使用城市引擎平台快速构建城市三维模型,并支持Html5的网络三维发布,可以生成独立的三维网络地理信息系统。然而,城市引擎平台中缺乏古建筑建模模块,难以构建古建筑民居。
针对现有技术中难以构建古建筑民居的问题,目前尚未有有效的解决方案。
发明内容
有鉴于此,本发明的目的在于提出一种建筑物参数化三维建模方法,能够提供古建筑建模模块,并进一步构建古建筑民居。
基于上述目的,本发明提供的技术方案如下:
根据本发明的一个方面,提供了一种建筑物参数化三维建模方法。
根据本发明提供的建筑物参数化三维建模方法包括:
获取建筑物的规则二维底面,并参数化其正面朝向;
垂直向上拉伸底面,形成立方体模型;
根据底面的正面朝向将立方体模型拆分出顶面、左右两平面、正面与背面;
对顶面执行屋顶建模规则;
对左右两平面执行山墙建模规则;
对正面与背面执行屋脸建模规则。
其中,对顶面执行屋顶建模规则包括:
将顶面按照参数化的分块数与尺寸切割为多个部分,并在每个部分规划一个双坡顶或天井;
在每个规划了双坡顶的分块部分均生成一个双坡顶结构,并按照参数化的坡顶角度与屋檐宽度调整每个双坡顶;
在每个规划了天井的分块部分均生成一个天井。
并且,在每个规划了天井的分块部分均生成一个天井包括:
任取一个规划了天井的分块部分生成一个金字塔顶,并参数化其屋顶夹角;
将金字塔顶按照XZ对称旋转或法向量逆向,使屋顶倒立;
拆分倒立金子塔顶,当规划了天井的分块位于两端时,获得三个连接外墙的侧面;当规划了天井的分块位于中间部分时,获得左右两个侧面;
当规划了天井的分块位于两端时,复制一份倒立金子塔顶的三个连接外墙的侧面,并将复制面以XYZ为中心的旋转180度,以其他规划了天井的分块部分内快速构建对称的倒立金子塔顶的三个连接外墙的侧面;
纵横切割所有倒立金子塔顶的三个连接外墙的侧面,并随机建模瓦片结构。
其中,对左右两平面执行山墙建模规则,为根据参数化的墙体基础高度和基础宽度,按照墙体的层次递增或递减规律使用迭代法建模人字墙、锅耳墙或马头墙。
并且,按照墙体的层次递增或递减规律使用迭代法建模人字墙包括:
按照参数化的屋顶夹角生成一个双坡顶结构,并使用X轴切割双坡顶结构的顶部,获得两侧的三角立面;
拆分双坡顶结构的顶部获得两侧的斜坡面,并参数化两侧基准面的变化索引值;
对公用斜坡面进行递增阶梯类装饰与上檐瓦顶。
并且,对公用斜坡面进行递增阶梯类装饰与上檐瓦顶包括:
以可调整的方式参数化指定高度、指定宽度、指定层数;
从斜坡面开始,向上依次指定每一层;
将斜坡面在该层的长度在X轴上叠加上指定宽度;
将扩大的斜坡面按XY中心对齐并在垂直水平面上拉伸指定高度,生成立方体;
拆分并提取该立方体的顶面并保留其他面;
依次指定每一层顶面进行上述操作,直到指定层数被遍历;
在递增层数的阶梯最顶端平面上添加三角瓦片并构建上檐瓦顶。
并且,在递增层数的阶梯最顶端平面上添加三角瓦片并构建上檐瓦顶包括:
依据斜坡面不同基准面,调整基准方位的索引,将两斜坡的基准面调整到一致;
按照X轴切割方式将对半设置的两个直角三角形构成大的等边三角形,其中,小三角形主要使用台函数为前后90度,左右两侧倾斜角度可参数化相同,台函数能够形成垂直与地表且立于斜坡面的体模型。
同时,按照墙体的层次递增或递减规律使用迭代法建模锅耳墙包括:
提取顶部二维平面,并为该平面指定未构架简单屋顶样式或顶部复合模型;
以可调整的方式参数化曲面角度分辨率、动态切割弧段的数量与动态切割曲面垂直高度,其中,动态切割弧段的数量与曲面角度分辨率成函数关系;
根据曲面角度分辨率与动态切割弧段的数量生成自定义屋顶变化函数;
根据曲面角度分辨率与自定义屋顶变化函数创建并修改双坡顶模型;
切割双坡顶底部曲面垂直高度的部分,获得切割模型;
拆分切割模型并获取顶面并保留其他表面;
对切割模型的顶面迭代使用自定义屋顶变化函数更新切割双坡顶模型,直到自定义屋顶变化函数收敛,其中,所述自定义屋顶变化函数为调整坡顶角度函数并获得先递减后递增的曲面效果;
提取顶面进行递增迭代。
同时,按照墙体的层次递增或递减规律使用迭代法建模马头墙包括:
以可调整的方式参数化马头墙阶层参数与马头墙装饰参数,其中,马头墙阶层参数变量包括:马头墙阶梯层数变量、统一拉伸高度、每次缩进的阶层宽度;马头墙装饰参数包括:叠层数量、叠层宽度、叠层高度、顶部瓦片角度、以及屋檐延伸长度;
根据马头墙阶层参数与马头墙装饰参数构建递减变化的马头墙阶层。
并且,根据马头墙阶层参数与马头墙装饰参数构建递减变化的马头墙阶层包括:
当马头墙阶梯层数变量为最大值时,拉伸统一高度,设置马头墙阶梯层数在每次迭代中递减,并使用拆分函数获取拉伸之后的各表面,其中,顶面进行迭代,其他面则根据需求赋予纹理或精细模型;
当马头墙阶梯层数变量大于1且小于最大值时,复制出两个顶面,一个用于截取缩进的两侧进行精细的马头墙装饰,另一个顶部面执行Y轴减少两倍的每次缩进的阶层宽度,以XY轴为中心对齐,拉伸统一高度,设置马头墙阶梯层数在每次迭代中递减,并使用拆分函数获取拉伸之后的各表面,其中,顶面进行迭代,其他面则根据需求赋予纹理或精细模型;
当马头墙阶梯层数变量为1时,同样复制出两个顶面,一个用于截取缩进的两侧进行精细的马头墙装饰,另一个顶部面执行Y轴减少两倍的每次缩进的阶层宽度,以XY轴为中心对齐,拉伸统一高度,并使用拆分函数获取拉伸之后的各表面,并根据需求赋予纹理或精细模型;
设置模型对齐朝向参数,根据模型对齐朝向参数生成马头墙的不同方向叠层以及与其对应的三角瓦片。
从上面所述可以看出,本发明提供的技术方案通过拉伸规则二维底面获得立方体模型并拆分出顶面、左右两平面、正面与背面分别执行屋顶建模规则、山墙建模规则、屋脸建模规则的技术手段,能够提供古建筑建模模块,并进一步构建古建筑民居。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例的建筑物参数化三维建模方法的流程图;
图2为根据本发明实施例的建筑物参数化三维建模方法中,建模屋顶的一个实施例;
图3为根据本发明实施例的建筑物参数化三维建模方法中,建模人字墙的一个实施例;
图4为根据本发明实施例的建筑物参数化三维建模方法中,建模锅耳墙的一个实施例;
图5为根据本发明实施例的建筑物参数化三维建模方法中,建模马头墙的一个实施例。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进一步进行清楚、完整、详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种建筑物参数化三维建模方法。
如图1所示,根据本发明实施例提供的建筑物参数化三维建模方法包括:
步骤S101,获取建筑物的规则二维底面,并参数化其正面朝向;
步骤S103,垂直向上拉伸底面,形成立方体模型;
步骤S105,根据底面的正面朝向将立方体模型拆分出顶面、左右两平面、正面与背面;
步骤S107,对顶面执行屋顶建模规则;
步骤S109,对左右两平面执行山墙建模规则;
步骤S111,对正面与背面执行屋脸建模规则。
其中,对顶面执行屋顶建模规则包括:
将顶面按照参数化的分块数与尺寸切割为多个部分,并在每个部分规划一个双坡顶或天井;
在每个规划了双坡顶的分块部分均生成一个双坡顶结构,并按照参数化的坡顶角度与屋檐宽度调整每个双坡顶;
在每个规划了天井的分块部分均生成一个天井。
并且,在每个规划了天井的分块部分均生成一个天井包括:
任取一个规划了天井的分块部分生成一个金字塔顶,并参数化其屋顶夹角;
将金字塔顶按照XZ对称旋转或法向量逆向,使屋顶倒立;
拆分倒立金子塔顶,当规划了天井的分块位于两端时,获得三个连接外墙的侧面;当规划了天井的分块位于中间部分时,获得左右两个侧面;
当规划了天井的分块位于两端时,复制一份倒立金子塔顶的三个连接外墙的侧面,并将复制面以XYZ为中心的旋转180度,以其他规划了天井的分块部分内快速构建对称的倒立金子塔顶的三个连接外墙的侧面;
纵横切割所有倒立金子塔顶的三个连接外墙的侧面,并随机建模瓦片结构。
其中,对左右两平面执行山墙建模规则,为根据参数化的墙体基础高度和基础宽度,按照墙体的层次递增或递减规律使用迭代法建模人字墙、锅耳墙或马头墙。
并且,按照墙体的层次递增或递减规律使用迭代法建模人字墙包括:
按照参数化的屋顶夹角生成一个双坡顶结构,并使用X轴切割双坡顶结构的顶部,获得两侧的三角立面;
拆分双坡顶结构的顶部获得两侧的斜坡面,并参数化两侧基准面的变化索引值;
对公用斜坡面进行递增阶梯类装饰与上檐瓦顶。
并且,对公用斜坡面进行递增阶梯类装饰与上檐瓦顶包括:
以可调整的方式参数化指定高度、指定宽度、指定层数;
从斜坡面开始,向上依次指定每一层;
将斜坡面在该层的长度在X轴上叠加上指定宽度;
将扩大的斜坡面按XY中心对齐并在垂直水平面上拉伸指定高度,生成立方体;
拆分并提取该立方体的顶面并保留其他面;
依次指定每一层顶面进行上述操作,直到指定层数被遍历;
在递增层数的阶梯最顶端平面上添加三角瓦片并构建上檐瓦顶。
并且,在递增层数的阶梯最顶端平面上添加三角瓦片并构建上檐瓦顶包括:
依据斜坡面不同基准面,调整基准方位的索引,将两斜坡的基准面调整到一致;
按照X轴切割方式将对半设置的两个直角三角形构成大的等边三角形,其中,小三角形主要使用台函数为前后90度,左右两侧倾斜角度可参数化相同,台函数能够形成垂直与地表且立于斜坡面的体模型。
同时,按照墙体的层次递增或递减规律使用迭代法建模锅耳墙包括:
提取顶部二维平面,并为该平面指定未构架简单屋顶样式或顶部复合模型;
以可调整的方式参数化曲面角度分辨率、动态切割弧段的数量与动态切割曲面垂直高度,其中,动态切割弧段的数量与曲面角度分辨率成函数关系;
根据曲面角度分辨率与动态切割弧段的数量生成自定义屋顶变化函数;
根据曲面角度分辨率与自定义屋顶变化函数创建并修改双坡顶模型;
切割双坡顶底部曲面垂直高度的部分,获得切割模型;
拆分切割模型并获取顶面并保留其他表面;
对切割模型的顶面迭代使用自定义屋顶变化函数更新切割双坡顶模型,直到自定义屋顶变化函数收敛,其中,所述自定义屋顶变化函数为调整坡顶角度函数并获得先递减后递增的曲面效果;
提取顶面进行递增迭代。
同时,按照墙体的层次递增或递减规律使用迭代法建模马头墙包括:
以可调整的方式参数化马头墙阶层参数与马头墙装饰参数,其中,马头墙阶层参数变量包括:马头墙阶梯层数变量、统一拉伸高度、每次缩进的阶层宽度;马头墙装饰参数包括:叠层数量、叠层宽度、叠层高度、顶部瓦片角度、以及屋檐延伸长度;
根据马头墙阶层参数与马头墙装饰参数构建递减变化的马头墙阶层。
并且,根据马头墙阶层参数与马头墙装饰参数构建递减变化的马头墙阶层包括:
当马头墙阶梯层数变量为最大值时,拉伸统一高度,设置马头墙阶梯层数在每次迭代中递减,并使用拆分函数获取拉伸之后的各表面,其中,顶面进行迭代,其他面则根据需求赋予纹理或精细模型;
当马头墙阶梯层数变量大于1且小于最大值时,复制出两个顶面,一个用于截取缩进的两侧进行精细的马头墙装饰,另一个顶部面执行Y轴减少两倍的每次缩进的阶层宽度,以XY轴为中心对齐,拉伸统一高度,设置马头墙阶梯层数在每次迭代中递减,并使用拆分函数获取拉伸之后的各表面,其中,顶面进行迭代,其他面则根据需求赋予纹理或精细模型;
当马头墙阶梯层数变量为1时,同样复制出两个顶面,一个用于截取缩进的两侧进行精细的马头墙装饰,另一个顶部面执行Y轴减少两倍的每次缩进的阶层宽度,以XY轴为中心对齐,拉伸统一高度,并使用拆分函数获取拉伸之后的各表面,并根据需求赋予纹理或精细模型;
设置模型对齐朝向参数,根据模型对齐朝向参数生成马头墙的不同方向叠层以及与其对应的三角瓦片。
下面根据具体实施例进一步阐述本发明的技术方案。
对于一个规则的二维底面,可以设置参数化管理该底面正面朝向操作。再确定好朝向后,做拉伸操作,使得形成一个立方体模型,对立方体模型的拆分成六个平面,对六个平面分别做不同的处理操作:顶部平面执行屋顶设计规则;左右两侧执行山墙设计规则;正面和背面分别执行不同屋脸类型设计规则;底面暂时保留不做处理。
屋顶不能单纯借助原有的城市屋顶外观(如单坡顶、双坡顶、金子塔顶等),需要拆分、组合才能实现。天井会因为民居家居规模而有不同的组合关系,一般有一天井一双坡顶、一天井两双坡顶、两天井一双坡顶、两天井两双坡顶等组合。本发明实施例选择建模双天井结构的屋顶。
首先对顶部平面执行切割规则,切割的个数与尺寸可以通过参数来控制。对于双天井建模,可以参数化选择切割为三段或四段,每个切割段的宽度可以任意调整。本文假设分为三段,则说明两侧为天井,中间存在双坡顶结构,如图2所示。
对于中间层双坡顶结构,可以设置参数调整坡顶角度与屋檐宽度。并通过获取顶部边线,找到其该屋顶正脊位置,替换精细雕花或者吉祥物。
对于两侧天井执行制作规则如下:首先对一侧生成金字塔顶或者是四坡顶的屋顶。屋顶可支持参数化管理屋顶夹角变化。使用金字塔顶构建时,对一侧执行屋顶对按照XZ对称旋转或逆向法向量的操作,使得屋顶能够倒立起来。然后使用拆分操作,找到该倒立金子塔顶连接外墙的三个面,并对应将该侧执行以XYZ为中心的旋转180度,使得另一侧也能快速构建该对称的倒立、三个面的金字塔顶。最后细节处理每个面的纹理样式,也可通过纵横切割,替换为瓦片实现构建精确模型。需要注意,天井的屋顶存在法向量不一致,因此还需要再次翻转才能符合瓦片的正面朝上。
山墙主要包括人字形、锅耳形或马头型山墙。对于不同山墙有不同的设计规则,但是每种类型的山墙所存在的层次递增或递减规律都是使用迭代算法来完成,内部通用的都控制了可调墙体基础高度和基础宽度。
如图3所示的人字墙较为简洁,但是由于存在轻微的曲线表达,一般很多方式都是替换第三方精细模型实现构建。如果是使用规则来建模,主要核心思路是:
第一步,通过之前设计的双坡顶屋顶模型(屋顶夹角参数可变),按照X轴切割顶部完成两侧三角立面的的获取。也可通过拆分方式获取两侧三角单面,在通过拉伸方式实现三角立面的生成。
第二步,借助拆分规则找到三角的两侧斜坡面,其中需要控制两侧斜坡面的区别,同时也要添加两侧基准面变化做准备的索引值。自定义如下:一类是face(cornerIndex);另一类是face(cornerIndex+2),两者公用同一个自定义函数face(num)。
第三步,对公用的斜坡面主要做递增阶梯类装饰以及上檐瓦顶操作,具体步骤:
设定可调整的高度h、宽度w、层数n的三个参数变量;
如果层数n大于0,则先递减一次该层数(n-1),将斜坡面按照X轴放大w宽;
为满足平行于斜坡面、两边又垂直与地面的装饰,需要对该扩大的斜坡面按照XY中心对齐,且按照坐标拉伸高度h,新增一个立方体;
提取该立方体顶面和其他面;
对顶面依次迭代n-1的操作2、3、4,直至n小于0时,执行下一步;
构建上檐瓦顶,在递增层数的阶梯顶部面上,添加三角瓦片,首先依据不同基准面变更的索引调整两个斜坡的基准面一致,再执行按照X轴切割方式,对半设置两个直角三角形来构成大的等边三角形。小三角形主要使用台函数设置前后为90度,左右两侧为相同倾斜角度来实现大的等边三角形的构建。
如图4所示的锅耳形山墙的曲面形态很难用简单的顶部来智能构建,需要借助数学函数和本身简单顶部面的构建规则综合完成。锅耳形山墙主要考虑使用上下两层不用迭代方式构建,通过控制屋顶倾斜角度的不同,完成曲面的特殊形态。主要核心思路是:
第一步,提取顶部二维平面,未构架简单屋顶样式。
第二步,设置两个参数变量:曲面角度分辨率ArcAngleResolution(可调),范围[7.5,90],初始化为15;控制动态切割弧段的数量ArcNum,每次迭代都会执行ArcNum=90/ArcAngleResolution-1;设定动态切割曲面垂直高度为Hei(任意可调),初始化为0.5。
第三步,创建自定义屋顶变化函数CurveRoof(n),初始化n=ArcNum。
第四步,执行创建双坡顶的操作,同时角度按照以下表达式递减90*cos(n*curvedAngleResolution)。
第五步,切割双坡顶底部垂直宽度为Hei的模型G。
第六步,对模型G拆分获取四周与顶部面。
第七步,对模型G的顶部面执行CurveRoof(n-1)的迭代操作,同类方式执行第四步到第六步操作,直至n为0。
第八步,提取顶面执行递增操作,其中,双坡顶的夹角为n*ArcAngleResolution。
如图5所示的马头形山墙主要难点在于如何参数化管理迭代参数的交互变化,同时较好的优化管理规则代码,保证编写的简捷、明了。
首先设置一些可任意调节马头墙阶层相关参数以及马头墙装饰相关参数。马头墙阶层相关参数变量:马头墙阶梯层数变量cascad_Num;统一拉伸高度cascad_Hei;每次缩进的阶层宽度cascad_Wid。马头墙装饰相关参数:同样是对应叠层数量jieti_Num;叠层宽度jieti_Wid;叠层高度jieti_Hei;顶部瓦片角度以及屋檐延伸长度。
然后执行马头墙阶层递减变化的构建,主要区分阶梯层数变量cascad_Num大于1与等于1的过程区分:
当阶梯层数变量cascad_Num大于1时,将主要循环执行全局阶层递减操作:
如果cascad_Num为最大值(即处于最底层),将仅拉伸固定高度cascad_Hei,设置cascad_Num=cascad_Num-1,之后使用拆分函数分别获取拉伸之后的各个面,同时做不同处理:顶部面依然再次迭代拉伸处理,而其他面则根据不同的需求索引管理它的不同纹理或者精细模型。
如果cascad_Num为不再是最底层,且不为1时,执行复制一个顶面Roof_side,目的是为后续截取缩进的两侧做精细的马头墙装饰留伏笔。同时对其另外一个复制的顶部面执行Y轴减少两倍的cascad_Wid宽度,按照XY轴中心对齐,再次设置cascad_Num=cascad_Num-1,并对该面同样也做迭代拉伸cascad_Hei处理,提取顶部再次返回做迭代拉伸缩进处理,而其他面则根据不同的需求索引管理它的不同纹理或者精细模型。直至cascad_Num为1,继续下一步执行。
如果阶梯层数变量cascad_Num等于1时,同样复制一个顶部面Roof_side,对其另外一个复制的顶部面执行Y轴减少两倍的cascad_Wid宽度,按照XY轴中心对齐,并拉伸cascad_Hei高度,再提取顶部和其他面做处理。不同于(1)中的ii,cascad_Num在于不再递减,同时顶部设置自定义函数roof_top_side(3),roof_top_side(num)是用三类类型管理不同顶部装饰差异。对Roof_side面按照Y轴执行切割三段的处理,其中两侧段的宽度为cascad_Wid,中间段构建为空的表面。两侧分别执行roof_top_side(1)和roof_top_side(2)的装饰差异条件。对于roof_top_side(1)与roof_top_side(2)核心差异在于对齐轴向的管理。
roof_top_side(num)是执行对应马头墙叠层与三角瓦片的生成。num是解决模型对齐朝向问题。其中num=1或2,执行马头墙的装饰要素始终按照墙体缩进的内侧对齐自定义函数roof_LOrR(origin)分别对应roof_LOrR(2)和roof_LOrR(0),传递对齐参数。roof_LOrR(origin)此处做了参数管理,可以跳离上层管理独立执行。当num为3时,执行自定义函数jieti_Top操作。
由于前期已经传递origin为2或0,因此自定义函数roof_LOrR(origin)执行过程中则不再考虑当num=1或2条件,设置叠层。如果jieti_Num大于1时,先执行朝向是向墙体一侧对齐;再次顶面宽度增加X轴两倍的jieti_Wid宽度;后靠近X中心对齐;拉伸jieti_Hei高度;设置jieti_Num递减一次;同时拆分提取顶部循环执行,其他表面保留设置不同纹理。当jieti_Num为1时,执行同上,仅仅jieti_Num不再递减,同时对应拆分提取的顶部执行双坡顶操作,可以变更夹角以及边沿延伸长度。
jieti_Top函数操作同roof_LOrR(origin)基本一致,只是前期不需要向墙体对齐函数,同时是按照XY居中对齐的。
综上所述,借助于本发明的上述技术方案,通过使用拉伸规则二维底面获得立方体模型并拆分出顶面、左右两平面、正面与背面分别执行屋顶建模规则、山墙建模规则、屋脸建模规则的技术手段,能够提供古建筑建模模块,并进一步构建古建筑民居。
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种建筑物参数化三维建模方法,其特征在于,包括:
获取建筑物的规则二维底面,并参数化其正面朝向;
垂直向上拉伸所述底面,形成立方体模型;
根据所述底面的正面朝向将所述立方体模型拆分出顶面、左右两平面、正面与背面;
对所述顶面执行屋顶建模规则;
对所述左右两平面执行山墙建模规则;
对所述正面与背面执行屋脸建模规则;对所述左右两平面执行山墙建模规则,为根据参数化的墙体基础高度和基础宽度,按照墙体的层次递增或递减规律使用迭代法建模人字墙:按照参数化的屋顶夹角生成一个双坡顶结构,并使用X轴切割所述双坡顶结构的顶部,获得两侧的三角立面;拆分所述双坡顶结构的顶部获得两侧的斜坡面,并参数化两侧基准面的变化索引值;对公用斜坡面进行递增阶梯类装饰与上檐瓦顶;
或,
按照墙体的层次递增或递减规律使用迭代法建模锅耳墙:提取顶部需要构建的二维平面,并为该平面指定未构架简单屋顶样式或顶部复合模型;以可调整的方式参数化曲面角度分辨率、动态切割弧段的数量与动态切割曲面垂直高度,其中,所述动态切割弧段的数量与所述曲面角度分辨率成函数关系;根据曲面角度分辨率与动态切割弧段的数量生成自定义屋顶变化函数;根据曲面角度分辨率与自定义屋顶变化函数创建并修改双坡顶模型;切割所述双坡顶底部曲面垂直高度的部分,获得切割模型;拆分所述切割模型并获取顶面并保留其他表面;对所述切割模型的顶面迭代使用自定义屋顶变化函数更新切割双坡顶模型,直到自定义屋顶变化函数收敛,其中,所述自定义屋顶变化函数为调整坡顶角度函数并获得先递减后递增的曲面效果;提取所述顶面进行递增迭代;
或,
按照墙体的层次递增或递减规律使用迭代法建模马头墙包括:
以可调整的方式参数化马头墙阶层参数与马头墙装饰参数,其中,所述马头墙阶层参数变量包括:马头墙阶梯层数变量、统一拉伸高度、每次缩进的阶层宽度;马头墙装饰参数包括:叠层数量、叠层宽度、叠层高度、顶部瓦片角度、以及屋檐延伸长度;根据所述马头墙阶层参数与马头墙装饰参数构建递减变化的马头墙阶层。
2.根据权利要求1所述的方法,其特征在于,对所述顶面执行屋顶建模规则包括:
将所述顶面按照参数化的分块数与尺寸切割为多个部分,并在每个部分规划一个双坡顶或天井;
在每个规划了双坡顶的分块部分均生成一个双坡顶结构,并按照参数化的坡顶角度与屋檐宽度调整所述每个双坡顶;
在每个规划了天井的分块部分均生成一个天井。
3.根据权利要求2所述的方法,其特征在于,在每个规划了天井的分块部分均生成一个天井包括:
任取一个规划了天井的分块部分生成一个金字塔顶,并参数化其屋顶夹角;
将所述金字塔顶按照XZ对称旋转或法向量逆向,使屋顶倒立;
拆分所述倒立金字塔顶,当规划了天井的分块位于两端时,获得三个连接外墙的侧面;当规划了天井的分块位于中间部分时,获得左右两个侧面;
当规划了天井的分块位于两端时,复制一份倒立金字塔顶的三个连接外墙的侧面,并将所述复制面以XYZ为中心的旋转180度,以其他规划了天井的分块部分内快速构建对称的倒立金字塔顶的三个连接外墙的侧面;
纵横切割所有所述倒立金字塔顶的三个连接外墙的侧面,并随机建模瓦片结构。
4.根据权利要求1所述的方法,其特征在于,所述对公用斜坡面进行递增阶梯类装饰与上檐瓦顶包括:
以可调整的方式参数化指定高度、指定宽度、指定层数;
从斜坡面开始,向上依次指定每一层;
将斜坡面在该层的长度在X轴上叠加上指定宽度;
将扩大的斜坡面按XY中心对齐并在垂直水平面上拉伸指定高度,生成立方体;
拆分并提取该立方体的顶面并保留其他面;
依次指定每一层顶面进行上述操作,直到指定层数被遍历;
在递增层数的阶梯最顶端平面上添加三角瓦片并构建上檐瓦顶。
5.根据权利要求4所述的方法,其特征在于,在递增层数的阶梯最顶端平面上添加三角瓦片并构建上檐瓦顶包括:
依据斜坡面不同基准面,调整基准方位的索引,将两斜坡的基准面调整到一致;
按照X轴切割方式将对半设置的两个直角三角形构成大的等边三角形,其中,小三角形主要使用台函数为前后90度,左右两侧倾斜角度可参数化相同,台函数能够形成垂直与地表且立于斜坡面的体模型。
6.根据权利要求1所述的方法,其特征在于,根据所述马头墙阶层参数与马头墙装饰参数构建递减变化的马头墙阶层包括:
当所述马头墙阶梯层数变量为最大值时,拉伸所述统一高度,设置所述马头墙阶梯层数在每次迭代中递减,并使用拆分函数获取拉伸之后的各表面,其中,顶面进行迭代,其他面则根据需求赋予纹理或精细模型;
当所述马头墙阶梯层数变量大于1且小于最大值时,复制出两个顶面,一个用于截取缩进的两侧进行精细的马头墙装饰,另一个顶部面执行Y轴减少两倍的所述每次缩进的阶层宽度,以XY轴为中心对齐,拉伸所述统一高度,设置所述马头墙阶梯层数在每次迭代中递减,并使用拆分函数获取拉伸之后的各表面,其中,顶面进行迭代,其他面则根据需求赋予纹理或精细模型;
当所述马头墙阶梯层数变量为1时,同样复制出两个顶面,一个用于截取缩进的两侧进行精细的马头墙装饰,另一个顶部面执行Y轴减少两倍的所述每次缩进的阶层宽度,以XY轴为中心对齐,拉伸所述统一高度,并使用拆分函数获取拉伸之后的各表面,并根据需求赋予纹理或精细模型;
设置模型对齐朝向参数,根据所述模型对齐朝向参数生成马头墙的不同方向叠层以及与其对应的三角瓦片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610824504.4A CN106340066B (zh) | 2016-09-14 | 2016-09-14 | 一种建筑物参数化三维建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610824504.4A CN106340066B (zh) | 2016-09-14 | 2016-09-14 | 一种建筑物参数化三维建模方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106340066A CN106340066A (zh) | 2017-01-18 |
CN106340066B true CN106340066B (zh) | 2019-08-30 |
Family
ID=57838869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610824504.4A Active CN106340066B (zh) | 2016-09-14 | 2016-09-14 | 一种建筑物参数化三维建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106340066B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108961404B (zh) * | 2018-06-27 | 2022-02-08 | 衡阳师范学院 | 一种积木式构建不规则模型的方法和系统 |
CN109979019B (zh) * | 2019-03-27 | 2023-03-14 | 衡阳师范学院 | 一种星型构件的切割方法 |
CN110335356B (zh) * | 2019-07-08 | 2022-10-28 | 衡阳师范学院 | 一种星型材料的切割方法 |
CN111260787B (zh) * | 2020-01-07 | 2022-09-23 | 衡阳师范学院 | 一种沿地形坡度自动化搭建街道台阶的方法 |
CN111369680B (zh) * | 2020-02-28 | 2023-12-15 | 北京五一视界数字孪生科技股份有限公司 | 生成建筑物的三维图像的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763656A (zh) * | 2010-01-28 | 2010-06-30 | 北京航空航天大学 | 三维城市建筑分层分户模型的构建与显示控制方法 |
CN102521877A (zh) * | 2011-12-12 | 2012-06-27 | 北京航空航天大学 | 从单幅图像重建中国古代建筑语义模型和组件库的方法 |
CN104658039A (zh) * | 2015-02-12 | 2015-05-27 | 南京市测绘勘察研究院有限公司 | 一种城市数字地图三维建模制作方法 |
CN105654545A (zh) * | 2014-11-18 | 2016-06-08 | 苏州美谷视典软件科技有限公司 | 一种3d互动别墅户型的构建与分层显示控制方法 |
-
2016
- 2016-09-14 CN CN201610824504.4A patent/CN106340066B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763656A (zh) * | 2010-01-28 | 2010-06-30 | 北京航空航天大学 | 三维城市建筑分层分户模型的构建与显示控制方法 |
CN102521877A (zh) * | 2011-12-12 | 2012-06-27 | 北京航空航天大学 | 从单幅图像重建中国古代建筑语义模型和组件库的方法 |
CN105654545A (zh) * | 2014-11-18 | 2016-06-08 | 苏州美谷视典软件科技有限公司 | 一种3d互动别墅户型的构建与分层显示控制方法 |
CN104658039A (zh) * | 2015-02-12 | 2015-05-27 | 南京市测绘勘察研究院有限公司 | 一种城市数字地图三维建模制作方法 |
Non-Patent Citations (5)
Title |
---|
CityEngine CGA支持下的传统民居复杂屋顶建模及优化-以衡阳市中田村为例;刘媛 等;《测绘通报》;20160331;第2016年卷(第3期);第一节第3小节、图1、表2、图3、图6 |
基于CityEngine与ArcGIS Online的福建土楼三维GIS的设计与实现;廖志强 等;《福建师范大学学报(自然科学版)》;20150930;第31卷(第5期);第36-43页 |
基于CityEngine的建筑物三维建模技术研究;张晖 等;《测绘通报》;20141130;第2014年卷(第11期);第108-112页 |
基于航空影像的屋顶半自动重建研究;康俊华 等;《测绘地理信息》;20140831;第39卷(第4期);第29-32页 |
浅谈中国古建筑建模方法—以沙桥傩庙建模为例;孙正广 等;《萍乡高等专科学校学报》;20120630;第29卷(第3期);第82-86页 |
Also Published As
Publication number | Publication date |
---|---|
CN106340066A (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106340066B (zh) | 一种建筑物参数化三维建模方法 | |
Sakamoto | From control to design | |
Whitehead | Laws of form | |
CN107065922A (zh) | 基于队形库的多无人机队形编队方法 | |
CN109190231B (zh) | 基于grasshopper的折板网壳参数化建模方法 | |
CN108961404B (zh) | 一种积木式构建不规则模型的方法和系统 | |
Chilton et al. | Rooted in nature: aesthetics, geometry and structure in the shells of Heinz Isler | |
Mikhailov et al. | BIM-technologies and digital modeling in educational architectural design | |
Scheurer et al. | From design to production: Three complex structures materialised in wood | |
Finkenzeller et al. | Feature-based decomposition of façades | |
Glymph | Evolution of the digital design process | |
CN105513121A (zh) | 一种数字三维水墨山水画的创作方法 | |
Januszkiewicz et al. | Parametric Architecture in the Urban Space | |
Al-Kazzaz | Form-finding in digital architecture—a case study of tower designs | |
Marino et al. | New Design Methodologies Between Research and Practice in Digital Fabrication of Wood in Architecture | |
Wang et al. | Application of the virtual landscape architecture geometric modeling | |
Khamis et al. | Airport terminal design using parametric architectural trend: From design to manufacturing | |
Kanaani | Performativity: The fourth dimension in architectural design | |
Vanossi | Interaction and intersection between digital modelling and design in architecture: different approaches in parametric design | |
Di Paola et al. | Parametric Experiments in Architecture: A Connection Joint Design for Sustainable Structures in Bamboo | |
Gao | Research on parametric modeling technology of weaving in micro-architecture manufacture | |
Kolarevic et al. | Architecture of Change: Adaptive Building Skins | |
HASSAN | ADAPTING DIGITAL ARCHITECTURE VOCABULARY TO REFORMULATE GEOMETRIC COMPOSITIONS OF ISLAMIC FACADES-CASE STUDY: PROPOSED MODEL FOR ISLAMIC FAÇADE THROUGH DIGITAL VOCABULARY | |
Tiwari | Realization of Forms in Contemporary Architecture | |
Miyasaka et al. | Hybrid cultures: design and construction strategies of complex shapes in Brazil in the first digital age |
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 |