FoliMesh

3D-Asset-Packs im Stil Realistisch für PlayCanvas

Ein GLB landet im PlayCanvas-Editor als Container-Asset mit vollständiger Modellhierarchie, aus dem ein Template wird; ohne Editor lädt dieselbe Datei über app.assets.loadFromUrl(url, 'container') und asset.resource.instantiateRenderEntity(). Jede Pflanze und jeder Fels bringt LOD0–LOD3 mit. Da PlayCanvas keine eingebaute LOD-Komponente hat, vergleicht ein kurzes Skript die Kameradistanz und schaltet die Render-Komponenten der Stufen um.

Realistisch heißt PBR Metal/Roughness: Rinde mit Base Colour, Normal- und Roughness-Maps, Blätter als alpha-getestete Karten mit Maske, die Tiefe schreiben, keine Sortierung brauchen und korrekte Schatten werfen. Rinde und Laub nutzen getrennte Materialien — planbare Draw Calls, ideal für GPU-Instancing von Laubwald oder Nadelwald per meshInstance.setInstancing(). Felsen & Klippen und das Wüsten-Kit passen zu Survival- und Open-World-Spielen im Browser; auf Mobilgeräten mit LOD1 oder LOD2 beginnen.

Über den Stil Realistisch

Realistische Modelle nutzen den PBR-Workflow Metal/Roughness, den glTF 2.0, Unity, Unreal, Godot und three.js direkt lesen.

  • Rinde: Base-Color-, Normal- und Roughness-Maps auf Stamm und Ästen.
  • Blätter: alpha-getestete (Masked) Cards mit Blattbüschel-Texturen statt Alpha-Blending – sie schreiben Tiefe, brauchen keine Sortierung und werfen korrekte Schatten.
  • Rinde und Laub haben getrennte Materialien; die Zahl der Draw Calls bleibt planbar und GPU-Instancing funktioniert problemlos.
  • LOD0 ist für die Nahansicht; LOD1–LOD3 entfernen Äste und Blatt-Cards, die letzte Stufe ist leicht genug für große Entfernungen.

Ideal für First- und Third-Person-Spiele, Survival, Open Worlds und Simulationen auf PC und Konsole. Auf Mobilgeräten LOD1 oder LOD2 als nächste Stufe verwenden und den Overdraw des Laubs im Blick behalten.

Verwendung in PlayCanvas

PlayCanvas behandelt GLB als Container-Asset. Im Editor GLB hochladen (FBX wird beim Import in GLB konvertiert) und ein Template mit der Modellhierarchie erhalten; in reinem Engine-Code app.assets.loadFromUrl(url, 'container') und asset.resource.instantiateRenderEntity() verwenden.

  • LOD: Eine eingebaute LOD-Komponente gibt es nicht; ein kleines Skript vergleicht den Kameraabstand und schaltet die Render-Komponenten der Entities LOD0–LOD3 um.
  • Statische Bäume können eine Batch Group teilen, um Draw Calls zusammenzufassen; für große Wälder Hardware-Instancing mit meshInstance.setInstancing() und einem Vertex Buffer der Transformationen nutzen.
  • Laub: glTF-MASK setzt alphaTest am StandardMaterial; für doppelseitige Blätter Cull Mode none verwenden.
  • Kollisionsmesh: Collision-Komponente vom Typ Mesh plus statischer Rigidbody, Render-Komponente deaktiviert.

Pakete

Dasselbe in anderen Stilen

Dasselbe für andere Engines