FoliMesh

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

ローポリの低木は、three.js のシーンで幹と幹のあいだの地面を埋めるもっとも安価な手段です。GLB は three/addons の GLTFLoader で読み込み、LOD0〜LOD3 のメッシュを lod.addLevel(mesh, distance) で THREE.LOD に登録します。レベルは毎フレーム、カメラ距離に応じて切り替わります。ここでの葉はアルファカードではなく頂点カラー付きのソリッド形状なので、アルファテストも透明オーバードローも発生せず、モバイル GPU では大きな利点になります。

収録モデルは竹、低木、ツゲ、生け垣、ビャクシン、野バラ、ラズベリー、ハシバミの8点。フラットシェーディングにより LOD0 は数百〜二千トライアングル程度に収まり、マテリアルを共有できるため InstancedMesh や BatchedMesh で長い生け垣もごく少ないドローコールで描けます。コリジョンメッシュは非表示のまま Rapier や cannon-es に渡してください。ストラテジー、シティビルダー、スタイライズド VR 向けで、WebGLRenderer と WebGPURenderer の両方で動作します。

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

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

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

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

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

three.jsでの使い方

three.js では three/addons の GLTFLoader で GLB を読み込みます。DRACOLoader や KTX2Loader は、ファイルがその拡張を使う場合のみ必要です。

  • 距離 LOD:THREE.LOD に lod.addLevel(mesh, distance) で LOD0〜LOD3 を登録すると、毎フレームカメラとの距離でレベルが切り替わります。
  • 森:InstancedMesh なら数千本を 1 回のドローコールで描画でき、BatchedMesh では複数の樹木バリエーションを混在させられます。THREE.LOD はインスタンス単位では効かないため、チャンクごとに LOD 別のインスタンスグループを自前で管理します。
  • 葉:glTF の alphaMode MASK は material.alphaTest に、両面マテリアルは自動で side: THREE.DoubleSide になります。
  • コリジョンメッシュ:非表示にして、Rapier や cannon-es などの物理ライブラリに渡します。

WebGLRenderer と WebGPURenderer のどちらでも動作します。

パック

その他のカテゴリー

他のスタイルで見る

他のエンジン向け