在今年GDC上發現一個非常有趣的演講,叫做Animating With Math,遂實現之,是講述頂點shader動畫的,舉了幾個經典的例子,但是講者並沒有給代碼,而是像虛幻引擎那樣的節點,這樣更加清楚明了
之前博主通過頂點着色器實現了水的波動算法:
unity3d 制造自己的水體water effect(二)
頂點着色器動畫可以減少動畫的開銷,並減少關節joint的數量
開始舉的例子都很簡單,可以着手一試
關於vertex color是自定義的一個貼圖,會控制各種參數下面會說明
接下來的例子是一個怪物的“收縮”,類似氣泡沸騰有凹有凸的動態效果
藍色通道是cos函數的相位,控制了凹凸動作的“時差”,產生沸騰效果的根本原因
紅色通道控制整體收縮大小(程度)
可以通過添加通道來添加控制相位變量的數量,從而增加凹凸效果的多樣性和復雜性
虛幻引擎的例子
效果如下:
下一個是博主最喜歡的一個效果,實現頭發隨風飄動,效果絕贊
之前在14年siggraph Bungie的TA講頭發也講了這個效果,叫HAIR IN DESTINY
這里增加了一個noise,博主通過一張模糊過的(為了效果平滑)noise貼圖實現
和上一個例子一樣,
紅色通道:飄動強度
藍色通道:相位時差
用可愛的塞拉醬的實現效果如下:
強烈飄動:
輕微飄動
還可以用貼圖實現整體變化,可以用來模擬動畫,表情動畫等等
下一個例子是模擬繩子的彈性
通過looseness和wire slack兩個變量來控制振幅
實現結果:
手頭沒有繩子模型,,隨便找了個石頭模型拉長代替了。。。。
然后最后一個感覺很重要的就是旋轉
通過各頂點與如下相乘來旋轉物體,基礎知識,不知道的快去惡補數學
實現結果如下:
博主近期渲染:
---- by wolf96