リアルタイム コンピュータ グラフィックスでは、ジオメトリのインスタンス化とは、シーン内で同じメッシュの複数のコピーを一度にレンダリングする手法です。この手法は主に、過度に繰り返しに見えることなく繰り返しジオメトリとして表現できる木、草、建物などのオブジェクトに使用されますが、キャラクターにも使用できます。頂点データはインスタンス化されたすべてのメッシュで複製されますが、各インスタンスでは、繰り返しの外観を減らすために、 他の差別化パラメータ (色、スケルトン アニメーションのポーズなど) が変更されることがあります。
APIサポート
Direct3Dバージョン 9以降、 Microsoft はジオメトリのインスタンス化のサポートを追加しました。この方法では、個別のストリームでそれぞれに異なるパラメータを指定して、メッシュの複数のコピーを順番にレンダリングすることを明示的に許可することで、インスタンス化されたジオメトリのレンダリングの潜在的な実行時パフォーマンスが向上します。同じ機能は、 Vulkanコアとバージョン 3.1 以降のOpenGLコアで使用できますが、拡張機能を使用して以前の実装の一部でアクセスできる場合がありますEXT_draw_instanced。
オフラインレンダリング
Houdini、Mayaなどの3D パッケージでのジオメトリのインスタンス化では通常、静的または事前にアニメーション化されたオブジェクトまたはジオメトリをパーティクルまたは空間内の任意のポイントにマッピングし、ほぼすべてのオフライン レンダラーでレンダリングできるようにします。オフライン レンダリングでのジオメトリのインスタンス化は、昆虫の群れなどを作成する場合に便利です。昆虫の群れでは、昆虫はそれぞれを詳細に描写できますが、アニメーターが決定する必要のないリアルな動作をします。ほとんどのパッケージでは、インスタンスごとにマテリアルまたはマテリアル パラメータを変更できるため、インスタンスが互いの正確なコピーのように見えないようにすることができます。Houdini では、多くのオブジェクト レベルの属性 (スケールなど) もインスタンスごとに変更できます。ほとんどの 3D パッケージでのジオメトリのインスタンス化では元のオブジェクトのみを参照するため、ファイル サイズが非常に小さく抑えられ、元のオブジェクトを変更するとすべてのインスタンスが変更されます。
Pixar のPhotoRealistic RenderManなどの多くのオフライン レンダラーでは、インスタンス化は、インスタンスを含むバケットが実際にレンダリングされているときにのみジオメトリをロードする遅延ロード レンダリング プロシージャを使用して実現されます。つまり、すべてのインスタンスのジオメトリを一度にメモリ内に置く必要はありません。
ジオメトリインスタンスをサポートするビデオカード
- GeForce 6000以上(NV40 GPU以降)
- ATI Radeon 9500 以上 (R300 GPU 以降)。
- PowerVR SGX535以上(Apple iPhone 3GS以降に搭載)[1]
参考文献
- ^ 「iOS デバイス互換性リファレンス: OpenGL ES グラフィックス」。2014 年 5 月 21 日。2014 年 5 月 21 日時点のオリジナルよりアーカイブ。
外部リンク
- EXT_draw_instanced ドキュメント
- MSDN の D3D9 インスタンス化に関する簡単な概要
- VkVertexInputRateは頂点またはインスタンスのレートを指定します
