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

スクリプト言語

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

CommandBuffer.DrawProceduralIndirect

フィードバック

ありがとうございます

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

閉じる

送信に失敗しました

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

閉じる

キャンセル

マニュアルに切り替える
public function DrawProceduralIndirect(matrix: Matrix4x4, material: Material, shaderPass: int, topology: MeshTopology, bufferWithArgs: ComputeBuffer, argsOffset: int = 0, properties: MaterialPropertyBlock = null): void;
public void DrawProceduralIndirect(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset = 0, MaterialPropertyBlock properties = null);

パラメーター

matrix 使用するトランスフォーム(変換)マトリックス
material 使用するマテリアル
shaderPass 使用するシェーダーのパス (あるいはすべてに -1 を渡します。)
topology プロシージャルジオメトリのトポロジー
properties レンダリングの前にだけ適用するマテリアルプロパティーを追加します。 MaterialPropertyBlock を参照してください。
bufferWithArgs Draw Arguments のバッファ
argsOffset Draw Arguments をバッファ内でオフセットします。

説明

"draw procedural geometry" コマンドを追加。

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

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

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

頂点シェーダーで、通常、いくつかのバッファからデータをフェッチするのに SV_VertexID や SV_InstanceID の入力変数を使用します。

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