zoukankan      html  css  js  c++  java
  • ColorMask与Blend

    Shader "N/T" {
        Properties {
            _Color ("Texture to blend", Color) = (1,1,1,1)
        }
        SubShader {
            Tags { "Queue" = "Transparent" }
            ColorMask R
            Pass {
                Blend DstColor one
                CGPROGRAM
                #include "UnityCG.cginc"
                //#pragma exclude_renderers gles
                #pragma vertex vert
    			#pragma fragment frag
    
    			float4 _Color;
    			float4 vert( appdata_base v ) : POSITION 
    			{
    				return mul( UNITY_MATRIX_MVP, v.vertex );
    			}
    
    			float4 frag(float4 pos:POSITION):COLOR
    			{
    				return _Color;
    			}
    			ENDCG
            }
        }
        Fallback Off
    }


    _Colr为(1,1,1,1)时,ColorMask R情况下,最终颜色计算方式

    (1,0,0) * (bgColor.r,bgColor.g,bgColr.b)   +  (bgColor.r,bgColor.g,bgColr.b) * (1,1,1)

    最终颜色 = frag计算结果 * 帧缓冲中已有颜色 + 帧缓冲中已有颜色*1


    注意一点在ColorMaskR 条件下 frag计算结果由(1,1,1)变为(1,0,0)



  • 相关阅读:
    C++课程的第一次实验
    First C++
    7-12 关于堆的判断
    大笨钟
    7-14 喊山
    L3-010 是否完全二叉搜索树 (30分)
    7-13 天梯地图
    7-10 排座位
    7-9 抢红包
    帅到没朋友
  • 原文地址:https://www.cnblogs.com/nafio/p/9137213.html
Copyright © 2011-2022 走看看