2.Blend

1.如果Shader代碼內(nèi)辈讶,沒有寫到Blend舔稀,那么模式Blend Off 是不進行混合的。

下面測試一下Blend的各種模式尤泽,先交代一下各個參數(shù)代表的含義

\color{red} {Blend第一個參數(shù)是針對源色的 第二個參數(shù)是針對目標色的}
\color{green}{源色表示 要渲染的這個紋理像素}
\color{green}{目標色表示已經(jīng)繪制到屏幕上的像素}

SrcColor 要渲染的顏色骄酗,比如某張貼圖進行繪制的時候稀余,該貼圖就是要渲染的顏色SrcColor
SrcAlpha 要渲染的透明度,同上

DstColor 已經(jīng)渲染到屏幕上的顏色
DstAlpha 已經(jīng)渲染到屏幕上的顏色透明度

One MinusSrcColor 1-要渲染的顏色
One MinusSrcAlpha 1-要渲染 透明度
One MiusDstColor 1-屏幕上顯示的顏色
One MinusDstAlpha 1-屏幕上顯示顏色的alpha

看一下各種參數(shù)效果趋翻。兩張素材圖:一張不透明的背景圖,一張四角透明的icon圖
Blend Off 關閉混合,效果如下

image.png

很明顯盒蟆,四角透明并沒有顯示出底圖來踏烙。

(1)現(xiàn)在想要一個簡單的混合,只描述這個Icon历等,不透明的部分讨惩,就是顯示icon內(nèi)容,透明的部分顯示背景圖寒屯。
公式如下:
Blend SrcAlpha OneMiusSrcAlpha 這個實際算法是:SrcColorSrcAlpha + (1-SrcAlpha)DstColor

image.png

(2)Blend One One 源色+目標色 正常的疊加,效果會比之前的亮,畢竟rgb 都增加了

image.png

(3)Blend SrcAlpha One 源色*源Alpha + 目標色,這個效果跟 (2)效果很近荐捻,都會增亮

image.png

這個沒有白色區(qū)域,是因為 源色源Alpha

(4)Blend OneMinusSrcAlpha One (1-源Alpha)源色 + 目標色

image.png

很明顯寡夹,源色透明區(qū)域顯示了白色处面,非透明區(qū)域顯示了背景色
(5)Blend OneMinusDstAlpha One (1-DstAlpha)
SrcColor + DstColor
image.png

(6)Blend DstColor Zero DstColorSrcColor + 0DstColor

image.png

(7)Blend OneMinusDstColor Zero (1-DstColor)SrcColor + 0DstColor

image.png

效果是,源色透明的區(qū)域有了點背景的樣子

(8)Blend Zero SrcAlpha 0源色 + 源Alpha目標色

image.png

具體的效果菩掏,需要根據(jù)公式推算一下魂角,甚至是 嘗試一下。
附代碼:

Shader "Blend/BlendTest"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
    }
    SubShader
    {
        Tags { "RenderType"="Transparent" }
        //不寫B(tài)lend的時候也是默認Blend Off 只顯示源色智绸,不會混合上Gbuff上的色素野揪。(目前測試的是透明部分顯示了白色)
        //Blend Off
        //(1)公式: 源色*源Alpha + (1-源Alpha)*目標色
        //Blend SrcAlpha OneMinusSrcAlpha
        //(2)效果是:疊加访忿,顏色會比之前亮 。疊加的時候會不會考慮Alpha 斯稳?
        //Blend One One
        //(3)得到的圖案是背景圖正常海铆,透明區(qū)域正常顯示背景,非透明區(qū)域變亮了
        //Blend SrcAlpha One
        //(4)公式:(1-源Alpha)*源色 + 目標色  :效果是 源色透明區(qū)域顯示白色挣惰,不透明區(qū)域顯示背景
        //Blend OneMinusSrcAlpha One
        //(5)公式:(1-DstAlpha)*SrcColor + DstColor :效果是源色沒有顯示出來卧斟,因為背景是不透明的
        //Blend OneMinusDstAlpha One
        //(6)DstColor*SrcColor + 0*DstColor
        //Blend DstColor Zero
        //(7)(1-DstColor)*SrcColor + 0*DstColor :效果是透明區(qū)域,有了點背景的樣子
        //Blend OneMinusDstColor Zero
        Blend Zero SrcAlpha
        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };

            sampler2D _MainTex;
            float4 _MainTex_ST;

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                //用下面的方法取uv 通熄,是為了讓uv 受tilng 跟offset 影響
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                return o;
            }
            fixed4 frag (v2f i) : SV_Target
            {
                fixed4 col = tex2D(_MainTex, i.uv);
                return col;
            }
            ENDCG
        }
    }
}

\color{red}{注釋:上面顯示的效果唆涝,當不進行混合的時候,四周透明區(qū)域顯示的是白色唇辨,原因是透明區(qū)域?qū)С龅臅r候廊酣,不帶有任何通道信息,當UV取值的時候赏枚,會從就近的像素點取亡驰,就近的顏色值是白色,所以顯示了白色}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末饿幅,一起剝皮案震驚了整個濱河市凡辱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌栗恩,老刑警劉巖透乾,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異磕秤,居然都是意外死亡乳乌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門市咆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來汉操,“玉大人,你說我怎么就攤上這事蒙兰×琢觯” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵搜变,是天一觀的道長采缚。 經(jīng)常有香客問我,道長痹雅,這世上最難降的妖魔是什么仰担? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上摔蓝,老公的妹妹穿的比我還像新娘赂苗。我一直安慰自己,他們只是感情好贮尉,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布拌滋。 她就那樣靜靜地躺著,像睡著了一般猜谚。 火紅的嫁衣襯著肌膚如雪败砂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天魏铅,我揣著相機與錄音昌犹,去河邊找鬼。 笑死览芳,一個胖子當著我的面吹牛斜姥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沧竟,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼铸敏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了悟泵?” 一聲冷哼從身側(cè)響起杈笔,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎糕非,沒想到半個月后蒙具,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡朽肥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年店量,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鞠呈。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖右钾,靈堂內(nèi)的尸體忽然破棺而出蚁吝,到底是詐尸還是另有隱情,我是刑警寧澤舀射,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布窘茁,位于F島的核電站,受9級特大地震影響脆烟,放射性物質(zhì)發(fā)生泄漏山林。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一邢羔、第九天 我趴在偏房一處隱蔽的房頂上張望驼抹。 院中可真熱鬧桑孩,春花似錦、人聲如沸框冀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽明也。三九已至宣虾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間温数,已是汗流浹背绣硝。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留撑刺,地道東北人鹉胖。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像猜煮,于是被迫代替她去往敵國和親次员。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容