Grasshopper做萬箭齊發
前兩天在知乎上看到一篇文章
亞賽大人:新款上架!萬箭齊發毫髮無傷背景生成器第一反應就是如何用Grasshopper做出來
今天咱還真做出來了
先放幾個圖
再上電池圖
介紹一下思路
首先我們需要做一個粒子發射器
核心電池就是populate 2d和move
對於發射器,肯定需要一個時間軸,我們就用number slider充當,取名為time line
如何用這個time line控制populate 2d發射粒子呢?
我們的構想是,當time line增加時,每增加x個數,場上的點數就多一個,用integer division 整除 可以完成這個需求。當一個點存在於場上後,它就開始沿z軸勻速移動。這就造成了第一個點要比第二個點移動更多的距離,第二個點比第三個點移動更多的距離,以此類推。我們容易想到用series 等差數列完成這一步,等差數列的項數就是點的個數,然後再用time line減去這個等差數列得到每個點移動的確切距離,再用一個因數調節整體移動距離,連給z vector即可。
萬箭齊發已做好,但是沒法做到毫髮無傷,我刪去中心的一些點即可
點有了,下一步就是把它轉換成面
寫面的方法很多,我用的是flat box轉surface再轉rectangle,好像直接畫rectangle計算量更少,但是我懶得旋轉基準平面了,就這樣吧無所謂啦。這一步的關鍵是讓每個平面的y軸都對齊視角中心。
然後就是上色了,原文中的著色方式有兩種,一:每根箭都有一個漸變。二:根據箭與發射點的距離賦予顏色漸變。
第一種較為簡單,先把我們畫好的矩形轉化成寬x高1的網格,(寬大於2就行)然後使用gradient 漸變結合mesh colours給網格上色。我還給rgb顏色加了alpha通道。
第二種也差不多,只需要注意remap number映射數字的時候,區間需要人為限定到視圖可見的範圍內
然後就能調整顏色和視角,瘋狂導圖了
還可以在time line上右鍵-animate,調整參數導出幀序列,最後合成視頻
對了,需要點display-preview mesh edges關掉grasshopper里對網格邊框的顯示才能達到最佳效果
鏈接: https://pan.baidu.com/s/1IMXD0d-aQmne4OndHApPFg 密碼: i2cd
我用的是gh1.0.0004,低版本出現任何問題我不負責啊
推薦閱讀:
※Rhino6.0八大建築方向強化
※如何用 Grasshopper 寫出伊東豐雄的「蛇形畫廊」這種邏輯的形體?
※Grasshopper 怎樣入門?
※如何用 PS/AI/Rhino 做出這樣的水紋表皮或者紋理?
※OSC1.0 Grasshopper 課程紀錄(一)
TAG:Rhino | Grasshopper |