Unity Shader 入門精要之基礎紋理

2021-10-04 20:21:17 字數 1778 閱讀 3198

最近在看unity shader入門精要這本書,打算進攻下圖形學這一塊了,加油吧

1.紋理對映座標也被叫做uv座標,通常範圍都被歸一化到[0,1],需要注意的是opengl和directx在二維空間座標系是有差異的,但unity已經幫咱們處理好這個問題了,是用符合opengl的傳統,也就是原點位於左下角,dx原點是在左上角.

2.在unity中,宣告某個紋理的屬性是有貼別的命名規範的,也就是紋理名_st,,例如

其中st是縮放(scale)和平移(translation)的縮寫.紋理名_st.xy儲存的是縮放,紋理名_st.zw儲存的是偏移值.

3.inspector面板中紋理下有個重要的屬性wrap mode

我現在是用的2019.2版本所以下面的選項有點多,2015版本應該是就兩個repeat和clamp,都是紋理座標超出[0,1]範圍後的取捨,說下這兩個的區別

repeat模式是當紋理座標超過1時會取他的小數字整數部分會被捨棄掉.

clamp模式是把範圍限制到[0,1]大於1的取1,小於0的取0.

4.多級漸遠紋理,是將原紋理提前用濾波處理來得到很多更小的影象,形成乙個影象金字塔,每一層都是對上一層影象降取樣的結果,這樣就在執行是就可以快速得到結果畫素,例如當物體遠離攝像機時,可以直接使用較小的紋理.但缺點是需要使用一定的空間用於儲存這些多級漸遠紋理,通常會多占用33%的記憶體空間,這是典型的用空間換時間方法.

在紋理面板吧texture type選擇成advanced,再勾選generate mip maps即可開啟(ps:後續版本unity已經把這個給移除了)

6.法線紋理:法線的分量範圍在[-1,1]所以通常需要做乙個對映把範圍控制在[0,1],也就是pixel = (normal+1)/2,這就可以了

反映射是normal = pixel * 2 -1

法線紋理一般會存在模型空間下或者切線空間下,這倆比較常用,說一下這倆的區別

模型空間下的法線紋理一般看起來是五顏六色的,這是因為他們的座標在同乙個座標空間,模型空間,每個點儲存的法線方向都是各異的,所以看起來會是五顏六色.

切線空間下的法線紋理一般看起來是淺藍色的,是因為每個頂點都有乙個屬於自己的切線空間,x軸是切線方向,z軸是法線方向,y軸可以用法線切線軸叉乘得到,稱作副切線或副法線,所以如果乙個點的法線方向不變,那麼法線方向就是z軸方向,即(0,0,1),經過對映後就是rgb(0.5, 0.5, 1)淺藍色,(xyz對應的是rgb三通道)

優缺點:

模型空間下:實現簡單,更加直觀,在紋理座標的縫合處和尖銳的邊角部分,可見的突變(縫隙)較少.但是不可重用,乙個模型乙個圖

切線空間下:自由度高,可進行uv動畫,可重用法線紋理,可壓縮.

Unity Shader入門精要

學習資料 unity shader入門精要 時長 乙個月 計畫 1 2天完成一章,預計乙個月內完成 幾何階段 gpu實現,輸出螢幕空間的二位點座標,深度,著色資訊,傳送給光柵化階段 光柵化階段 gpu實現,決定每個渲染圖元哪些畫素應該被繪製在螢幕上,將幾何階段傳來的頂點資料進行插值 頂點v法線的獲取...

筆記 《Unity Shader入門精要》

應用階段 輸出渲染圖元 rendering primitives 包括 準備場景資料 相機 場景模型 光源 粗粒度剔除 culling 把不可見的物體剔除 渲染狀態 材質 紋理,使用的shader等。光柵化階段 每個渲染圖元的哪些畫素應該被繪製在螢幕上,包括 三角形設定 三角形遍歷 片元著色器 逐片...

《UnityShader入門精要》Unity陰影

lightmode為shadowcaster的pass是用來渲染陰影對映紋理。該shader如果沒有定義lightmode為shadowcaster的pass,則會去fallback指定的shader繼續尋找。如果沒有找到,該物體無法向其他物體投射陰影,但能接收來自其他物體投射的陰影 螢幕空間的對映...