Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

Graphics.DrawProceduralIndirect

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える
public static function DrawProceduralIndirect(topology: MeshTopology, bufferWithArgs: ComputeBuffer, argsOffset: int = 0): void;
public static void DrawProceduralIndirect(MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset = 0);

パラメーター

topology プロシージャルジオメトリのトポロジー
bufferWithArgs Draw Arguments のバッファ
argsOffset Draw Arguments をバッファ内でオフセットします。

説明

GPU に完全なプロシージャルジオメトリを描画します。

DrawProceduralIndirect は任意の頂点やインデックスのバッファーなしで GPU に Draw 呼び出しを行います。 ComputeBuffer から描画するジオメトリの量を読み取ります。 一般的な使用例は ComputeShader から任意の量のデータを生成し、 CPU へのリードバックを必要としないレンダリングです。

これはシェーダーが ComputeBuffer バッファーから任意のデータを読むことができる DirectX 11 や OpenGL 低レベルのハードウェアで便利です。

引数 bufferWithArgs バッファは 4 つの整数の argsOffset オフセットを持ちます。 インスタンスあたりの頂点数、インスタンス数、開始する頂点位置、開始するインスタンス位置 Direct3D11 の DrawInstancedIndirect や OpenGL ES 3.1 glDrawArraysIndirect 関数にマップします ( OpenGL ES 3.1 の最後の引数は予約され、使用されません)。

この呼び出しは Graphics.DrawMeshNow のようにすぐに実行されることに注意してください。現在のレンダーターゲット設定と変換行列と現在のシェーダーパス設定を使用します。

CommandBuffers にも同様の機能があります。 CommandBuffer.DrawProceduralIndirect を参照してください。

See Also: Graphics.DrawProcedural, ComputeBuffer.CopyCount, SystemInfo.supportsComputeShaders.