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 运算器输出端C做Flatten处理既可以解决这个问题。
关于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 Domain 和 Bounds运算器 将这些坐标值的范围,最大值,最小值 计算出来,如下图所示:
最后,接入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 |