码迷,mamicode.com
首页 > 其他好文 > 详细

Glow + Outline 轮廓描边

时间:2015-03-09 09:24:05      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:3d游戏开发   unity3d培训   unity3d游戏   unity培训   unity3d学习   

【狗刨学习网】

轮廓描边是游戏中的细节  但是一个有特色的效果还是会让人眼前一亮

Glow + Outline 的效果就像求生之路2和暗黑3的轮廓描边界一样  对轮廓描边后再进行模糊处理


如图: 求生之路2

技术分享



暗黑3

技术分享


一种思路为:

1、在RTT中绘制单一像素

2、对1绘制后的RTT进行blur处理

3、对2处理后的RTT与原始场景进行叠加

4、绘制原始模型

另一种思路:

1、绘制原始模型到RTT

2、对1绘制的RTT中原始模型进行Sobel描边

3、对2描边后的RenderTexture进行blur处理

4、叠加1和3的RenderTexture

5、4与场景进行叠加

在unity3d中的实现

1、场景图像渲染之前

void OnPreRender

{

  ......

   另外添加一个摄像机A

  这里必须将GlowOutlineCamera摄像机关闭

  并且清除标识为纯色

  制定其渲染目标为RTT

  清空其背景

  摄像机A在主摄像机渲染之前通过Shader去绘制指定渲染类型的GameObject   也就是需要描边的GameObject

  (即摄像机A.RenderWithShader(RTT, "XXXX");)

  ...... 

}


2、场景图像渲染之后

void OnRenderImage(RenderTexture source, RenderTexture destination)

{

  ......

  将摄像机A所渲染的目标纹理进行blur处理

  将blur后的RTT与场景图像渲染后的RTT进行合成叠加

  拷贝到目的渲染纹理上

  ......

}



效果1  未被遮挡

技术分享


效果2 被遮挡

技术分享


效果3 描边相交  未被遮挡

技术分享


效果4 描边相交  被遮挡

技术分享



最后附上一张火炬之光2的轮廓描边效果  

unity实现起来要简单的多 不属于postprocess  

只需要对需要描边的物体写一个Rimlight边缘高光的shader即可  

国内好像有个unity制作的网页游戏也是用的这种方式描边

技术分享

2012080401203385.jpg (15.53 KB, 下载次数: 0)

下载附件  保存到相册

2 分钟前 上传


声明:此篇文档时来自于【狗刨学习网】社区,是网友自行发布的Unity3D学习文章,如果有什么内容侵犯了你的相关权益,请与官方沟通,我们会即时处理。

更多精彩内容:www.gopedu.com

Glow + Outline 轮廓描边

标签:3d游戏开发   unity3d培训   unity3d游戏   unity培训   unity3d学习   

原文地址:http://blog.csdn.net/book_longssl/article/details/44150563

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!