UnityShader實現遮擋描邊

第一篇博客,分享一個有趣的功能:實現物體被遮擋時描繪出物體的邊緣。這種效果在遊戲中很常見,也是偶然在網上看到別人的實現於是自己總結並改進了一下。

先上幾張效果圖,也是自己方案的提升吧:

第一種是最簡單的實現方式:通過stencil的來判斷物體邊界。當然缺點也顯而易見:沒有被遮擋的部分也被高亮了。

第二種運用depthmap和後渲染的方法來判斷物體被遮擋的部分,有效解決了第一種的缺點。但是覺得還是有點不太滿意啊,因爲被遮擋的物體沒法互相再次遮擋實現描邊。

第三種,可能有點過於眼花繚亂了,乍一看好像還沒第二種好。當然,效果總是用來滿足需求的嘛,第二種與第三種可以滿足產品的各種需求。(手動滑稽)第三種原理上和第二種沒太大差別,主要對輸出的圖像再次渲染實現多層遮擋的效果。


原理稍後整理上傳

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