FoliMesh

Babylon.js向け低木

8 種類のモデル——竹、低木、ツゲ、生け垣、ビャクシン、野バラ、ラズベリー、ハシバミ——は GLB で提供され、Babylon.js では @babylonjs/loaders の glTF ローダーから ImportMeshAsync で読み込めます。生け垣を何十本も並べるときは LoadAssetContainerAsync と instantiateModelsToScene を使えばファイルの解析は一度で済み、メモリを抑えられます。

各モデルは LOD0–LOD3 と根元のピボットを備えるので、lod0.addLODLevel(30, lod1) と addLODLevel(80, lod2) を書くだけで段階表示でき、null を渡せば最後の距離より先で非表示になります。葉は glTF MASK を使い、Babylon 側では alpha test 付き PBRMaterial になります。非表示のコリジョンメッシュ(isVisible = false)は checkCollisions や Havok の PhysicsAggregate でそのまま使えます。密な茂みは thinInstanceAdd でメッシュごとに 1 ドローコール、個別にピッキングしたい低木は createInstance が向いています。

モデル
8
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)で使います。

パック

その他のカテゴリー

他のスタイルで見る

他のエンジン向け