FoliMesh

Babylon.js向け岩

@babylonjs/loaders の glTF ローダーを使えば、これらの岩石 GLB は ImportMeshAsync で読み込めます。多数のコピーが必要なときは LoadAssetContainerAsync と instantiateModelsToScene を組み合わせます。各モデルは LOD0〜LOD3 を備え、lod0.addLODLevel(30, lod1) や addLODLevel(80, lod2) を設定すれば、断崖や岩の散らばりをブラウザ上で軽く保てます。MASK テクスチャはアルファテスト付きの PBRMaterial になり、非表示のコリジョンメッシュは checkCollisions や Havok の PhysicsAggregate でそのまま使えます。

収録モデルは小石、石、巨岩、岩盤スラブ、岩の散らばり、断崖、岩付きの断崖の7点で、ピボットはすべて底面にあるため地形への配置が簡単です。密集した岩場では行列を使った thinInstanceAdd がメッシュごとに1ドローコールで描画し、個別のピッキングが必要な巨岩には createInstance が向いています。新しいシードごとに、リアル調でもローポリでも無限にバリエーションが生まれます。

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

パック

その他のカテゴリー

他のスタイルで見る

他のエンジン向け