GPU例項化的詳細步驟

2021-10-19 22:06:20 字數 1033 閱讀 1532

用於對多個物件(網格一樣,材質一樣,但是材質屬性不一樣)合批,單個合批最大上限為511個物件。

硬體要支援:opengl3.0以上支援。

c#**:

gameobject tree = instantiate(prefab, pos, transform)

#pragma multi_compile_instancing 

新增此指令後會使材質面板上曝露instaning開關,同時會生成相應的instancing變體

unity_vertex_input_instance_id

unity_instancing_buffer_start(arrayname)

unity_instancing_buffer_end(arrayname)

將每個你需要例項化的屬性都封裝在這個常量暫存器中

unity_define_instanced_prop(type, name)

在上面的start和end間把需要的每條屬性加進來

unity_setup_instance_id(v);

需放在頂點著色器/片斷著色器(可選)中最開始的地方,這樣才能訪問到全域性的unity_instanceid

unity_transfer_instance_id(v, o);

當需要將例項化id傳到片斷著色器時,在頂點著色器中新增

unity_access_instanced_prop(arrayname, propname)

在片斷著色器中訪問具體的例項化變數

materialpropertyblock prop = new materialpropertyblock();

prop.setcolor("_color", newcol); // 這裡修改的屬性,一定要在shader中用instance宣告好,不然會打斷instance的批次.

tree.getcomponentinchildren().setpropertyblock(prop);

C 例項化類的詳細介紹

我們定義乙個類後,就必須例項化才給使用。例項化就是建立乙個物件的過程。在c 中,我們使用new運算子關鍵字來建立。類 物件 new 類 即 class object new class 這樣就生成了乙個物件。比如有乙個類叫汽車。你現在想在程式中買一輛,所以你用new來買了一輛汽車,這輛車你得給你找個...

vue專案初始化詳細步驟

第二步 安裝vue cli手腳架 在cmd下執行命令cnpm install vue cli g 第三步 進入需要新建專案的目錄 cd d test 第四步 執行命令 vue init webpack demo 注 demo是專案名稱 第五步 顯示project nanme 目錄名 回車 proje...

例項化乙個類的步驟

用程式測試了一下例項化乙個類的步驟,現總結如下,不對之處請指正。1 從堆 heap 中為例項變數以及其他資料 如指向其他類的指標以及方法的資料 分配記憶體 2 例項變數初始化 a.先初始化最高一級父類中的static變數,再按級別由高到低,最後初始化當前類中的static變數 b.先初始化最高一級父...