Rhino(犀牛)中国技术支持与推广中心

标题: [GH基础教学]WWDC2014 Apple 宣传图渐变效果制作 [打印本页]

作者: 深蓝Ansen    时间: 2014-6-5 09:49
标题: [GH基础教学]WWDC2014 Apple 宣传图渐变效果制作
本帖最后由 深蓝 于 2014-6-7 21:49 编辑

WWDC 2014 Keynote 刚刚结束,微信上不少朋友对苹果没有发布iPhone 6咬牙切齿。(此段话引自网易科技)
正巧当天我也在旅途中,看完重播后也有点

言归正传,个人觉得Apple的这张宣传图很好看,很多用过Grasshopper(后文简称GH)的朋友一看就会条件反射般喊出:
参数化,曲线干扰等等词当然,能够实现这种效果的软件和方法很多很多。


这篇教学内容较为详实,但是不会涉及到太多数据处理的知识,比较适合刚刚接触GH的朋友学习

下面的教学也并不只是要教大家将图片上的效果做出来,更重要的是让大家了解在使用GH的过程中的思考方式。

我将图片放置在Rhino的TOP视图中,从图片上不难看出,这些等大小的方块矩阵在Apple logo轮廓线以内的区域被删除了一部分,靠近轮廓线的一些方块发生了缩放形变,如下图所示:



请注意,图中虽然只是截取了Logo的一部分,但是我们自己在绘制Logo时,一定确保这两个图形为封闭曲线

写程序最重要的就是先将过程想清楚,理清思路后再入手会相对轻松许多;


通过分析,我们可以把这个过程做个简单的归纳:

1.创建点阵
2.筛选出需要的点
3.基于点创建正方形并且实现缩放效果
4.制作颜色渐变效果

接下来就来看如何一步步实现。

1.创建点阵

我使用Vector组下面的Square 运算器



每个正方形的边长我设置为5个单位,水平方向52份,竖直方向32份(这里的份数设置适当即可,数值过小最终效果产生的不够明显,数值过大会增加程序计算时间),如下图所示:




通过上面的方法,我们可以建立如下图所示的方块曲线矩阵:




我们可以将每个正方形曲线的中心点计算出来,处理好这些点以后,再基于这些点建立圆角正方形。会用到下图所示的
Polygon Center 运算器



Polygon Center 运算器右侧的三个输出端口的作用与区别大家可以参考其help,因为是正方形曲线,通过计算后,这三个端口输出的结果是一样的,在Cv端连接一个Point 运算器即可;



请注意,此时场景中会产生很多物件,我们可以将不需要显示的物件隐藏起来,只显示点阵即可(选则对应的运算器>点击鼠标中键>点击隐藏。运算器颜色会变为深灰色)方法如下图所示:




当我们写好一个功能后,可以将这些运算器做群组,方便管理,做到条理清晰。



第一步的程序完成,效果如下图所示:






作者: 深蓝Ansen    时间: 2014-6-5 09:49
标题: 2.筛选出需要的点
本帖最后由 深蓝 于 2014-6-5 12:06 编辑

2.筛选出需要的点

再次观察,在之前标记出的轮廓线以内,黑色区域的正方形需要删除,黄色区域的正方形发生了缩放变形,其余的正方形并未受到曲线影响,如下图所示:



我们可以先将黑色区域的点删除

请注意:这些点距离轮廓线有一定的距离

因此,我们可以先使用Offset 运算器,将轮廓线往内部偏移一段距离,得到新的曲线,如下图所示:



新生成的曲线来对点阵做干扰就能达到我们的目的:



将不需要的点剔除,我们可以使用Point in Curves 运算器(因为有两条封闭轮廓线)



这个运算器的解释如下图所示,R端输出的结果为0时,代表这些点在轮廓线以外。而我们需要的正是判断结果为 0 的这些点



接下来,我们可以通过一个简单的判断,来挑选出这些点,需要用到Dispatch 运算器



Dispatch 运算器是依据P端输入的True或者False,将数据做“分流”

我们知道判断的数值 如果非0即为True,0即为False,右侧A端输出判断结果为True的数据,B端输出判断结果为False的数据,现在我们需要的就恰好是B端输出的结果。为了让一些初学者看清楚这个判断结果,我用一个Boolean 运算器将数据做转化



得到的结果在Rhino场景中并不能看的很清楚,因为 Dispatch 运算器 会把得到的结果全部显示在场景中,因此,我们需要将不需要显示的物件隐藏起来。






得到的结果有点问题,原因是数据配对出现问题,我们只需要对Offset 运算器输出端CFlatten处理既可以解决这个问题。

关于GH中数据控制大家可以阅读 http://shaper3d.cn/2012/05/30/grasshopper-data-control/




[/hide]
第二步的程序完成,效果如下图所示:







作者: 深蓝Ansen    时间: 2014-6-5 09:49
标题: 3.基于点创建正方形并且实现缩放效果
本帖最后由 深蓝 于 2014-6-5 12:05 编辑

3.基于点创建正方形并且实现缩放效果

这一步中首先要从刚刚筛选出的点中挑选出被曲线干扰到的点,才能进一步做缩放
先使用Pull Point 运算器测量出点至曲线的距离



通过Smaller Than 运算器 将这些距离值与干扰范围值做比较,再通过Dispatch 运算器 对这些点做“分类”,距离小于干扰范围值的点从A端输出,大于干扰范围值的点从B端输出





以上步骤得到了我们需要的点,接下来,我们可以将这些点作为正方形的中心点,使用Rectangle 运算器 创建边长为4.5,圆角为1的正方形曲线。如下图所示:



注意A端需要做负值转化



我们可以先将未受到干扰的正方形生成,如下图所示:



同样的方法,可以基于
被曲线干扰到的点将缩放前的正方形生成:



为了不让连线看起来杂乱,影响下一步的操作,我们可以将连线的方式更改为
虚线,如下图所示:




这些点距离曲线越近,正方形缩放量就越大,我们可以再次使用
Dispatch 运算器将这些点到曲线的距离筛选出来(A输出端)作为缩放值的依据。



这些距离值太大了,不能直接作为缩放值来用,我们需要将他们“重新映射”到新的范围内,需要用到下面的几个运算器:



我用一组简单的数字解释这几个运算器搭配用法:

例如有下面的1,2,3,4,5几个数字,我们可以将这几个数从他们原本的1 to 5重新映射到 2 to 10的区间,得到的结果就是2,4,6,8,10,也可以简单理解为“缩放”



因此,我们可以按照上面的方法,将距离值重新映射到一个0.1~0.85的范围内,如下图所示:



最后,接入Scale 运算器(你可以在界面空白处双击,在搜索栏输入Scale,既可以找到)





第三步的程序完成

[/hide]

效果如下图所示:






作者: 深蓝Ansen    时间: 2014-6-5 09:49
标题: 4.制作颜色渐变效果
本帖最后由 深蓝 于 2014-6-5 12:04 编辑

制作颜色渐变效果

这些正方形从左至右的颜色发生渐变,但是每一列的正方形颜色是相同的,简单分析下,每一列正方形的中心点X坐标值相同,对!这就是切入点

为了解释清楚如何着色,我先用一组简单的图形解释:

下图中基于一组点创建出一组心形,曲线与点之间一一对应


我们可以先使用pDecon 运算器把每个点的X坐标计算出来


然后通过Deconstruct DomainBounds运算器 将这些坐标值的范围,最大值,最小值 计算出来,如下图所示:



最后,接入Gradient 运算器,这时候,这组数值和颜色就对应起来,最小值将会与左端的绿色对应,最大值将会对应右端的红色,中间的数值会按照大小对应绿>之间的渐变色


使用Custom Preview 运算器将这组曲线的颜色显示出来,如下图所示:



将以上的方法套用到我们的程序中,规范起见,将这两大组曲线Merge起来,记得要做Flatten,再用Area 运算器 将这些曲线的中心点计算出来,如下图所示:

最后的程序如下图:
效果如下图:

如何实现实心效果,方法很简单,使用
Boundary Surfaces 运算器对每个封闭的曲线内填充一个平面即可,如下图所示:
等等!!!
有么有注意到下图中Boundary Surfaces 运算器计算耗费了大量时间,机器会卡在那里不动,非要尝试,请先保存


其实呢,稍微做点改动,这种情况就能改观,如下图所示的计算时间:

[/hide]
总结:

1.本次教学分4个小节讲解,每个小节都会实现我们最初分析的每一个步骤,再将它们连接起来,就能实现最终效果
这四组小的程序就像是机器的不同部件,分工明确,搭配起来机器就能正常运转。

2.教学中运用最多的一个运算器是 Dispatch ,判定的条件需要我们事先想好,所以,你不需要掌握太高深的数学知识,但思维逻辑很重要。

3.本教学并不是最简便的方法,但是可以让初学者了解到思考的过程!


作者: derek096    时间: 2014-6-14 22:51
本帖最后由 derek096 于 2014-6-15 09:56 编辑

先看看再模仿  两个小问题 a.景图片导入后是灰色显示的 怎么变为彩色的呢?b.这样的文字注释怎么弄的?

1.jpg (101.94 KB, 下载次数: 67)

背景图片插入后是灰色

背景图片插入后是灰色

2.jpg (2.19 KB, 下载次数: 73)

这样的注释样式怎么弄的呢

这样的注释样式怎么弄的呢

作者: 深蓝Ansen    时间: 2014-6-17 16:31
derek096 发表于 2014-6-14 22:51
先看看再模仿  两个小问题 a.景图片导入后是灰色显示的 怎么变为彩色的呢?b.这样的文字注释怎么弄 ...

问题1

如果你放置图片的方式是:BackgroundBitmap
那么你可以鼠标单击视窗标签,按照下图设置,取消 灰阶 的勾选即可



问题2


Ctrl+G 群组运算器,鼠标右键单击紫色区域,就可以对群组命名




作者: lmjs    时间: 2015-8-27 15:55
非常感谢深大的教程,做的不好,斗胆发出来,照着教程做收获很多!!!


作者: 深蓝Ansen    时间: 2015-8-31 08:22
lmjs 发表于 2015-8-28 12:13
感谢深版加分鼓励,谢谢!

我的颜色渐变效果怎么跟你们的不一样,GH中渐变色还可以自己定义吗?

Hi,Gradient Control运算器 可以自定义颜色,方法如下:

1.指针放到左上角颜色备选区,按住鼠标左键朝右拖拽就可以新增加颜色节点;


2.用鼠标右键单击颜色节点即可调整其颜色。


作者: freedom518    时间: 2016-2-18 12:53
感谢分享!
作者: dragonst2010    时间: 2016-3-18 17:45
看看差色




欢迎光临 Rhino(犀牛)中国技术支持与推广中心 (http://bbs.rhino3d.asia/) Powered by Discuz! X3.2