当前课程知识点:Grasshopper参数化设计与建模 > 第七章 Grasshopper建模技巧 > 7.3 Vironoi运算器 > 7.3
返回《Grasshopper参数化设计与建模》慕课在线视频课程列表
返回《Grasshopper参数化设计与建模》慕课在线视频列表
在这一节
我们将给大家介绍
Voronoi运算器的一些使用
首先讲解的是Voronoi
和Populate运算器的使用方法
接下来,我们将介绍
以Voronoi运算器为基础
生成参数化表皮的方法
大家好
在这一节给大家介绍一种
叫做voronoi
或者叫做泰森多边形的建模技术
什么是voronoi呢
我们还是在案例中来看一下
这是一个平面
我们已经从rhino里
输入到grasshopper中
我们现在用一个叫做
populate 2D的运算器
在vector底下的这个运算器
直接把surface给它
这个运算器就会在这个surface上
生成若干个随机点
这些随机点相对来说较均匀分布的
当然这些点我们可以减少它的数量
就会是这样一种效果
对于这样一个点阵的分布
我们可以在mesh底下找到这个
大家看到vironoi就是这个单词
泰森多边形的运算器
我们直接把这些点
给vironoi运算器
我们看到它就会得到这样一个结果
这个结果是怎么产生的呢
我们看一下
在这里它会把刚才的这些点
两个相邻的点之间
画一条垂直平分线
任意两个相邻点之间都画一条垂直平分线
那么
最后就会把这个空间划分成若干个区域
这是一种有意思的几何性质
如果是三个点相邻
那么它们的垂直平分线最后会汇聚在一点
这是一个很好的几何性质
因此
泰森多边形就会形成这种比较简洁
又丰富的形态
那么我们看一下
现在的泰森多边形
我们得到的这个形状
它会延伸到比较远的地方去
这是因为我们在这个点之外
没有更多点去限制它的范围
但是我们在使用泰森多边形的时候
往往会想
是不是可以把这样的网格
限定在原来的曲面的范围内
所以我们可以在这里用一个叫做
我们看intersect里有
region intersection的运算器
我们用这个基础曲面
去跟这里的vironoi块
去做intersect
当然为了实现这个功能
我们需要在这里做graft
那么经过graft之后
每一个路径上都有一个多边形
这些多边形会和这个曲面的外轮廓
去做相交
做region的intersection
最后得到这里的结果
前面的输入都可以不看了
这就是我们得到的
这样一个vironoi的基本图形
泰森多边形的基本图形
那么在这里我们可以做一些操作
比如说对这里的region
我们可以做scale uniformed scale
算一下它的面积并得到它的形心
以形心为中心做一个scale
这个factor我们可以给它一个slider
去调整方块的大小
大家看到这里的知识
就可以和我们前面学过的
关于参数化表皮的知识联系在一起
去进一步发展你所需要的参数化表皮
比如说我们可以用loft
来组合这里的region
或经过offset之后的表皮
来形成这种pattern
当然这是一种应用
我们也可以尝试去做一些其他的效果
比如说如果进入三维的状态
我们把这个形心点拿到
每个子曲面的形心点拿到
我们就可以给它一个z轴方向的移动
move
那么我们下面可以尝试
比如说把这个先关了
我们把这里得到的每个子曲面的边线
和这里的经过移动之后的点组合起来
用patch运算器来给它一个
鼓起来 做一个鼓起来的效果
首先在这儿我们可以
把这里的这个数字改成10
它是在做patch运算的时候曲面的分段数
span我们可以给它减少一点
可以提高运算的速度
我们下面把这个运算器先禁用
然后接上我们的region
这些region是这样一种数据结构
我们的点的数据结构也是一样的
那这样应该能够顺利地进行运算
这样就得到了一个略微有起伏的
有些鼓起来的几何形状
我们把这里的结果bake出来
然后把不需要看的这些运算器
包括它也可以隐藏起来
进一步对所有这些曲面
把它的结构线关掉
这样的话就形成了一种比较特别的效果
这种效果看起来很像
水立方表面的充气膜吹气之后的效果
实际上我们确实可以去做
三维的vironoi
比如说这里有一个
有点像水立方的空间体量的
基本的几何形 一个brep
我们把这个体量拿进来
然后把它隐藏
那么在grasshopper里 在mesh里
我们看到除了有vironoi以外
这里还有vironoi 3D
就是三维的vironoi
那么这里需要给它输入的是点
实际上是需要三维空间的点
三维空间的点在vector里面
我们看到这里populate 3D
跟这里的populate 2D相对应的
populate 3D
我们把它
给它一个基本的几何体量
那么就看到这里
在缺省的100个点之下
它在这个几何体的
外包络的box里头生成了100个点
那么我们把这100个点
放到vironoi 3D里头去
那么它就完成了
我们说切分成三维的vironoi晶体的
这么一个工作
我们可以把前面的这些暂时关掉
看得清楚一点
当然因为刚才那个形体中间是空的
所以我们也可以拿这个形体
跟它去做一个intersect
这里我们有solid intersection
我们把上面这个A接入基础的这个体量
然后在B这儿先做一个graft
然后把我们得到的晶体都接上去
这样就得到了这样一个空间的结构
类似水立方的空间结构
当然大家如果去查水立方的资料的话
那么水立方里面使用的晶体
最原始的这些被切割的这些晶体是
十二面体和十四面体组合的一种网格
我们在这里就不去做这样的网格
而用vironoi来代替
做一个简化的演示
好 那么这个运算其实我们也可以
让它做得更快一些
为什么要做得更快
实际上我们在这边还做了一个
跟水立方尺度差不多的一个基本体量
那么可以想象如果我们去
在这上面去做刚才的运算的话
会非常地花时间
所以我们先在这个体量上
把我们想做的效果差不多试出来
然后再去那边进行大量的运算
那么我们怎么去加快这个速度呢
我们知道
这里显示是一种黄色是因为
我们在刚才在这个体量范围内
产生的100个点
有相当一部分其实不会去
它产生的晶体块儿不会去跟
我们的建筑的体量相交
所以我们可以不生成那些晶体
这样的话我们就可以节省时间
所以在这里我们可以先求一下CP
brep的最近点
这是我们的brep
这边是我们的点
那么这里就可以计算出一个距离
那么对于
smaller than
对于距离小于一定值的
我们这里输入2.5
小于一定值的这些点
我们就对它进行一个dispatch,
我们只让跟这个基本体量比较近的这些点
去形成晶体块
然后去做后面的运算
或者说其实这里面的这部分点
就被我们排除掉了
在这儿应该接入的是
不是在Brep上找到的最近点
而是原始的这些点
所以这样看起来
那么这样看起来的显示是更合理的
就是在这些距离
我们说基本的基础体量
比较远的这些点就被排除在外
排除在运算之外
那么有了这些点以后
我们再去把它接到这边的
泰森多边形的计算
以及intersection的计算
这个速度还是比较快的
那么得到了
应该说是基本一致的输出的结果
有了这个基本程序以后
我们可以试一下在这里复制一份
那么输入这个基本几何形
那么在输入之前呢
我们可以试一下输入这个几何形
那么它现在得到的结果是
这些vironoi块儿都特别大
为什么呢因为我们在这里的
populate 3D是输入了100个点
所以这个点的数量是比较少的
因此它得到的这个网格就比较稀疏
下面我们在这里输入10000
10000个点
开始计算
那现在计算完成了
那么这个计算大概花了3到4分钟的时间
在我的电脑上
那么可能在大家的电脑上
会根据你电脑的性能有不同的表现
当然我们在这里看到
grasshopper有些计算
可能会非常地花时间
我们可以在display底下的
这里打开profiler
就会看到
那么实际上grasshopper会给我们显示
每一个运算器
花了多长时间去完成它的计算
比如说这里的vironoi花了1.5分钟
而这里的体块的相交花了50秒
那么现在我们可以把
不相关的这些预览都给它关掉
应该说得到的这个网格
还是非常像水立方表面的
膜结构的效果的
充气膜结构的效果
当然大家这时候可能会想
那刚才我们已经做过的这样的效果
是不是可以把它做到这里来呢
我想
这会是一个非常花时间的一件事儿
大家可以先把这里得到的所有的块儿
所有的晶体都bake出来
然后只选中表面这一层的这些小的面
然后编写相关的程序去生成它
但是一定会比较花时间
所以如果不是特别必要
大家可以不去做这件事情
总结一下本节的要点
首先我们讲解的Voronoi
和Populate运算器的使用方法
接下来,介绍了Populate运算器的使用方法
Populate运算器的使用方法
第三步,借助Patch运算器生成充气膜效果的参数化表皮
第四步,将充气膜效果的参数化表皮
运用到三维形体上去
-1.1 参数化设计简介
--1.1
--模型文件
-2.1 Grasshopper简介
--2.1
-2.2 Grasshopper界面与基本操作
--2.2
-2.3 Bake与Internalize Data操作
--2.3
-第二章习题--作业
-3.1 Math运算器
--3.1.1
-3.2 点与向量
--3.2.1
--3.2.2
-3.3 Grasshopper曲线运算器
--3.3.1
--3.3.2
-3.4 Grasshopper曲面运算器
--3.4.1
--3.4.2
-3.5 案例:水波
--3.5
-3.6 案例:螺旋曲面
--3.6
-第三章习题--作业
-4.1 Grasshopper数据结构基础
--4.1
-4.2 数据流匹配
--4.2
-4.3 Dispatch运算器
--4.3.1
--4.3.2
-4.4 案例:项链
--4.4.1
--4.4.2
--4.4.3
-第四章 Grasshopper数据结构(一)--第四章习题
-5.1 Nurbs原理简介
--5.1
-5.2 Nurbs建模演示
--5.2
-5.3 Evaluate操作
--5.3
-5.4 由点建立曲线
--5.4
-5.5 Nurbs与向量
--5.5.1
--5.5.2
-5.6 案例:凤凰中心曲线环廊
--5.6.1
--5.6.2
-5.7 案例:鸟巢表皮钢结构
--5.7.1
--5.7.2
-第五章习题(一)--作业
-第五章 Nurbs曲线与曲面建模-- 第五章习题(二)
-期中作业:工艺品设计
--期中作业
-6.1 Grasshopper树状数据结构(1)
--6.1.1
--6.1.2
--6.1.3
-6.2 案例:2016年BIG事务所蛇形画廊
--6.2.1
--6.2.2
-6.3 Grasshopper参数化表皮
--6.3.1
--6.3.2
-6.4 案例:凤凰中心表皮结构
--6.4.1
--6.4.2
-第六章 Grasshopper数据结构(二)--第六章习题
-7.1 Image Sampler
--7.1.1
--7.1.2
-7.2 案例:望京soho表皮
--7.2
-7.3 Vironoi运算器
--7.3
-7.4 Metaball运算器
--7.4
-7.5 参数化设计在大型项目中的应用案例-“红飘带”景观装置
--7.5
--第七章 Grasshopper建模技巧--第七章习题
-8.1 Mesh原理
--8.1
-8.2 SubDivision与银河Soho案例
--8.2
-8.3 地形建模
--8.3
-8.4 面板划分:以银河soho为例
--8.4.1
--8.4.2
-第八章 Mesh建模基础--第八章习题
-9.1 Kangaroo插件简介
--9.1
-9.2 悬链线
--9.2.1
--9.2.2
--9.2.3
--9.2.4
-9.3 张拉膜,充气膜与可受弯面
--9.3.1
--9.3.2
-9.4 CirclePacking
--9.4
-结语
--9.5
-第九章 Kangaroo物理模拟--第九章习题
-期末作业: 综合运用
--期末大作业