• (转)【Unity3d】Glow + Outline 轮廓描边


    转:http://www.cnblogs.com/dosomething/archive/2012/08/04/2622488.html

    【Unity3d】Glow + Outline 轮廓描边

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

    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制作的网页游戏也是用的这种方式描边

  • 相关阅读:
    ztree : 增删改功能demo与自定义DOM功能demo的结合
    CF786B Legacy 线段树优化建图
    UVA11992 Fast Matrix Operations 一次开多棵线段树
    P3950 部落冲突 树链剖分
    洛谷P1471 方差 线段树维护区间方差
    2019.7.26 T1 树剖+双标记
    P1505 [国家集训队]旅游
    NOIP2015 运输计划 树上差分+树剖
    P1373 小a和uim之大逃离 四维dp,维护差值
    Pyhton之subprocess模块和configparser模块
  • 原文地址:https://www.cnblogs.com/wonderKK/p/5054456.html
Copyright © 2020-2023  润新知