当前课程知识点:Grasshopper参数化设计与建模 > 第六章 Grasshopper数据结构(二) > 6.3 Grasshopper参数化表皮 > 6.3.2
返回《Grasshopper参数化设计与建模》慕课在线视频课程列表
返回《Grasshopper参数化设计与建模》慕课在线视频列表
那么当然 对于一个参数化的表皮来讲
我们也可以让它是三维的
三维空间的表皮
也就是说我们可以给这些片一个高度
那么这个高度呢
同样我们可以用move的方式
利用这里出现的参数来做
我们给它一个z方向的高度
对这里的结果这里得到的这些点的坐标
经过move以后给它一个新的高度
那么这样呢这个表皮就会有不同的高度
就拉伸起来了
这边是平的 另一边是高的
那么下面一个问题是
如果我们已经有了这样的参数化表皮
我们是不是可以
现在是一个点去影响参数化表皮的形态
比如说我们把这个点移到这里
那么它的结果就会发生变化
如果我们有两个点
去影响这个参数化表皮的现状
应该怎么来做这样的程序呢
那么这就涉及到我们说
对于数据结构的一种更为复杂的应用
也就是说我们其实可以在这里输入两个点
去影响这个表皮的形态
但是为了做这件事
我们在调整这个程序之前
比如说我们在这里输入两个点之前
一般来讲建议大家呢
先把程序后面的所有这些电池
都给它禁用了
就是把它的在这里选中
就是把它禁用
那么这个目的是
为什么要这样做呢是因为
当我们在这里输入了两个点的时候
往往会造成这里本来是一个数据
现在变成一组数据
那么就会在后面产生一些
意想不到的数据组合方面的问题
有的时候会导致grasshopper
不能正确的工作
那么数据
因为有很多的数据在这里进行组合
如果这个组合的状态导致
运算量积增的话
那么grasshopper会
出现没有反应或者类似死机的状况
所以建议大家在这里
把后面的程序先禁用
然后再去做相应的调整
那么另外一个有用的建议是说
大家可以在这里把你的程序存一个盘
注意到在一个grasshopper当我们
一开始没有存盘的时候它叫unamed
这是一个缺省的名字
在这种状况下
grasshopper它是不会给我们
生成临时存盘文件的
那么这个时候如果大家编的程序
突然出现没有反应死机的状况
不得不关闭rhino和grasshopper
重新开始的时候
那么大家就会找不回来原来的程序
这个损失就比较大
所以建议大家save document
把你的程序做一个存盘
我们这个叫做6-4 parametric skin
我们存过盘以后
如果再出现死机的情况
那么在死机之前的这个程序
是可以找得回来的
说完关于存盘的问题
我们可以一步一步地去
让我们现在的程序运转起来
那么这部分程序因为跟它没关系
所以是没问题的
肯定可以正常运转
一直到这里
这边有一点问题我们待会儿再看
那么现在我们这里要处理的问题是
如果我们有很多个中心点
那么这些形心点跟两个点之间去求距离
会得到什么样的结果
这个我们可以先把它启动
然后看一下它得到数据结构
那么这里的数据结构是
在一个路径上有两个点
那么如果在一个路径上有两个点
就得到了两个距离
这个时候我们要确定
刚才的所谓缩放的比例的时候
那么我们应该用哪个数据呢
我们用平均值吗
或者用最大值还是最小值吗
一般来讲会用最小值
所以我们这里可以用一个sort list
这个数据进行一个排序
排序完了以后 item list item
我们取它的第i个i这里输入0
实际上得到的就是最小的那个数
最小的那个距离
有了它以后
其实后面的程序跟刚才运转是一样的
我们只是在这里做了一些操作以后
还是得到一个唯一的数值
这个数值可以跟刚才一样的去使用
我们在这里去取它的bounds
然后去对它做一个remap
这边也是
这个范围我们也把它启用起来
所以这些程序现在就开始正常运转
得到一个新的结果
那么现在这个结果我们看到
它就是受两个点去影响的
那么这个点和这个点分别在
我们的pattern上面产生了
两个比较密集的区域
这个开动比较小的区域
这样我们就实现了多个影响因素
去影响一个参数化表皮的这样一个程序
实际上在设计参数化表皮的时候
我们除了用点去做影响因素以外
也可以用曲线去做影响因素
比如说我们希望在离这条线比较近的地方
那么开口是比较小的
离这条线比较远的地方开口是比较大的
那么这个时候呢我们往往会这样来编程
curve 我们使用curve取到这条曲线
然后我们会用
我们下一步需要计算的是
这条curve到每一个形心点
curve到每一个形心点之间的距离
这个距离是什么呢
这个距离我们会用到closest
curve closest point
我们说这里的形心点作为p输入过来
然后这里的curve把它输入过来
我们就会得到这条曲线上面
距离每一个形心点
最近的那个点的位置
还有它的t
就是在这条曲线上那个点的参数
以及distance 就是距离
那么有了这个distance我们就可以
让它跟这里的distance一样去使用
我们试一下
那么这条曲线就变成了
影响这个参数话表皮pattern的
一种方式
那么现在的问题是我们有两个点
和这条曲线共同去影响这个pattern
我们会得到什么样的结果呢
这个留给大家作为一个课后的练习
最后要说的是
我们现在在Rhino里得到的
我们输入的这个曲面
我们把原来的这个曲面显示出来
这个曲面它是一个平面的曲面
但如果它是一个空间曲面的话
该怎样去做它的参数化表皮呢
比如说是在一个球形的曲面
或者是一个双曲面上面
我们打开这个曲面的控制点
比如说如果我们让这两个点
让它位置低一些
那么就会得到一个双曲的面
那么当然现在看起来
程序依然是可以运转的
但是一般来讲我们会在这里做一点调整
就是我们看到当我们给一个曲面
一个厚度的时候 给它一个高度的时候
我们在这里用的是Z向量
但是假如我们把这个曲面做一个旋转
大家注意我们在这里
如果是做一个旋转的话
那么这样因为我们都是在Z方向去做移动
所以这里的pattern就会显得比较奇怪
它不是突出这个表面的
而是变成一个扭曲的形态
所以在这里我们会使用normal
曲线的法线方向
我们用evaluate surface的方式
我们得到它的normal方向
这样我们需要输入它的基础曲面
同时输入这里的UV坐标
那么为了要能得到它的UV坐标
会用到closest point
我们输入CP也可以
前面说到过
closest point对参数化设计非常重要
对Rhino和grasshopper来讲非常重要
那么这里可以看到
有非常多的各种各样的closest point
我们在这里选择surface closest point
同样把这个surface给它输入过来
那么这里需要输入一个点P
这个P是谁呢就是这里的形心点
然后就会得到在曲面上的最近点
对应的UV坐标
然后把UV坐标给这里
就会得到法线方向
下面我们可以用法线方向去替代
这里的Z方向
然后我们给它一个Amplitude
Amplitude的意思是说我们去设定
一个VECTOR的大小
方向不变但是大小是设定的
把normal方向给这里的v
然后把这里我们经过计算的这个vector
给A 然后替换一下
我们就会看到这里的开口呢就
变成了垂直于曲面的方向
这里我们可以增加一个slider2.0
然后用一个muttipticotion 乘法
把这个13:29 增大一点
看的明显一点
可以看的更加明显一点
刚才呢给大家介绍了两种不同的
参数化表皮的生成方式
那么在这个过程当中呢
我们演示了在制作参数化的表皮的
生成过程当中
所经常使用的一些编程的思路和技巧
那么实际上参数化表皮还有
很多其它的可能性
那么大家可以在平时的工作和学习当中
查阅互联网上的案例
以及发挥你们自己的想象力
去创造出更多更有趣的方案来
那么另外呢在曲面上划分
这个子曲面的方式也不仅仅是
我们这里使用的这种
方形的subsurface的方式
子曲面的方式
也存在其它的可能性
比如说大家可以去安装
这个叫做lunchbox的插件
那么有了这个插件以后
我们看到在这里
就可以基于一个曲面去生成
各种不同类型的子曲面
有菱形 六边形 平行四边形
三角形等等
那么基于这些子曲面呢
就可以创造出很多形态丰富的
趣味不同的参数化表皮来
那么如果大家想安装
grasshopper的插件呢
比如说像lunchbox呢
常用的安装方法之一
有一种比较常用的安装方法呢
就是在file底下special folder
然后大家找到components folder
那么在这里比如说像lunchbox
这样的插件呢
你就直接把插件的这个文件
复制到这里来
那么然后再把
rhnio和grasshopper的重启
重启以后呢就可以使用插件了
当然有一些其它的插件呢
不是通过这种方式
而是有一个安装文件
我们需要执行这个安装文件
才能完成这个插件的安装
好 本节的介绍就到这里
总结一下本节的要点
本节我们介绍了参数化表皮建模的演示
接下来介绍了Lunchbox插件的功能以及使用方法
我们还说明了Grasshopper的插件安装方法
-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物理模拟--第九章习题
-期末作业: 综合运用
--期末大作业