7 2基礎紋理 法線紋理

2021-10-04 21:07:23 字數 891 閱讀 1925

//基礎紋理

//凹凸對映:使用一張紋理來修改模型表面的法線

//世界空間中的計算

shader "unity shader book/chapter 7/normalmapworldspace"

_bumpmap("normal map",2d) = "bump"{}//bump內建的法線紋理,當沒有提供任何法線紋理時,對應模型自帶的法線資訊

_bumpscale("bump 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" //包含檔案,為了使用一些變數 如_lightcolor0

fixed4 _color;

sampler2d _maintex;

float4 _maintex_st;

sampler2d _bumpmap;

float4 _bumpmap_st;

float _bumpscale;

fixed4 _specular;

float _gloss;

struct a2v ;

struct v2f ;

//修改頂點著色器 計算從切線空間到世界空間的變化

v2f vert(a2v v)

fixed4 frag(v2f i) :sv_target

endcg}}

fallback "specular"

}

法線紋理實踐(一)

以下內容來自 unity shader入門精要 切線空間下計算光照 光照方向,視角方向全部轉換到切線空間下計算。世界空間下 計算光照 將從法線紋理上得到的法線方向轉換到世界空間下,之後再和世界空間下的光照方向,視角方向進行計算。方法一 tangent space rotation是乙個巨集,參考 u...

7 5基礎紋理 遮罩紋理

基礎紋理 遮罩紋理 通過取樣得到遮罩紋理的文素質,然後使用其中某個通道的值來與某種表面屬性進行相乘 使用一張高光遮罩紋理,逐畫素的控制模型表面的高光反射強度 shader unity shader book chapter 7 mask texture bumpmap bump map 2d bum...

對法線紋理和置換紋理的一點改進

displacement 設想深度圖在三角形所在切線空間內。對於點法線不垂直於三角形所在面的情況,比如三角形三個頂點的法線不同,或是視線穿過了當前三角形,而下乙個三角形的法線方向與這乙個三角形的法線方向不同的情況,這個設想就是不成立的。displacement的視線可能穿過texture,即u v超...