馮樂樂之三,SHADERLAB入門

2021-10-24 09:59:57 字數 1183 閱讀 6738

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 ...