FoliMesh

three.js向け低木

three/addons の GLTFLoader で低木の GLB を読み込めます。Draco や KTX2 圧縮を使ったファイルでなければ、追加のローダーは不要です。8 つのモデル——竹、低木、ツゲ、生け垣、ビャクシン、野バラ、ラズベリー、ハシバミ——は LOD0–LOD3 を備え、THREE.LOD の lod.addLevel(mesh, distance) でカメラ距離に応じてディテールが切り替わり、コリジョンメッシュは Rapier や cannon-es 用に非表示のまま使えます。

森の縁や都市の公園なら、InstancedMesh が数千のコピーを 1 回の draw call で描画し、BatchedMesh は複数のバリエーションを混在させられます。THREE.LOD はインスタンス単位では効かないため、チャンクごとにインスタンスを LOD でまとめてください。alphaMode が MASK の葉は material.alphaTest になり、両面マテリアルには THREE.DoubleSide が自動で付きます。WebGLRenderer と WebGPURenderer の両方で動作し、シードを変えるたびに新しい配置が得られます。

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

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 のどちらでも動作します。

パック

その他のカテゴリー

他のスタイルで見る

他のエンジン向け