FoliMesh

Babylon.js向けグラウンドカバー

Babylon.js は @babylonjs/loaders の glTF ローダーで GLB を読み込みます。ImportMeshAsync を使い、複製を大量に作るなら instantiateModelsToScene と LoadAssetContainerAsync を組み合わせます。シダ、草むら、アシは LOD0–LOD3 とコリジョンメッシュ付きなので、ブラウザでも林床や水辺を軽いまま描けます。

LOD は lod0.addLODLevel(30, lod1)、addLODLevel(80, lod2) でつなぎ、メッシュに null を渡すとその距離以遠は非表示になります。数千の草むらは thin instances(thinInstanceAdd に行列)でメッシュごと 1 ドローコール、個別にピッキングしたい場合だけ createInstance を使います。葉は glTF MASK で alpha テスト済みの PBRMaterial になります。コリジョンメッシュは isVisible = false にして checkCollisions か Havok(MESH シェイプの PhysicsAggregate)で使います。

モデル
3
LODレベル
LOD0 – LOD3
フォーマット
GLB · FBX · OBJ

Babylon.jsでの使い方

Babylon.js は @babylonjs/loaders の glTF ローダーで GLB を読み込みます。ImportMeshAsync(古いコードでは SceneLoader.ImportMeshAsync)、多数のコピーが必要なら LoadAssetContainerAsync と instantiateModelsToScene を使います。

  • LOD:lod0.addLODLevel(30, lod1)、addLODLevel(80, lod2) のように登録します。メッシュに null を渡すと、その距離より先でオブジェクトが非表示になります。
  • 数千本の木:Thin Instances(行列を渡す thinInstanceAdd)はメッシュごとに 1 ドローコールで描画できます。木ごとにピッキングやロジックが必要なら通常の createInstance を使います。
  • 葉:glTF の MASK はアルファテストの PBRMaterial(MATERIAL_ALPHATEST)になります。
  • コリジョンメッシュ:isVisible = false にして、checkCollisions か Havok 物理(MESH 形状の PhysicsAggregate)で使います。

その他のカテゴリー

他のスタイルで見る

他のエンジン向け