Unity3D內建著色器

2021-09-22 10:39:54 字數 1195 閱讀 8588

unity內部提供了一些可以直接使用的著色器,這些內建著色器包括以下6個方面:

(1)performance of unity shaders

specular 高光,強度和camera的觀察角度有關,main_tex的alpha通道可以用來做specular map(反射貼圖,也稱gloss map),用於定義物體不同區域的反光率的大

小。bumped diffuse 法線貼圖漫反射,使用normal map來表現物體表面的細節。

parallax 視差著色器,通過heightmap來實現,用來模擬高度資訊。這個高度資訊可以包含在normal map的alpha通道裡,也可以單獨包含在一張貼圖裡面。

decal 貼花著色器,需要主紋理、貼花紋理(帶alpha),用來對主紋理追加紋理,可以用來做塗鴉。效能比vertex-lit稍大一點,因為它需要多一張紋理。

diffuse detail 漫反射細節著色器,需要主紋理、細節灰度紋理(50%中性灰),細節紋理必須是無縫貼圖(四方連續的)。

細節貼圖是細小的,精緻的紋理在你靠近乙個表面的時候可以察覺,可用於地形細節、木紋、石頭紋理等。

(3)transparent shader family

透明著色器用於實現全透明或者半透明效果。

當多層透明時,會出現一些渲染問題。

(4)transparent cutout shader family

透明鏤空著色器使用的物件有完全不透明的,完全透明的部分(無半透明部分)。像鐵柵欄,樹木,草等之類的東西。

帶有alpha cutoff引數用於控制透明和不透明的範圍。

沒有透明著色器的圖形排序問題,並可以接收和進行投影。

(5)self-illuminated shader family

主要用於發光物體。

一張主帖圖,一張自發光紋理。

發光基於發光紋理的alpha值,alpha為0的不發光,1表示充分發光。不需要任何燈光照射來發光。

任何頂點燈光或畫素燈光將簡單增加更多光照到自發光上。

(6)reflective shader family

一張主帖圖,乙個cubemap用於反射。

主紋理的alpha通道定義在物體表面的反射強度。

任何場景燈光將會增加反射表面的照明。

著色器 unity3d教程

unity3d教程手冊 如下圖所示,在project面板中新建乙個new material.這樣子就準備好了乙個空白的著色器。它能支援的型別也就在shader中全部顯示出來。不得不說,很好很強大。所有這些pixel 畫素 著色器,預設的diffuse算是資源開銷較小的渲染選擇。隨後那些帶有凹凸貼圖的...

unity3d內建著色器原始碼解析(四)

假如需要繪製有很多模型的場景,而大部分模型都是使用的同乙個模型,即他們使用同一組頂點資料,在渲染時指定不同的世界座標,繪製在不同的位置上。例如成千上萬的小草,每顆小草都需要呼叫一次drawcall,此時效能瓶頸在cpu往gpu傳送資料次數過多,因為這些操作都是在相對緩慢的cpu到gpu匯流排上進行的...

Unity3D著色器Shader程式設計入門

自學unity3d也有大半年了,對shader一直不敢入坑,最近看了些資料,以及通過自己的實踐,對shader還是有一點了解了,分享下僅作入門參考。狗刨學習網 因shader是對影象影象渲染的,學習前可以去了解下圖形影象學及gpu程式設計相關的知識。強烈推薦 gpu 程式設計與cg 語言之陽春白雪下...