遮罩可以保護某些區域,使他們免於某些修改。例如:模型表面某些區域反光強烈一些,而某些區域弱一些,或者用於混合多張紋理
流程:通過取樣得到這招紋理的紋理素值,然後使用其中某個(或某幾個)通道的值來與某種表面屬性進行相乘,這樣,當該通道的值為0時,可以保護表面不受該屬性的影響。總而言之,使用遮罩紋理可以讓美術人員更加精準的控制模型表面的各種性質;
shader "custom/masktextureshader"
_glossiness ("smoothness", range(8,255)) = 20
_bumpmap("normal map",2d) = "white"{} //法線紋理
_bumpscale("bump scale",float) = 1.0 //法線紋理控制係數
_specularmask("specularmask",2d) = "white"{} //高光反射遮罩紋理
_specularscale("specular scale",float) = 1.0 //控制影響係數
_specular("specular",color) = (1,1,1,1)
} subshader
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 _glossiness;
struct a2v ;
struct v2f;
v2f vert(a2v v)
fixed4 frag(v2f i):sv_target
endcg
}
} fallback "diffuse"
}
TA之路 Shader學習09(遮罩紋理)
遮罩允許我們可以保護某些區域,使他們免於某些修改。例如 我們希望模型表面某些區域的反光強一些,某些區域弱一些,為了得到更加細膩的效果,我們就可以使用遮罩紋理控制光照。另一種常見的應用是用於製作丟性材質時需要混合多張,例如表現草地的紋理,表現石子4的紋理,表現裸露土地的紋理等等,遮罩紋理可以控制如何混...
Shader筆記7 基礎紋理 遮罩紋理
遮罩允許我們保護某些區域,使它們免於修改 使用遮罩紋理來控制光照,可以得到更加細膩的效果 使用遮罩紋理可以控制紋理的混合,比如裸露土地 草地的紋理等 原理 通過取樣得到遮罩紋理的紋素值,然後使用某個通道的值與某種表面屬性進行相乘,這樣當該通道的值為0時,可以保護表面不受該屬性的影響.在實際的遊戲製作...
TA之路 Shader學習010(漸變紋理)
漸變紋理一般用於插畫風格的渲染效果製作。shader test 7 3 儲存漸變紋理 specular specular color 1,1,1,1 gloss gloss range 8 256 20 subshader cgprogram include lighting.cginc pragm...