Thin Instance
Babylon.jsのThin Instanceは、通常のインスタンシング機能をより軽量化・最適化したバージョンです。
https://playground.babylonjs.com/#9L5XR7#38 … インスタンシング版
https://playground.babylonjs.com/#9L5XR7#40 … Thin Instance 版
https://scrapbox.io/files/6288d538e7e21800232a2159.gif
Thin Instanceとは
Thin Instanceは、同じメッシュを大量に描画する際に使用される機能で、各インスタンスごとに個別の変換行列(位置、回転、スケール)を設定できます。"Thin"(薄い・軽量)という名前の通り、メモリ使用量とCPUオーバーヘッドを最小限に抑えることを目的としています。
通常のインスタンシングとの違い
通常のインスタンシング
各インスタンスが独立したメッシュオブジェクトとして作成される
個別にマテリアルやプロパティを設定可能
シーングラフに個別に登録される
メモリ使用量が多い
柔軟性が高い
Thin Instance
元のメッシュを共有し、変換行列の配列のみを管理
全インスタンスが同一のマテリアルを使用
GPUインスタンシングを活用した高速描画
メモリ使用量が少ない
パフォーマンスに優れている
主な特徴
高性能: 数千〜数万のオブジェクトを効率的に描画可能
メモリ効率: 元メッシュの形状データを共有
GPU最適化: ハードウェアレベルでのインスタンシングを活用
制限: 全インスタンスが同じマテリアルとジオメトリを共有
Thin Instanceは、森林の木々、建物群、パーティクルシステムなど、同じ形状のオブジェクトを大量に配置する場面で威力を発揮します。
参考
Thin Instances | Babylon.js Documentation