shader lab 是shader language的抽象,只能在unity中使用.
語義syntax是其基本結構,{}內的內容。
shader "shadername"//shader的名字以及在材質面板的顯示
_cube ("cube", cube) = "white" {}
_3d ("3d", 3d) = "black" {}
}//最重要的模組,包含至少乙個subshader,unity掃瞄所有subshader找到第乙個能在目標平台使用的shader,沒有就使用fallback。
subshader
//subshade的tags是一組鍵值對
//queue佇列,rendertype渲染類別,disablebatching關閉批處理
//forcenoshadowcasting關閉陰影,ignoreprojector無視投影(用於透明物體)
//canusespriteatlas,previewtype材質框中預覽模型,可以是"plane""sphere"
//乙個pass是乙個完整渲染流程,pass過多影響效能。
pass{}
}subshader
//最後一道防線,如果以上subshader都不能用就只能用最低階的。不寫就是不管了
fallback "vertexlit"
}
這是unity獨創的shader型別,本質上還是頂點片元著色器,在其基礎上進行抽象。
**量少,unity處理了許多細節。
subshader
cgprogram
#pragma su***ce surf lambert
struct input;
void surf(input in, inout su***ceoutput o)
endcg
}
su***ce shader中的語義塊在cgprogram和endcg之間,而不是pass。cgprogram和endcg之間使用cg/hlsl。
subshader
fixed4 frag() : sv_target
endcg
}}
pass{}中實現。cgprogram和endcg之間使用cg/hlsl。靈活性更高。
時代眼淚,不寫了。
馮言馮語說DSP(三)DTFT
最近事情好多,忙著做期末作業去了,好長時間沒更新了。之後盡量周更或者一周兩篇。dtft 離散時間傅利葉變換 序列的傅利葉變換 這一部分主要講dtft,序列的傅利葉變換。先看定義 dtft 是 discrete time fourier transformation 的縮寫,中文術語是 離散時間傅利葉...
mysql設計之三正規化 MySQL設計之三正規化
資料庫設計三正規化 設計資料庫表的時候所依據的規範,共三個規範 第一正規化 要求有主鍵,並且要求每乙個字段原子性不可再分 第二正規化 要求所有非主鍵字段完全依賴主鍵,不能產生部分依賴 第三正規化 所有非主鍵欄位和主鍵字段之間不能產生傳遞依賴 第一正規化 資料庫表中不能出現重覆記錄,每個欄位是原子性的...
C C 指標之三
指標變數的賦值運算有以下幾種形式 int a int ip a int a int ip ip a 把整型變數 a的位址賦予整型指標變數 ipint a int pa a int pb pb pa 把a 的位址賦予指標變數pb 由於pa,pb均為指向整型變數的指標變數,因此可以相互賦值。int a ...