遮罩允許我們可以保護某些區域,使他們免於某些修改。例如:我們希望模型表面某些區域的反光強一些,某些區域弱一些,為了得到更加細膩的效果,我們就可以使用遮罩紋理控制光照。另一種常見的應用是用於製作丟性材質時需要混合多張,例如表現草地的紋理,表現石子4的紋理,表現裸露土地的紋理等等,遮罩紋理可以控制如何混合這些紋理。
// upgrade note: replaced 'mul(unity_matrix_mvp,*)' with 'unityobjecttoclippos(*)'
shader "test/7-4"
_bumpmap
("bumpmap"
,2d)
="bump"
_bumpscale
("bumpscale"
,float)=
1_specularmask
("specularmask"
,2d)
="white"
_specularscale
("specularscale"
,float)=
1//控制遮罩影響度
_specular
("specular"
,color)=(
1,1,
1,1)
_gloss
("gloss"
,range(8
,256))
=20} subshader
cgprogram
#include
"lighting.cginc"
#pragma vertex vert
#pragma fragment frag
fixed4 _color;
sampler2d _maintex;
float4 _maintex_st;
sampler2d _bumpmap;
float _bumpscale;
sampler2d _specularmask;
float _specularscale;
fixed4 _specular;
float _gloss;
struct a2v
;struct v2f
; v2f vert
(a2v v)
//使用遮罩紋理的地方是片元著色器,使用它控制模型表面的高光反射強度
fixed4 frag
(v2f i)
:sv_target
endcg}}}
TA之路 Shader學習01
shader可以認為是一種渲染命令,由opengl或者dx進行解析,來控制渲染豐富多彩的圖形。在unity中,mesh filter儲存乙個mesh 模型的網格,三角面的一些頂點資訊 mesh render用來渲染乙個模型的外觀,按照mesh給它顏色,通過material控制模型渲染的樣子,mate...
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...
shader學習之路 紋理遮罩
遮罩可以保護某些區域,使他們免於某些修改。例如 模型表面某些區域反光強烈一些,而某些區域弱一些,或者用於混合多張紋理 流程 通過取樣得到這招紋理的紋理素值,然後使用其中某個 或某幾個 通道的值來與某種表面屬性進行相乘,這樣,當該通道的值為0時,可以保護表面不受該屬性的影響。總而言之,使用遮罩紋理可以...