2D遊戲開發時有那些驚艷的效果是一定要學會著色器(shader)編程?
我目前在一個小團隊的中製作2d遊戲,用的是unity3d 遊戲引擎。希望製作一些驚艷的特效,搜索過程中發現 ,首先可以去Unity的市場上購買一些特效插件 ,但是插件能提供的特效也是有限的,如果自己會寫思維的限制會沒那麼多。另外網上很多朋友說Unity2d 特效無非是 粒子系統+幀動畫,也許很多情況是這樣的,但我覺得應該是有一些漂亮的效果用著色器實現效果更好,我希望能擴展一下視野。 希望朋友們能給一些鏈接 關鍵字,謝謝大家
我不是學特效的,也不是很懂shader。所以我接下來說的東西都不一定是正確的( ̄Д ̄)?
說到2D遊戲的特效,許多人第一反應就是「幀動畫」,在Unity中,但凡涉及到「特效」,一定會有人說到「為什麼不用Particle System ?」
的確,粒子系統是用來展現特效的非常普遍的方式。怪獸嘴中吐出的火焰,天空中飄灑的雪花,遊戲技能釋放時的效果等等。利用粒子系統實現的的確確簡單而方便。
然而,不論是3D或是2D。除了上面說的那種特效之外,還有一種以著色器為主要表現形式的特效,也就是題主所說的「Shader屏幕特效」。
這種特效是無法使用粒子系統來表現的。舉個栗子 ,如某些遊戲開場時的老電影風格屏幕,如最基礎的屏幕特效-高光與漫反射。
D遊戲由於缺少Y軸(左手坐標系),許多shader演算法都無法繼續使用。然而還是有許多驚艷的視覺效果是由2Dshader 展現的:
比如這樣的效果:
(圖來自網路,侵刪)參考:http://www.th7.cn/Program/net/201509/577815.shtml2D遊戲中的光照也是需要使用shader來幫助完成的,在Unity中,如果沒有使用專為2D的shader,是無法表現出光照的。
參考http://m.blog.csdn.net/article/details?id=46743311
同時,還有像「水面」這種玩意兒。你不能和我說用粒子系統去做吧?當然,水面如果使用序列幀是可以完成的。但是如果我想實現反射倒影效果呢?
比如像《Kingdom 》遊戲中這樣的水面仔細觀察下方的水面。還有某些技能,比如某個精靈被冰凍、Sprite邊緣發光、自發光、局部發光、局部褪色等等(手機碼字太累不上圖,以後有空補上)。
這些技能都能用幀動畫來解決,但是如果使用shader,效果會比幀動畫更好,而且通用性更強。
其實做遊戲,做前端開發的話,到後期就兩個方向,一個AI,一個渲染,因為渲染要求高,而且實際上很多東西又有現成的,AI很多東西,都會需要策劃的要求,重新做,所以做AI的人遠比渲染的人多
看了此題第一感覺就是想到爐石的金卡特效,卡面上巫師角色袖口地方的波浪扭曲shader很贊哦!最近一直在研究爐石shader來的。
推薦閱讀:
※編寫Unity Shader的時候,語義POSITION和SV_POSITION的區別?
※Shader model 5.0 的片段著色器能不能得到該片段所在的三角圖元實際光柵化後有多少像素?
※為什麼半透明模型的渲染要使用深度測試而關閉深度寫入?
※iOS 9 用的是哪種模糊演算法?
※Unity5.X中屏幕空間陰影投射技術(Screenspace ShadowMap)如何產生陰影圖?