在今年GDC上發現一個非常有趣的演講,叫做Animating With Math,遂實現之,是講述頂點shader動畫的,舉了幾個經典的例子,但是講者並沒有給代碼,而是像虛幻引擎那樣的節點,這樣更加清楚明了
之前博主通過頂點著色器實現了水的波動算法:
unity3d 制造自己的水體water effect(二)
頂點著色器動畫可以減少動畫的開銷,並減少關節joint的數量
開始舉的例子都很簡單,可以著手一試
關於vertex colZ喎?/kf/ware/vc/" target="_blank" class="keylink">vcsrH19S2qNLltcTSu7j2zPnNvKOsu+G/2NbGuPfW1rLOyv3PwsPmu+HLtcP3PGJyPgq908/CwLS1xMD919PKx9K7uPa51s7vtcShsMrVy/WhsaOswOAmIzIwMjg0O8b4xd230Mza09CwvNPQzbm1xLavzKzQp7n7PGJyPgo8aW1nIHNyYz0="/uploadfile/Collfiles/20160420/20160420091505210.png" alt="\">
藍色通道是cos函數的相位,控制了凹凸動作的“時差”,產生沸騰效果的根本原因
紅色通道控制整體收縮大小(程度)
可以通過添加通道來添加控制相位變量的數量,從而增加凹凸效果的多樣性和復雜性
虛幻引擎的例子
效果如下:
下一個是博主最喜歡的一個效果,實現頭發隨風飄動,效果絕贊
之前在14年siggraph Bungie的TA講頭發也講了這個效果,叫HAIR IN DESTINY
這裡增加了一個noise,博主通過一張模糊過的(為了效果平滑)noise貼圖實現
和上一個例子一樣,
紅色通道:飄動強度
藍色通道:相位時差
用可愛的塞拉醬的實現效果如下:
強烈飄動:
輕微飄動
還可以用貼圖實現整體變化,可以用來模擬動畫,表情動畫等等
下一個例子是模擬繩子的彈性
通過looseness和wire slack兩個變量來控制振幅
實現結果:
手頭沒有繩子模型,,隨便找了個石頭模型拉長代替了。。。。
然後最後一個感覺很重要的就是旋轉
通過各頂點與如下相乘來旋轉物體,基礎知識,不知道的快去惡補數學
實現結果如下:
博主近期渲染:
2016的渲染
2015後半段的渲染
---- by wolf96 http://blog.csdn.net/wolf96