Unity3d 實現頂點動畫


在今年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

 














免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM