Shader-基礎(chǔ)紋理-遮罩紋理

遮罩紋理(mask texture)控制光照的強度鹰服,獲得更加細膩的效果,通過遮罩紋理控制光照揽咕。在制作地形材質(zhì)的時候混合多張圖片悲酷,遮罩紋理控制如何混合這些紋理。
通過采樣得到的紋素值與某種表面屬性相乘亲善,來更加精準的控制模型表面的各種屬性设易。
在代碼中添加了BumpMap來進行凹凸紋理效果,通過SpecularMask實現(xiàn)控制高光的光照

Shader "Unlit/MaskTexture"
{
    Properties{
        _Color ("Color Tint",Color) = (1,1,1,1)
        _MainTex("Main Tex",2D) = "white" {}
        _BumpMap("Normal Map",2D) = "bump"{}
        _BumpScale("Bump Scale",Float) = 1.0
        _SpecularMask("Specular Mask",2D) = "white"{}
        _SpecularScale("Specular Scale",Float) = 1.0
        _Specular("Specular",Color) = (1,1,1,1)
        _Gloss("Gloss",Range(8.0,256)) = 20
    }
        SubShader{
        Pass{
            Tags{ "LightMode" = "ForwardBase"}
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "Lighting.cginc"

            fixed4 _Color;
            sampler2D _MainTex;
            float4 _MainTex_ST;
            sampler2D _BumpMap;
            float _BumpScale;
            sampler2D _SpecularMask;
            float _SpecularScale;
            fixed4 _Specular;
            float _Gloss;

            struct a2v {
                float4 vertex : POSITION;
                float3 normal : NORMAL;
                float4 tangent : TANGENT;
                float4 texcoord : TEXCOORD0;
            };
            struct v2f {
                float4 pos : SV_POSITION;
                float2 uv : TEXCOORD0;
                float3 lightDir : TEXCOORD1;
                float3 viewDir : TEXCOORD2;
            };
            v2f vert(a2v v) {
                v2f o;
                o.pos = UnityObjectToClipPos(v.vertex);
                o.uv.xy = v.vertex.xy * _MainTex_ST.xy + _MainTex_ST.zw;
                TANGENT_SPACE_ROTATION;
                o.lightDir = mul(rotation, ObjSpaceLightDir(v.vertex).xyz);
                o.viewDir = mul(rotation, ObjSpaceViewDir(v.vertex).xyz);
                return o;
            }
            
            fixed4 frag(v2f i) :SV_Target{
                fixed3 tangentLightDir = normalize(i.lightDir);
                fixed3 tangentViewDir = normalize(i.viewDir);
                fixed3 tangentNormal = UnpackNormal(tex2D(_BumpMap, i.uv));
                tangentNormal.xy *= _BumpScale;
                tangentNormal.z = sqrt(1.0 - saturate(dot(tangentNormal.xy, tangentNormal.xy)));

                fixed3 albedo = tex2D(_MainTex, i.uv).rgb * _Color.rgb;
                fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz * albedo;
                fixed3 diffuse = _LightColor0.rgb * albedo * max(0, dot(tangentNormal, tangentLightDir));
                fixed3 halfDir = normalize(tangentLightDir + tangentViewDir);

                fixed specularMask = tex2D(_SpecularMask, i.uv).r * _SpecularScale;

                fixed3 specular = _LightColor0.rgb * specularMask * _Specular.rgb * pow(max(0, dot(halfDir, tangentNormal)), _Gloss);

                return fixed4(ambient + diffuse + specular, 1.0);
            }
            ENDCG
        }
        }
}
MaskTexture.PNG
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逗爹,一起剝皮案震驚了整個濱河市亡嫌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掘而,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件于购,死亡現(xiàn)場離奇詭異袍睡,居然都是意外死亡,警方通過查閱死者的電腦和手機肋僧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門斑胜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嫌吠,你說我怎么就攤上這事止潘。” “怎么了辫诅?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵凭戴,是天一觀的道長。 經(jīng)常有香客問我炕矮,道長么夫,這世上最難降的妖魔是什么者冤? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮档痪,結(jié)果婚禮上涉枫,老公的妹妹穿的比我還像新娘。我一直安慰自己腐螟,他們只是感情好愿汰,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乐纸,像睡著了一般尼桶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锯仪,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天泵督,我揣著相機與錄音,去河邊找鬼庶喜。 笑死小腊,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的久窟。 我是一名探鬼主播秩冈,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼斥扛!你這毒婦竟也來了入问?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤稀颁,失蹤者是張志新(化名)和其女友劉穎芬失,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匾灶,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡棱烂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了阶女。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颊糜。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖秃踩,靈堂內(nèi)的尸體忽然破棺而出衬鱼,到底是詐尸還是另有隱情,我是刑警寧澤憔杨,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布鸟赫,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏惯疙。R本人自食惡果不足惜翠勉,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望霉颠。 院中可真熱鬧对碌,春花似錦、人聲如沸蒿偎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诉位。三九已至骑脱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間苍糠,已是汗流浹背叁丧。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留岳瞭,地道東北人拥娄。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像瞳筏,于是被迫代替她去往敵國和親稚瘾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361

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

  • 存儲在每個頂點上姚炕。紋理映射坐標定義了該頂點在紋理中對應(yīng)的 2D 坐標摊欠。通常,這些坐標使用一個二維變量(u, v)來...
    李偌閑閱讀 821評論 0 1
  • 轉(zhuǎn)載自VR設(shè)計云課堂[http://www.reibang.com/u/c7ffdc4b379e]Unity S...
    水月凡閱讀 1,020評論 0 0
  • 1 紋理基礎(chǔ) 紋理是一種結(jié)構(gòu)化的存儲形式(Textures are a structured form of st...
    RichardJieChen閱讀 15,886評論 0 9
  • 4月8日柱宦,我的一天之幻想版:回到村里做作業(yè)些椒。 要知道,現(xiàn)實和幻想總是有一些差別的捷沸,就比如我這次回到村里摊沉。 在我的幻...
    Sernedipity閱讀 226評論 1 1
  • 合火雨閱讀 40評論 0 0