Unity3d流光效果


之前曾經注意過Material中紋理的屬性都有TilingOffset,但沒有深究過其用途,今天才知道竟然可以利用Offsetuv動畫,從而完成各種有趣的動畫,比如流光效果!

流過效果即通常一條高光光在物體上劃過,模擬高光移動照射物體的效果,之前是使用Shader每幀傳遞一個Offset值,修改高光紋理採樣的uv,從而達到其效果。這樣的敝處在於需要自己實現Shader,簡單的同一速度移動是很容易實現的,如果希望移動隨度是變化的,則需要自己實現對速度曲線的解析(並傳遞給Shader)達到此目的。

沒想到一直用來作位移動作,骨骼動作的Animation竟也有此功能!

下圖中即爲Animation對於物體的渲染方面可以做的操作(Unity 4.3版本和4.2略有不同

Shader部分,有兩張紋理,分別是底圖和高光圖,這裏需要注意的是如果要移動uv,則必須聲明其ST屬性,這樣纔可以通過內置方法TRANSFORM_TEX()計算uv偏移了Shader如下


這裏只使用了一種很簡單的算法計算最終的顏色值,即將高光覆蓋底圖顏色增加高光alpha倍,可根據需求設計計算方法!

在動畫的關鍵幀中,根據美術需求設計曲線,如圖


運行效果如圖


注意此方法不能應用於NGUI,因爲NGUI其組織頂點方式與普通物體不同!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章