FoliMesh

PlayCanvas向けローポリスタイルのグラウンドカバー

PlayCanvas は GLB を container アセットとして扱います。シダ、草むら、アシをエディタに読み込めばモデル階層つきのテンプレートが得られ、エディタを使わないコードでは app.assets.loadFromUrl(url, 'container') と asset.resource.instantiateRenderEntity() を使います。LOD コンポーネントは標準で用意されていないため、短いスクリプトでカメラ距離を比較し、LOD0–LOD3 のエンティティの render コンポーネントを切り替えます。LOD0 のポリゴン数は数百から 2000 トライアングル程度です。

ローポリのグラウンドカバーは色を頂点カラー(glTF COLOR_0)に持ち、フラットシェーディングを使うのでテクスチャも UV 展開も不要で、ビデオメモリの消費はごくわずかです。葉はアルファカードではなく中身のあるジオメトリなので、アルファテストも半透明のオーバードローも発生せず、モバイル GPU に向いています。1 つのマテリアルを全モデルで共有できるため、シダや草、アシはバッチグループやハードウェアインスタンシングでまとめて描画できます。

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

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

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

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

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

PlayCanvasでの使い方

PlayCanvas は GLB をコンテナアセットとして扱います。エディターでは GLB をアップロードすると(FBX はインポート時に GLB へ変換)モデル階層付きのテンプレートができ、エンジン単体のコードでは app.assets.loadFromUrl(url, 'container') と asset.resource.instantiateRenderEntity() を使います。

  • LOD:組み込みの LOD コンポーネントはないため、小さなスクリプトでカメラとの距離を比較し、LOD0〜LOD3 エンティティの render コンポーネントを切り替えます。
  • 静的な木は同じバッチグループにまとめてドローコールを統合できます。大きな森では meshInstance.setInstancing() と変換行列の頂点バッファでハードウェアインスタンシングを使います。
  • 葉:glTF の MASK で StandardMaterial の alphaTest が設定されます。両面の葉にはカリングモードを none にします。
  • コリジョンメッシュ:mesh タイプの collision コンポーネントと静的 rigidbody を付け、render コンポーネントは無効にします。

その他のカテゴリー

他のスタイルで見る

他のエンジン向け