Shder學習筆記 相關變數名稱

2021-08-15 07:52:12 字數 1777 閱讀 4947

shader型別區分:

shader基本框架:

shader "shader名稱"

//---------------------------------【子著色器1】----------------------------------

subshader

} //---------------------------------【備胎】----------------------------------------

//備胎設為unity自帶的普通漫反射

fallback" diffuse "

}

properties:

name ("display name", range (min, max)) =number

定義浮點數屬性,在檢視器中可通過乙個標註最大最小值的滑條來修改。

name ("display name", color) =(number,number,number,number)

定義顏色屬性

name ("display name", 2d) = "name"

定義2d紋理屬性

name ("display name", rect) = "name"

定義長方形(非2次方)紋理屬性

name ("display name", cube) = "name"

定義立方貼圖紋理屬性

name ("display name", float) = number

定義浮點數屬性

name ("display name", vector) =(number,number,number,number)

定義乙個四元素的容器(相當於vector4)屬性

material:使用的地方是在subshader中的乙個pass中新開乙個material塊,包含了包含材質如何和光線產生作用的一些設定

diffuse color(r,g,b,a)

漫反射顏色構成。這是物件的基本顏色。

ambient color(r,g,b,a)

環境色顏色構成.這是當物件被rendersettings.中設定的環境色所照射時物件所表現的顏色。

specular color(r,g,b,a)

物件反射高光的顏色。(r,g,b,a)四個分量分別代表紅綠藍和alpha,取值為0到1之間。

shininess number

加亮時的光澤度,在0和1之間。0的時候你會發現更大的高亮也看起來像漫反射光照,1的時候你會獲得乙個細微的亮斑。

emission color

自發光顏色,也就是當不被任何光照所照到時,物件的顏色。(r,g,b,a)四個分量分別代表紅綠藍和alpha,取值為0到1之間。

subshader的tags塊

tags 

佇列標籤(queue tag):

後台(background) - 這個渲染佇列在所有佇列之前被渲染,被用於渲染天空盒之類的物件。

幾何體(geometry,預設值)- 這個佇列被用於大多數物件。 不透明的幾何體使用這個佇列。

透明(transparent) - 這個渲染佇列在幾何體佇列之後被渲染,採用由後到前的次序。任何採用alpha混合的物件(也

就是不對深度緩衝產生寫操作的著色器)應該在這裡渲染(如玻璃,粒子效果等)

覆蓋(overlay) - 這個渲染佇列被用於實現疊加效果。任何需要最後渲染的物件應該放置在此處。(如鏡頭光暈等)

變數名稱解析規則

使用gcc編譯模板類時,容易遇到編譯錯誤。形如 找不到變數等。為此問題,在網上搜尋了一番。模板類的變數解析分為兩個步驟 1.模板類解析過程 這個過程中,需要解析與泛型引數無關的變數名 函式名。如下 typedef void cb template class testclass virtual vo...

以string型別獲取變數名稱

描述問題 條件 int i string str string.empty 目的 str i 一般的變數名稱還沒有找到合適的方法,只能獲取對於class中成員變數的名稱。類 test中有成員變數a b class test 獲取類test的fields陣列 system.reflection.fie...

冷門 C 小技巧之獲取變數名稱

今天在自我規範程式設計的時候,變數名匹配字串來自配置檔案,網上找了一會兒發現也有朋友在找尋這種方式,很不容易找到乙個解決方案來自 下面就是今天找到的進行詳細解答 首先需要自定義乙個靜態方法 擴充套件 獲取變數名稱 字串 return string public static string getva...