//基礎紋理:遮罩紋理
//通過取樣得到遮罩紋理的文素質,然後使用其中某個通道的值來與某種表面屬性進行相乘
//使用一張高光遮罩紋理,逐畫素的控制模型表面的高光反射強度
shader "unity shader book/chapter 7/mask texture"
_bumpmap("bump 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
cgprogram
#pragma vertex vert
#pragma fragment frag
#include "lighting.cginc"
fixed4 _color;
sampler2d _maintex;
float4 _maintex_st;//_maintex,_bumpmap,_specularmask定義公共的紋理屬性變數。
//這種方式節省需要儲存的紋理座標數目,修改主紋理的平鋪係數和偏移係數會同時影響3個紋理的裁員
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}}
fallback "specular"
}
Shader筆記7 基礎紋理 遮罩紋理
遮罩允許我們保護某些區域,使它們免於修改 使用遮罩紋理來控制光照,可以得到更加細膩的效果 使用遮罩紋理可以控制紋理的混合,比如裸露土地 草地的紋理等 原理 通過取樣得到遮罩紋理的紋素值,然後使用某個通道的值與某種表面屬性進行相乘,這樣當該通道的值為0時,可以保護表面不受該屬性的影響.在實際的遊戲製作...
UnityShader初級篇 遮罩紋理
shader unity shaders book chapter 7 mask texture bumpmap normal map 2d bump bumpscale bump scale float 1.0 高光反射遮罩紋理 specularmask specular mask 2d whit...
shader學習之路 紋理遮罩
遮罩可以保護某些區域,使他們免於某些修改。例如 模型表面某些區域反光強烈一些,而某些區域弱一些,或者用於混合多張紋理 流程 通過取樣得到這招紋理的紋理素值,然後使用其中某個 或某幾個 通道的值來與某種表面屬性進行相乘,這樣,當該通道的值為0時,可以保護表面不受該屬性的影響。總而言之,使用遮罩紋理可以...