FoliMesh

Babylon.js için Low-poly tarzında Çalılar

Low-poly çalılar Babylon.js'e düz GLB olarak giriyor: @babylonjs/loaders içindeki ImportMeshAsync ile ya da aynı çit bitkisi onlarca kez tekrarlanacaksa LoadAssetContainerAsync ve instantiateModelsToScene ile yükle. Yapraklar düz gölgeli, katı ve köşeli geometri; renk vertex color (COLOR_0) içinde duruyor, yani alpha testi ve saydam overdraw yok — mobil GPU'larda bu önemli. Tek bir malzeme tüm seti kapsıyor, bu yüzden Bambu, Çit bitkisi, Ardıç ve Ahududu rahatça batch'leniyor; thin instances binlerce kopyayı mesh başına tek draw call'da çiziyor.

Her çalı LOD0–LOD3, çarpışma ve tabanda pivot ile geliyor. Seviyeleri lod0.addLODLevel(30, lod1) ve addLODLevel(80, lod2) ile bağla; null verirsen nesne o mesafeden sonra gizlenir. LOD0 birkaç yüz ile iki bin üçgen aralığında kalıyor. Görünmez çarpışma mesh'i checkCollisions veya Havok PhysicsAggregate ile çalışıyor. Bu köşeli çalılık WebGL/WebGPU, VR, strateji ve şehir kurma oyunlarına uygun.

Modeller
8
Detay seviyeleri
LOD0 – LOD3
Formatlar
GLB · FBX · OBJ

Low-poly tarzı hakkında

Low-poly bitki örtüsü, hem render hem de build boyutu açısından en ucuz stildir.

  • Düz gölgelendirme: yüz başına tek normal net, köşeli görünümü verir; normal map yoktur.
  • Renk vertex’lerde saklanır (glTF COLOR_0): doku yok, UV işi yok, neredeyse hiç video belleği yok.
  • Yapraklar alpha kart değil, katı geometridir: alpha test ve şeffaf overdraw yoktur; bu, mobil GPU’larda önemlidir.
  • Sahnedeki tüm modeller tek bir materyali paylaşabilir, böylece ağaçlar kolayca batch’lenir ve instance’lanır.
  • LOD0 için tipik bütçe birkaç yüz ile birkaç bin üçgen arasındadır.

Mobil, WebGL/WebGPU, VR, strateji, şehir kurma ve stilize bağımsız oyunlar için uygundur. Motorda vertex rengiyle çarpan bir materyal kullanın.

Babylon.js içinde kullanım

Babylon.js, GLB’yi @babylonjs/loaders içindeki glTF yükleyicisiyle yükler: ImportMeshAsync (eski kodda SceneLoader.ImportMeshAsync) ya da instantiateModelsToScene ile çok sayıda kopya gerektiğinde LoadAssetContainerAsync.

  • LOD: lod0.addLODLevel(30, lod1), addLODLevel(80, lod2) vb.; mesh yerine null vermek nesneyi o mesafeden sonra gizler.
  • Binlerce ağaç: thin instance’lar (thinInstanceAdd ve matrisler) mesh başına tek draw call ile çizilir; her ağacın kendi picking’i veya mantığı gerekiyorsa normal createInstance kullanın.
  • Yapraklar: glTF MASK, alpha test’li bir PBRMaterial’e (MATERIAL_ALPHATEST) dönüşür.
  • Çarpışma mesh’i: isVisible = false yapın ve checkCollisions veya Havok fiziğiyle (MESH şekilli PhysicsAggregate) kullanın.

Paketler

Diğer kategoriler

Diğer tarzlarda aynısı

Diğer motorlar için aynısı