分享

经验 | GH

 etrgo 2018-10-14

之前做了一个商业街区的设计

在做的时候参考了成都太古里

当时我留意了一下太古里中的这个精品酒店

640.webp (2).jpg 

(上图来源于成都太古里方案设计文本)

640.webp (3).jpg 

其实我留意的主要是它的表皮

一个典型的图像干扰的案例

640.webp (4).jpg 

这张图还可以看到它的开孔不是圆的

是方的

这样的案例还有很多

今天就以这个酒店的立面和大家聊聊图像干扰

首先找一张竹叶的图片

640.webp (5).jpg 

(上图来源于pixabay)

然后把这张图片直接拖到GH面板里

会直接载入进去

640.webp (6).jpg 

也可以在空的Image Sampler运算器上双击

然后链接图片

640.webp (7).jpg 

图片拖进来了先把它放在一边

我们需要先做一个点阵

640.webp (8).jpg 

可能部分小伙伴疑惑这里怎么成点阵的

这里可以解释一下:

640.webp (9).jpg 

GH数据结构运算的默认法则是longest和按顺序计算

如果不graft

x和y值一一对应

生成的是10个点

640.webp (10).jpg 

如果一个列表里面的数据个数比另外一个列表数据个数多

那么多出来的部分会自动和短列表的最后一个数据运算

640.webp (11).jpg 

所以在construct point的Y端graft后

输入Y端的每个数都单独分成独立的一组

X的所有数还是在同一组

所以X里的所有数都会与Y中第一组中的数进行运算

640.webp (12).jpg 

又因为组与组的运算同样遵循longest法则

所以Y中所有组都会和X中的{0;0}组进行运算

每组10个点,10个组,100个点

640.webp (13).jpg 

一个方形的点阵就这样得到了

640.webp (14).jpg 

这个方形点阵的边长是20,点数是10×10

得到了点阵

下面就可以用到之前的竹叶图片了

640.webp (15).jpg 

将点阵接入咱们之前拖进来的图片

然后点阵和图片分别输给custom preview的G端和S端

这时候按道理应该可以在rhino窗口中看到点阵根据图片的色彩信息着色

然而

640.webp (16).jpg 

却是这个样子

哪里有竹叶

这是由于

图像的区间和点阵的区间不一致造成的:

点阵的区间是0-20

640.webp (17).jpg 

而图像的区间是0-1

640.webp (18).jpg 

将图像区间改成0-20

再看预览

已经正常

640.webp (19).jpg 

图像和点阵已经对应上

下一步

我们要做的就是利用图像干扰开洞的大小了

640.webp (20).jpg 

彩图输出的是每个点所处位置的RGB值

这个值我们没法直接用

这时候我们再双击进去

选最后一个黑白

这时候输出的不再是RGB值

是每个点的灰度系数

白色为1,黑色为0

将图像接入圆的R端

640.webp (23).jpg 

发现图像输出的灰度直接作为半径来用不大合适

没关系

可以用我们之前的文章已经用了多次的remap numbers套装2_02.png

将灰度值映射到一个合适的范围内:

640.webp (24).jpg 

得到的结果符合预期

再放张密集的:

640.webp (25).jpg 

由上图就可以看出

很多圆的半径都是不相同的

640.webp (26).jpg 

而查验之下

半径值有231个之多 

所以我们就要进行下一步操作

开洞简单的规格化

231个半径值太多了

我想只用4个半径值就够了

也就是圆有4中规格

4中规格可以自己根据实际需要确定

也可以这样

640.webp (27).jpg

1.获取231个半径值区间范围并将其等分为4个子区间

2.获取每个子区间的中间值,以此作为规格化的半径值

下一步

1.根据231个半径值所在的区间 

2.分别赋予相应的规格化后的半径值

先判断区间:

640.webp (28).jpg 

find domain判断半径值在哪个子区间

然后赋予相应半径值:

640.webp (29).jpg 

list item

L是列表,i是序号

i输出端会输出L列表中相应序号的值

接给圆看看效果:

640.webp (30).jpg 

看起来有点粗糙

因为半径值只有4种的缘故

可以把之前的区间分多点:

640.webp (31).jpg 

再看效果:

640.webp (32).jpg 

对比一下之前的:

640.webp (33).jpg 

至少肉眼看不出来前面的圆有231个半径

后面的只有5个

不过还有个问题也因此暴露出来

可以看到之前的圆比之后的要大点

那我怎么调节后面的圆的半径大小呢

由于目前后面这个圆的半径大小是固定的

640.webp (34).jpg 

都是区间的中间值

没法调节

解决方法就是在

输给circle之前加个graph mapper

在我们之前的文章用过很多次了

640.webp (35).jpg 

不要忘记的是双击进去

把区间改成之前映射的区间

640.webp (36).jpg 

再看效果:

640.webp (37).jpg 

相差不大

而后面的圆

半径值只有5种

到这里其实已经差不多了

不过之前说过那个酒店的里面开孔是方的

直接这样:

640.webp (38).jpg 

就行了

今天的案例就到这里吧

建议自己拿几张图片尝试一下

本来还想谈谈网格着色的

因为都说到图像映射了

但是怕一篇文章说得多了没重点

有些地方可能写得过于详细了

会的就把啰嗦部分直接跳过吧~

640.webp (42).jpg

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多