轉:http://www.cnblogs.com/dosomething/archive/2012/08/04/2622488.htmlhtml
輪廓描邊是遊戲中的細節 可是一個有特點的效果仍是會讓人眼前一亮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製做的網頁遊戲也是用的這種方式描邊