当前课程知识点:Grasshopper参数化设计与建模 >  第七章 Grasshopper建模技巧 >  7.2 案例:望京soho表皮 >  7.2

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

7.2在线视频

下一节:7.3

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

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

在这一节,我们将给大家讲解一个案例

望京SOHO表皮建模演示

同学们好

这一讲我们来为大家介绍

建模技巧部分的实例

望京soho的表皮

望京soho的整体形态

大致可以描述为

三块直立的流线型形体

在其外部轮廓基础上

使用contour

也就是等高线的操作

截取到楼板和幕墙

并在幕墙部分增加一定的

随机图案的变化

我们今天就为大家演示

在grasshopper中

如何使用image sampler

进行望京soho的表皮建模

首先

让我们来观察一下

望京soho表皮的生成逻辑

同扎哈在北京的另一个项目

银河soho一样

望京soho的楼层

是以曲面形体为基础

通过contour

也就是等高线的操作

获得平行的结构

就是使用一系列平行的平面

同实体相交

在相交处形成楼板和幕墙

在此基础上

望京soho还对平行的白色幕墙结构

进行了发展

在平行形体的基础上

增加了随机的宽窄变化

我们可以发现

在宽窄变化上整体有一定的图案

同时又有随机效果的组合

但是其宽度的变化范围

基本上是确定的

因此我们大致能够用类似的参数化逻辑

来在grasshopper环境中进行复现

我们来看一下望京soho的表皮

这个建筑整个巨大的体量

是从一个类似石块的

这样一个

自由曲面的形态上切分出来的

形成了这种长条窗

和条状的白色金属幕墙相交织的形态

那么我们看这个白色的

环形的金属幕墙

它只有宽和窄两种状态

那么总体形成的图案

看起来是有一定的规律

但是也存在一定的随机性

这是望京soho的表皮的基本特征

下面我们就在grasshopper当中

尝试去建一个类似于望京soho

这样的一个表皮的形态

我们已经在rhino里面

做好了一个基本曲面

通过半球的形状进行变形以后

得到一个这样的曲面

对这个曲面我们首先可以做的

就是取它的等高线

contour 就是等高线

我们把surface给它

这里还需要输入其他几个参数

比如point

是从哪里开始的

我们从原点开始

用它的缺省值就可以

direction

是z轴方向没有问题

下面需要给它一个distance

也就是层高

我们假设层高为4.5米

这样我们就得到了

在这个基本体量上切分出的

很多的间隔4.5米的等高线

我们把这些等高线设定一下长度

每条等高线都有不同的长度

那么我们希望能够做的事情是

通过image sampler

然后我们双击

load一张图片

这张图片

是我们前面做好的一个pattern

我们希望把这样一张图片的pattern

把它用到望京soho 的表皮上去

那么我们就需要在每条等高线上

取一定的取样点

然后用这些取样点

去这个图案上找对应的值

所以有了这个长度以后

我们下面可以做一个事

就是division 做除法

对于这个长度给上一个10的距离

然后去切分

这样就能够得到每条曲线

它需要切分成多少段

下面我们divide curve

用这些curve按照我们算出的

需要切分的段数

对它进行一个划分

得到现在这种效果

注意这里大家用divide length

也是可以的

我们在这里直接输入10m

然后输入我们的curve

但是它有一个问题就是

对于除不尽的情况下

如果curve的长度不是10的倍数

除不尽的情况下

会出现一些小的短的线

那么从我们这个案例来讲

我们还是采用这种方式更加合理一些

好 下面我们去

因为我们已经得到了这些切分的curve

我们就可以去找一下

在这里我们把这里得到的曲线

做reparameterize

这样它的参数的范围就变成了从零到一

另一方面

我们也想去获得这些曲线在

高度方向的坐标

我们可以用这样的办法

来获得整个建筑的高度

即bounding box

这是一个非常常用的工具

我们把这个曲面

输入到bounding box里

就会得到一个

对这个曲面进行包络的长方体

接下来我们对这个bounding box

做一个拆解

这个叫deconstruct box

我们就会得到它在x y和z方向的范围

我们对z方向的范围

用一个deconstruct domain

就能得到它的高度范围

那么下面我们对这个范围进行切分

输入division

这里输入4.5米的层高

这里输入总的高度

就会得到我们一共需要切分成33层

我们用这个参数去生成range

把零到一的范围划分成33份

这样就得到了每条曲线

它在0到1范围内相对应的参数

下面要做的事情是把

这里的点沿线的参数

和这里的高度的参数组合在一起

把x y z组合成一个坐标

把t给x方向高度给y方向

注意这里

因为t参数是分布在33条曲线上

所以我们在这里

需要把这个range呢

做一个graft

range得到的这些产品做一个graft

这样就变成了34个路径对34个路径

每个路径为一对多的关系

组合出来这些点呢

我们可以zoom in到这里看一下

在原点的附近我们看到

组合出来的参数的分布是这样的

然后我们用这样的点的分布

去image sampler上面

获取一个色彩的参数

在这里把它的参数输出改成灰度

用panel来看一下这里得到的灰度值

那么实际因为在望京soho的表皮上

我们看到它有一些图案

但是同时也有一些杂乱信息

有一些干扰

所以我们在这里再增加一个

随机的因素进去random

那么生成多少个随机数呢

它应该是在不同的路径上生成

跟这里我们计算所得的每条线上的

切分点数量一致的随机数

所以我们给它这个数量

那么右边就会得到

跟这边数据同构的一些随机数

大家看到49对49

当然这里的随机数

为了让每个随机序列都不一样

如果不做任何处理

大家看看 0.771 0.404

这是第一个序列

它开始0.771 0.404

所以我们回到这边也是0.771对0.404

所以所有的序列都是一样的

所以我们需要在这里输入不同的

seed 就是随机种子

我们通过一个series来生成随机种子

那么这个series我们需要的是

知道有多少条curve

用series来生成相应的随机种子

我们用least length

把这里的curve拿过来

然后做一个flatten

这边做flatten

右边不需要

这样我们就得到了34条线

我们在这里输入count

就会得到从0到33的34个整数

我们把它当做随机种子

这样每个序列

每条线上得到的随机种子不同

它们的效果就会有差别

这边不需要看了

我们现在将这个随机种子

还需要做一个graft

让它们跟这边的每一个序列去做对应

然后我们就可以让2个数加在一起

一个是从image sampler里读出的

图像的数据

一个是随机的种子得到的随机数

对这个数呢

我们说这里的随机数的

它的影响力的大小

我们要做一个界定

所以在这里输入一个0.4的slider

然后把它组合成一个domain

组合成一个从-0.4到+0.4的domain

我们在这里输入expression-x

这样限定了随机数的大小

也可以在这里做调整

得到这边的数以后

我们记得在望京soho立面上

它的金属环形表皮只有两种宽度

所以需要把这里得到的参数二值化

二值化很简单 integer

我们看一下经过二值化以后

是不是就是我们想要的结果

用display

我们在这里做一个flatten

确实是只有0和1两个值

那么是满足我们的要求的

这里的flatten暂时取消

下面根据这个值

我们再去组合出

这个我们说在表皮上的

这些金属条带的宽度

那么这些宽度呢

我们用一个加权的办法

或者说我们先给这样一个

经过二值化得到的0和1呢

给它一个权值

一个slider和multiplication

然后我们也要加上一个基础的数

因为实际上条带的宽度

在参数取0时仍然需要一定的宽度

这个宽度是多少呢

比如说我们认为它是0.3

在后面的算法里可以看到

相当于这个条带宽度的一半

所以把它加在一起

这样就得到了一个条带在局部的宽度

下面去要做的就是

在曲面上找到

每一个金属条带表皮的具体位值

我们对于在曲面上找到的每一个点

我们去构造一个

跟曲面相关的局部坐标系

这样的话我们需要用CP

closest point

用curved closest point

得到它的tangent

用surface的CP closest point

得到normal

实际上在前面已经有了tangent向量

这里就不需要

所以我们把point给它

把surface给它

我们就会得到normal方向

进一步我们通过将tangent

这个要先做evaluate surface

才能得到UV

这里可以双击一下

从这儿分开得到

就是一种应用双击以后

可以加上分叉

把curve数据进行分叉

然后我们做一个cross product

将tangent向量和normal向量

进行一个叉积

就得到了第三个方向的向量

然后去组合生成一个新的坐标系

下面对这样一个

经过cross product得到的vector

去设定它的长度

就相当于沿着这样一个方向

去移动我们原来的点

我们用amplitude设定这个vector

用谁来设定

就是用我们刚才在这边得到的

可以把程序的位置调整一下

然后用add或者用move也可以

我们把这些点

这里我们得到的这些点给它

然后加上另外一个vector

去生成另外一个方向的

向另一个方向移动得到的点

所以这里我们输入一个-x

在maths底下的-x

我们得到另外一个方向的点的位置

下面把这些点联系在一起 连线

interpolate curve

这边也interpolate curve

我们把前面不需要看的

这些都可以先关掉

看起来程序有点问题

我们检查一下这个逻辑在哪里有问题

实际上我们在这里接入的并不是

本来应该接入点的信息

但这里接过来一个tangent向量的信息

所以这是不对的

所以我们从这里的点开始

然后去接入加法

那么这样看起来就比较靠谱

这个点就可以不要了

所以我们就得到了两条

interpolate curve

我们看一下它们的数据结构

每个数据都是分布在不同路径上

我们可以用一个merge

把这两组数据组合在一起

就得到了每一个路径里有两条线

然后下面可以用loft

来生成曲面的环形的表皮效果

但是现在看起来

这个环形表皮的区分度并不高

是因为我们这里乘的系数0.25比较小

我们提高这个系数

看一下最后的这个效果

转一转就会发现这里

这个线并没有连上

没有形成环形的封闭的表皮

所以我们在这里做loft的时候

不是在loft是是在这里做curve的时候

我们就要在这里选中

让它变成periodic

这里也是periodic

最后得到的结果就是这样

当然大家可能会想

我是不是也可以在这样一个

表皮的基础上去增加

内部的玻璃幕墙呢

也是可以的

那么增加玻璃幕墙我们就会用到

最初形成的这些截面线

这些线大概是在楼板的位置上

所以我们可以

让它们做一个offset curve

注意这个现在经过offset之后

它往外走

所以我们要在这里输入一个

0.3的slider

这里加上一个-x

得到内部的一条线

然后我们对它做extrude curve

沿着z轴的方向extrude一个层高

但这里需要加上-x

因为是向下extrude

这样就得到了内部的玻璃幕墙的效果

这个可以让它再加大 到0.4

大家可以根据需要去调整

如果考虑楼板的厚度

这里还可以-x乘上0.8

然后对这个玻璃再做一个

向下移动 move

沿z轴方向向下移动0.5

加上expressionx

前面这些可以不看了

把这个结果拿过来

注意到我们的这个表皮呢

就是它最窄的地方过于狭窄

所以还需要给它做一个调整

让它的基本宽度能够宽一些

加上一些材质的效果以后就得到了

我们这里完成的一个

望京soho的表皮的编程

总结一下这个案例的步骤

首先

我们载入轮廓曲面

使用Contour运算器获得曲面上的等高线

第二步

使用DivideCurve运算器将等高线分段

第三步

将纹理图像输入ImageSampler运算器中

获取灰度数据

第四步

使用灰度数据结合随机扰动

控制等高线上下波动

生成表皮纹理

最后一步

生成内部玻璃幕墙,并调整显示的参数

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.2笔记与讨论

也许你还感兴趣的课程:

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