shader入門精要3

2021-10-20 07:36:18 字數 1239 閱讀 7311

在看shader入門精要。

逐頂點光照

逐畫素光照

unity shaderlab 基礎之【unitycg.cginc 庫】命令詳解

properties 

_specular ("specular", color) = (1,1,1,1)

_gloss ("gloss", range(8.0,256)) = 20

}

//cg**中宣告

fixed4 _color;

sampler2d _maintex;

float4 _maintex_st; //這個是需要的

fixed4 _specular;

float _gloss;

_maintex_st中的st是scale和translation,通過它得到縮放和平移值。

_maintex_st.xy儲存縮放值

_maintex_st.zw儲存偏移值

struct a2v 

struct v2f

v2f vert(a2v v)
fixed4 frag(v2f i) : sv_target
texture type: texture, normal map, cubemap

wrap mode: repeat, clamp。當紋理座標超過[0,1]範圍後如何平鋪。

filter mode: 當紋理由於變換而產生拉伸時採用哪種濾波。point,biliner,trilinear。

紋理的最大尺寸和紋理模式。

用了大量truecolor型別紋理會增加記憶體。

不會真的改變模型的頂點位置,只是讓模型看起來好像是凹凸的。

有2種實現方法:

將修改後的模型空間中的表面法線儲存在一張紋理中,稱為模型空間的法線紋理(object-space normal map)。實際製作中會用另一種座標空間,切線空間(tangent space)來儲存法線。

模型空間儲存法線的優點:

切線空間優點更多:

我們需要在計算光照模型中統一各個方向向量所在的座標空間。

一種是在切線空間下進行光照計算,一種是在世界空間下進行光照計算。

計算前需要變換到統一的座標系(空間)。還可以是模型空間。

基本思路是:在片元著色器中通過紋理取樣得到切線空間下的法線,然後再與切線空間下的視角方向、光照方向等進行計算,等到最終的光照結果。

要開始動手寫了。

Shader入門精要讀書筆記3

笛卡爾座標系 標準正交基 左 右手座標系 點 向量 向量的運算 點積叉積 矩陣 矩陣的運算 矩陣變換 線性變換 縮放 旋轉 仿射變換 合併了線性變換和平移變換 齊次座標 縮放矩陣 旋轉矩陣 zxy 平移矩陣 依次 座標空間 父空間 子空間 模型空間 物件空間 世界空間 觀察空間 相機空間 裁剪空間 ...

shader入門精要(筆記2)

shader 檔案在選擇面板以樹狀結構組織的 shader hidden newimageeffectshader shader 語法塊,乙個shader程式至少有乙個subshader,系統在渲染時會依次呼叫,直到找到匹配的subshader,否則使用最後預設指定的shader subshader...

Shader入門精要讀書筆記4

unity版本號和環境 建立場景,shader 材質 球體 簡單shader中每一行 的作用 使用語義 例如sv position 作為輸入輸出 sv position sv target 頂點 片元著色器輸出 結構體的引入,並用於著色器間資訊傳遞 頂點著色器插值後送給片元著色器 propertie...