• Glow Shader


    Glow Shader

      Glow Shader基于BlurShader来实现。总的来说分为2步:

        1、利用BlurShader渲染出BlurTexture。

        2、将BlurTexture与SrcTexture累加在一起。此步利用GlowShader。

      本质就是第二步,将SrcTexture的颜色与BlurTexture的颜色累加在一起。

      下面列出实现中的细节。

      1、Blur Iteration、Blur Spread参数与BlurShader中的一致。

        

      2、GlowIndensity的实现。

        

        本质是提高BlurShader的颜色亮度。代码如下:

        

        

      

      Glow 完整 Sahder 如下:

    Shader "Hidden/GlowCompose" {
    
    Properties {
         ("Glow Amount", Color) = (1,1,1,1)
        _MainTex ("", 2D) = "white" {}
    }
    
    Category {
        ZTest Always Cull Off ZWrite Off Fog { Mode Off }
        Blend One One
    
        Subshader {
            Pass {
                CGPROGRAM
                    #pragma vertex vert
                    #pragma fragment frag
                    #pragma fragmentoption ARB_precision_hint_fastest
    
                    #include "UnityCG.cginc"
    
                    struct v2f {
                        float4 pos : POSITION;
                        half2 uv : TEXCOORD0;
                    };
    
                    float4 _MainTex_TexelSize;
                    float4 _BlurOffsets;
    
                    v2f vert (appdata_img v)
                    {
                        v2f o;
                        o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
                        o.uv = MultiplyUV (UNITY_MATRIX_TEXTURE0, v.texcoord.xy);
                        return o;
                    }
    
                    sampler2D _MainTex;
                    fixed4 _Color;
    
                    fixed4 frag( v2f i ) : COLOR
                    {
                        return 2.0f * _Color * tex2D( _MainTex, i.uv );
                    }
                ENDCG
            }
        }
    
        SubShader {
            Pass {
                SetTexture [_MainTex] {constantColor [_Color] combine constant * texture DOUBLE}
            }
        }
    }
    
    Fallback off
    
    }
    View Code
  • 相关阅读:
    Netbeans 注释模板配置
    你可能不知道的5 个强大的HTML5 API 函数
    科幻大片中那些牛X代码真相
    怎么才能成为一名PHP专家?
    网页设计中常见的错误列举
    五个必须警惕的数据库设计错误
    五种情况会导致Session 丢失
    四种策略防止用户将表单重复提交
    jQuery的deferred对象使用笔记
    [Web前端]由cookies安全说开去
  • 原文地址:https://www.cnblogs.com/tekkaman/p/4153897.html
Copyright © 2020-2023  润新知