标签: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制作的网页游戏也是用的这种方式描边
声明:此篇文档时来自于【狗刨学习网】社区,是网友自行发布的Unity3D学习文章,如果有什么内容侵犯了你的相关权益,请与官方沟通,我们会即时处理。
更多精彩内容:www.gopedu.com
|
标签:3d游戏开发 unity3d培训 unity3d游戏 unity培训 unity3d学习
原文地址:http://blog.csdn.net/book_longssl/article/details/44150563