Shader中的結構體

2021-07-31 06:25:37 字數 498 閱讀 8083

cg語言中支援結構體(structure),unity中的shader當然也支援了,實際上shader中的結構體宣告、使用和c++非常的類似,但是還是不同的。

用法:

1.  結構體的宣告以關鍵字 struct 開始,然後緊跟結構體的名字,接下來是乙個

大括號,並以分號結尾(不要忘了分號)。

2.使用「.」引用結構體中的成員變數和成員函式。

其實很簡單,方便呀,一次把要用的東西傳過來,或傳過去,還有就是函式不能一次返回多個值,於是結構體就派上用處了。

unity中shader有很多預定義的結構體,比方說su***ceshader中的input結構體:

struct input

;

當然如果這些預定義的結構體不夠使用,你還可以自定義結構體,

struct vertexinput ;

struct fragmentinput;

shader入門3 使用結構體

shader custom newsu ceshader subshader struct v2f v2f vert a2v v fixed4 frag v2f f sv target endcg fallback diffuse 事實上渲染順序也是a2v從模型空間拿了資料,然後計算之後傳給了v2f...

結構體中巢狀結構體

結構體的巢狀問題 結構體的自引用 self reference 就是在結構體內部,包含指向自身型別結構體的指標。結構體的相互引用 mutual reference 就是說在多個結構體中,都包含指向其他結構體的指標。1.1不使用typedef時 錯誤的方式 struct tag 1 這種宣告是錯誤的,...

C 中的結構(結構體)

結構是可以包含資料成員和函式成員的資料結構,這一點和類一樣 下面我們講一下結構與類不同的地方 1.結構體是值型別,無需進行堆分配,類是引用型別 2.結構型別的變數直接儲存資料結構,而類型別的變數儲存對動態分配的物件的引用 3.類支援繼承,結構體不支援繼承 4.關鍵字簡單說下,類是class,結構體是...