FoliMesh

Babylon.js向けローポリスタイルの低木

ローポリの低木はそのまま GLB として Babylon.js に読み込めます。@babylonjs/loaders の ImportMeshAsync を使うか、同じ生け垣を何十個も並べるなら LoadAssetContainerAsync と instantiateModelsToScene を組み合わせます。葉はフラットシェーディングのソリッドな多面体ジオメトリで、色は頂点カラー(COLOR_0)に入っているため、アルファテストも半透明のオーバードローも不要です。モバイル GPU ではここが効きます。マテリアルは 1 つで済むので竹、生け垣、ビャクシン、ラズベリーはまとめてバッチ化でき、thin instances なら mesh ごとに 1 ドローコールで数千個を描画できます。

各低木には LOD0〜LOD3、コリジョン、底面ピボットが付属します。lod0.addLODLevel(30, lod1) と addLODLevel(80, lod2) でレベルを接続し、null を渡せばその距離から先は非表示になります。LOD0 は数百〜2,000 三角形程度。見えないコリジョンメッシュは checkCollisions や Havok の PhysicsAggregate にそのまま使えます。この多面体の下草は WebGL/WebGPU、VR、ストラテジー、シティビルダーに向いています。

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

ローポリスタイルについて

ローポリはレンダリング負荷もビルドサイズも最も軽いスタイルです。

  • フラットシェーディング:面ごとに 1 本の法線でくっきりした多面体の見た目になり、法線マップは不要です。
  • 色は頂点カラー(glTF COLOR_0)に格納:テクスチャなし、UV 作業なし、VRAM もほぼ消費しません。
  • 葉はアルファカードではなく実体のジオメトリ:アルファテストも半透明のオーバードローもなく、モバイル GPU で効きます。
  • シーン内の全モデルで 1 つのマテリアルを共有でき、樹木を簡単にバッチング・インスタンシングできます。
  • LOD0 の一般的な予算は数百〜2,000 ポリゴン程度です。

モバイル、WebGL/WebGPU、VR、ストラテジー、街づくり、スタイライズドなインディーゲームに向いています。エンジンでは頂点カラーを乗算するマテリアルを使ってください。

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

パック

その他のカテゴリー

他のスタイルで見る

他のエンジン向け