unity實現描邊效果

2021-07-24 08:39:40 字數 1756 閱讀 5151

這裡總結了幾種在unity實現描邊效果的方法,首先準備乙個模型匯入在unity中,使用預設shader,上傳一張原始圖,以便後面實現功能效果的對比

一、邊緣光,這裡參照官方的乙個su***ceshader example,rim lighting

1.在unity建立乙個su***ceshader,命名rimlighting

[c#]

view plain

copy

2.將模型材質的shader改為剛才所寫的shader,custom/rimlighting

3.更改後,具體效果如下

二、法線外拓,用乙個pass渲染邊框,乙個pass渲染實物

[c#]

view plain

copy

2.這裡再換成新建的normalunlitshader,就會發現一些問題,他會在一些我們並不像描邊的地方也改變了顏色,這就是因為這根據模型法線並不是全部都均勻的向外擴充套件,才導致這樣的情況

3.再換乙個sphere模型應用與怪物同乙個材質球,就會發現sphere模型,是能達到我們的需求的,也能很明顯的看出兩者的差別,因為球的法線都是均勻的往外擴充套件的,這個方法的使用就需要以後根據實際的要求來使用

三、螢幕特效,描邊效果

2.寫乙個純色shader,輔助攝像機用renderwithshader,純色渲染一張紋理處理

[c#]

view plain

copy

3.將純色紋理,可以模糊放大幾次,次數越多,邊框就越寬,這裡需要使用到乙個畫素偏移函式,graphics.blitmultitap和乙個blur效果shader

[c#]

view plain

copy

4.將擴大後的紋理與原來的紋理,做乙個對比,並依據原來紋理剔除掉中間部分,就只剩下乙個邊框紋理,這裡需要使用乙個剔除shader

[c#]

view plain

copy

5.在主攝像機上,使用onrenderimage函式,將得到的輪廓純色紋理與攝像機的影象使用混合shader進行混合

[c#]

view plain

copy

6.繫結在主攝像機的指令碼

[c#]

view plain

copy

7.具體效果如下,因為這裡是在主攝像機設定的螢幕特效,他可以忽略掉所有的遮擋,這是優點也是弊端

webgl 實現物體描邊效果

終於把手頭的事結束了,可以有時間來研究研究技術 作為一名3d開發人員,僅僅使用現有的引擎來開發專案不免有些浮於表面,多研究研究底層的實現更利於對3d開發整體的把控 於是我決定最近開始研究webgl一些特效的實現,希望能在秋招前對底層有更深入的理解。這種方法不用進行法線與視線之間的計算,而是將物體每個...

描邊 深度 webgl實現物體描邊效果的方法介紹

前言終於把手頭的事結束了,可以有時間來研究研究技術 作為一名3d開發人員,僅僅使用現有的引擎來開發專案不免有些浮於表面,多研究研究底層的實現更利於對3d開發整體的把控 於是我決定最近開始研究webgl一些特效的實現,希望能在秋招前對底層有更深入的理解。這種方法不用進行法線與視線之間的計算,而是將物體...

unity實現描邊的問題彙總

在遊戲中,我們都喜歡加一些描邊效果,來凸顯人物的邊緣,提高識別度。美術一般都喜歡加。描邊方式一般有兩種,一種的模型邊緣描邊,一種的人物的轉折點描邊 這種需要用到卷軸 在遊戲中比較常用的就是模型邊緣描邊了,shader一般是這樣 shader outline 子著色器 subshader fixed4...