zoukankan      html  css  js  c++  java
  • 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建造的网页游戏也是用的这种体式格式描边


  • 相关阅读:
    总结jQuery选择器
    Responsive布局技巧
    学习资料
    大公司开源项目【转载】
    针对css3特性浏览器兼容 封装less
    手把手教你nginx/linux下如何增加网站
    又一枚神器:nginx
    http://www.howtocn.org/nginx
    nginx修改内核参数
    Nginx
  • 原文地址:https://www.cnblogs.com/softimagewht/p/2694639.html
Copyright © 2011-2022 走看看