「ハードウェアインスタンシング」の版間の差分

imported>Administrator
 
編集の要約なし
 
(同じ利用者による、間の1版が非表示)
1行目: 1行目:
'''ハードウェアインスタンシング'''([[英語]]:hardware instancing)とは、[[GPU]]内で3Dモデルを複製する機能のことである。「ジオメトリインスタンシング」や「GPUインスタンジング」などとも呼ばれる。
'''ハードウェアインスタンシング''' ([[英語]]:hardware instancing)とは、[[GPU]]内で3Dモデルを複製する機能のことである。「ジオメトリインスタンシング」や「GPUインスタンジング」などとも呼ばれる。


==概要==
== 概要 ==
1回の[[ドローコール]]で、位置などが異なる複数の「同一モデル」を描画することができる。
ハードウェアインスタンシングは1回の[[ドローコール]]で「位置」や「向き」などが異なる複数の「同一モデル」を描画することができるという機能である。


一般的なドローコールでは「[[バーテックスバッファ]]」と「[[インデックスバッファ]]」を設定して[[GPU]]を呼び出す。
一般的なドローコールでは「[[バーテックスバッファ]]」と「[[インデックスバッファ]]」を設定して[[GPU]]を呼び出す。


ハードウェアインスタンジングではこれらに加えて「位置」や「向き」などの情報を格納した「ダイナミックバーテックスバッファ」を設定して[[GPU]]を呼び出す。
ハードウェアインスタンジングではこれらに加えて「位置」や「向き」などの情報を格納した「ダイナミックバーテックスバッファ」を設定して[[GPU]]を呼び出す。すると[[GPU]]はダイナミックバーテックスバッファを参照して、その個数だけ[[バーテックスシェーダー]]を実行してくれるというものである。


すると[[GPU]]はダイナミックバーテックスバッファを参照して、その個数だけ[[バーテックスシェーダー]]を実行してくれるというものである。
==主なプラットフォームの対応状況==
 
ハードウェアインスタンジングを利用するには[[ハードウェア]]([[GPU]])が対応している必要がある。未対応の環境では[[ドローコール]]した時点でエラーになる。
==対応==
[[ハードウェア]]([[GPU]])が対応している必要があり、未対応の環境では[[ドローコール]]した時点でエラーになる。


===Windows===
===Windows===
21行目: 19行目:


===Android===
===Android===
[[Android]]ではOpenGL ES 3.0以降で対応している。[[OS]]的には「Android 4.3以降がOpenGL ES 3.0対応」となるが、これ以降のバージョンを搭載している製品でも[[ハードウェア]]的に未対応の製品が多い。
[[Android]]では[[OpenGL ES 3.0]]以降で対応している。[[OS]]的には「Android 4.3以降がOpenGL ES 3.0対応」となるが、これ以降のバージョンを搭載している製品でも[[ハードウェア]]的に未対応の製品が多い。


つまり[[スマホ]]などの[[OpenGL ES]]系のプラットフォームでは未対応だと思ったほうがいい。
つまり[[スマホ]]などの[[OpenGL ES]]系のプラットフォームでは未対応だと思ったほうがいい。
36行目: 34行目:


==関連項目==
==関連項目==
* [[ドローコール]]
* [[メッシュベイカー]]
* [[擬似インスタンシング]]
* [[MonoGameでハードウェアインスタンシングしてみる]]


*[[ドローコール]]
[[category: 3DCG]]
*[[メッシュベイカー]]
*[[擬似インスタンシング]]
*[[MonoGameでハードウェアインスタンシングしてみる]]
 
<br />