shader學習之路 紋理遮罩

2021-10-21 03:01:05 字數 1148 閱讀 1764

遮罩可以保護某些區域,使他們免於某些修改。例如:模型表面某些區域反光強烈一些,而某些區域弱一些,或者用於混合多張紋理

流程:通過取樣得到這招紋理的紋理素值,然後使用其中某個(或某幾個)通道的值來與某種表面屬性進行相乘,這樣,當該通道的值為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...