(轉)【Unity3d】Glow + Outline 輪廓描邊

轉:http://www.cnblogs.com/dosomething/archive/2012/08/04/2622488.htmlhtml

【Unity3d】Glow + Outline 輪廓描邊

輪廓描邊是遊戲中的細節  可是一個有特點的效果仍是會讓人眼前一亮post

Glow + Outline 的效果就像求生之路2和暗黑3的輪廓描邊界同樣  對輪廓描邊後再進行模糊處理url

如圖: 求生之路23d

 

暗黑3htm

  

一種思路爲:blog

一、在RTT中繪製單一像素遊戲

二、對1繪製後的RTT進行blur處理get

三、對2處理後的RTT與原始場景進行疊加it

四、繪製原始模型io

 

另外一種思路:

一、繪製原始模型到RTT

二、對1繪製的RTT中原始模型進行Sobel描邊

三、對2描邊後的RenderTexture進行blur處理

四、疊加1和3的RenderTexture

五、4與場景進行疊加

 

在unity3d中的實現

一、場景圖像渲染以前

 void OnPreRender

{

  ......

   另外添加一個攝像機A

  這裏必須將GlowOutlineCamera攝像機關閉

  而且清除標識爲純色

  制定其渲染目標爲RTT 

  清空其背景

  攝像機A在主攝像機渲染以前經過Shader去繪製指定渲染類型的GameObject   也就是須要描邊的GameObject

  (即攝像機A.RenderWithShader(RTT, "XXXX");)

  ...... 

}

 

二、場景圖像渲染以後 

void OnRenderImage(RenderTexture source, RenderTexture destination)

{

  ......

  將攝像機A所渲染的目標紋理進行blur處理

  將blur後的RTT與場景圖像渲染後的RTT進行合成疊加

  拷貝到目的渲染紋理上

  ......

}

 

效果1  未被遮擋

效果2 被遮擋

效果3 描邊相交  未被遮擋

效果4 描邊相交  被遮擋

 

最後附上一張火炬之光2的輪廓描邊效果  

unity實現起來要簡單的多 不屬於postprocess  

只須要對須要描邊的物體寫一個Rimlight邊緣高光的shader便可  

國內好像有個unity製做的網頁遊戲也是用的這種方式描邊

相關文章
相關標籤/搜索