当前课程知识点:Grasshopper参数化设计与建模 >  第七章 Grasshopper建模技巧 >  7.3 Vironoi运算器 >  7.3

返回《Grasshopper参数化设计与建模》慕课在线视频课程列表

7.3在线视频

下一节:7.4

返回《Grasshopper参数化设计与建模》慕课在线视频列表

7.3课程教案、知识点、字幕

在这一节

我们将给大家介绍

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运算器生成充气膜效果的参数化表皮

第四步,将充气膜效果的参数化表皮

运用到三维形体上去

Grasshopper参数化设计与建模课程列表:

第一章 参数化设计简介

-1.1 参数化设计简介

--1.1

--模型文件

第二章 Grasshopper简介

-2.1 Grasshopper简介

--2.1

-2.2 Grasshopper界面与基本操作

--2.2

-2.3 Bake与Internalize Data操作

--2.3

-第二章习题--作业

第三章 Grasshopper基本数据类型

-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

-第三章习题--作业

第四章 Grasshopper数据结构(一)

-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数据结构(一)--第四章习题

第五章 Nurbs曲线与曲面建模

-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曲线与曲面建模-- 第五章习题(二)

期中大作业

-期中作业:工艺品设计

--期中作业

第六章 Grasshopper数据结构(二)

-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数据结构(二)--第六章习题

第七章 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建模技巧--第七章习题

第八章 Mesh建模基础

-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建模基础--第八章习题

第九章 Kangaroo物理模拟

-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物理模拟--第九章习题

期末作业

-期末作业: 综合运用

--期末大作业

7.3笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。