Unity3d 實現頂點動畫

在今年GDC上發現一個很是有趣的演講,叫作Animating With Math,遂實現之,是講述頂點shader動畫的,舉了幾個經典的例子,可是講者並無給代碼,而是像虛幻引擎那樣的節點,這樣更加清楚明瞭
以前博主經過頂點着色器實現了水的波動算法:
html

unity3d 製造本身的水體water effect(二)

頂點着色器動畫能夠減小動畫的開銷,並減小關節joint的數量
開始舉的例子都很簡單,能夠着手一試
 
 
 
關於vertex color是自定義的一個貼圖,會控制各類參數下面會說明
接下來的例子是一個怪物的「收縮」,相似氣泡沸騰有凹有凸的動態效果
 
藍色通道是cos函數的相位,控制了凹凸動做的「時差」,產生沸騰效果的根本緣由
紅色通道控制總體收縮大小(程度)
能夠經過添加通道來添加控制相位變量的數量,從而增長凹凸效果的多樣性和複雜性
 



虛幻引擎的例子
 

效果以下:



下一個是博主最喜歡的一個效果,實現頭髮隨風飄動,效果絕贊
以前在14年siggraph Bungie的TA講頭髮也講了這個效果,叫HAIR IN DESTINY

 

這裏增長了一個noise,博主經過一張模糊過的(爲了效果平滑)noise貼圖實現
和上一個例子同樣,
紅色通道:飄動強度
藍色通道:相位時差
 
 

用可愛的塞拉醬的實現效果以下:

算法

強烈飄動:函數

輕微飄動動畫


還能夠用貼圖實現總體變化,能夠用來模擬動畫,表情動畫等等
 

 
 




下一個例子是模擬繩子的彈性

經過looseness和wire slack兩個變量來控制振幅

 
 


spa

實現結果:.net

手頭沒有繩子模型,,隨便找了個石頭模型拉長代替了。。。。
3d






而後最後一個感受很重要的就是旋轉
經過各頂點與以下相乘來旋轉物體,基礎知識,不知道的快去惡補數學
 

 

實現結果以下:


htm

博主近期渲染:blog

 

近期渲染get

 

 

 

 

 

                              ---- by wolf96

相關文章
相關標籤/搜索