Tüm yazılar
Eğitimler · 8 min read

Dağıtılmış bitki örtünüz neden sahte görünüyor: bunu düzelten beş kural

Rastgele dağıtım, doğanın işleyiş biçimi değildir. Kümeleme, türler arası çekme/kaçınma ilişkileri, kenar gradyanları, yapılandırılmış boyut değişimi ve arazi mantığı: prosedürel yerleştirmeyi inandırıcı bir ekosisteme dönüştüren beş kural, her birini çalıştıran sayılarla.

Illustration comparing an evenly spaced grid of dots with natural clusters

Kısaca: saf rastgelelik yapay okunur çünkü gerçek bitki örtüsü rastgelenin tam tersidir: ışık, su ve toprak için rekabetin görünür sonucudur. Bu ekolojinin hiçbirini simüle etmenize gerek yok. Onun sonuçlarını taklit eden beş yerleştirme kuralına ihtiyacınız var: kümele, türleri ilişkilendir, kenarları dereceli yap, boyutları yapılandır ve neyin büyüyeceğine araziyi karar verdir. Bu yazı her kuralı somut sayılarla verir, ayrıca sahte dağılımı herkesten önce yakalayan gri tonlama testini.

Dağ vadisi: nem ve eğime göre kümelenen kozalaklılar, aralarında çayırlar Bunu hiçbir bahçıvan yerleştirmedi. Ağaçlar su ve barınak boyunca öbekleşir, kaya ve sırtta seyrelir, ve çayırdan-ormana kenar bir gradyandır. Bu yazıdaki her kural tek bir fotoğrafta görünür.

Temel içgörü: doğa, kurallar artı gürültüdür

Beş kuraldan önce, onları yerine oturtan zihinsel model: gerçek bir manzara ne rastgeledir ne düzenli, üstüne gürültü serpilmiş, kurallarla yönlendirilir. Tohumlar ebeveynin yakınına düşer, bitkiler ışık için yarışır, su vadilerde birikir, rüzgâr açık sırtları cezalandırır. Sonuç tam da basit kurallar onu ürettiği, sonra rastgelelik kenarları pürüzlendirdiği için organik görünür. Tekdüze rastgele yerleştirme kuralları atlar ve yalnızca gürültüyü tutar, bu yüzden "bunu bilgisayar yaptı" diye okunur. Aşağıdaki her şey, kuralları ucuza geri eklemenin bir yoludur.

Kural 1: doğa kümelenir

Tekdüze rastgele yerleştirme, Dünya'da hiçbir yerde var olmayan eşit bir serpme üretir. Gerçek bitkiler onları eken şeyin etrafında öbekleşir, öbekler arasında gerçekten boş boşluklarla. Kümelemeyi güvenli hissettiğinizden daha ileri itin.

Ağaçlar korularda durur; çiçekler yamalar hâlinde açar; çöl çalısı bile drenaj hatları çevresinde toplanır. Öbekler arasındaki boş alan boşa gitmez: öbeklerin okunmasını sağlayan, görüş hatlarına nefes alacak yer veren ve (bonus) tekdüze doldurmadan daha ucuza render alan odur, çünkü boş zemin hiçbir şeye mal olmaz ve öbekler birim olarak cull edilir. Pratik bir hedef: matematiksel olarak eşit bir alan yerine, aralarında birkaç öbek genişliği boşluk olan 3–12 örneklik öbek boyutları hedefleyin.

Neden "güvenli hissettiğinizden daha ileri"? Çünkü editörde, üstten görünümde güçlü kümeleme fazla seyrek görünür: içgüdünüz boşlukları doldurmaktır. Sonra göz hizasına inip yürürsünüz ve boşluklar açıklıklara, görüş hatlarına ve ışığın biriktiği yerlere dönüşmüştür. Yer seviyesi okumasına üstten okumadan daha çok güvenin; üstten görünüm yoğunluk hissinize yalan söylüyor.

Kural 2: türlerin ilişkileri vardır

İki ilişki türü ekolojinin çoğunu kapsar: ÇEK (gövdelere yakın mantarlar, duvarlara yakın sarmaşık, suya yakın sazlar) ve KAÇIN (yoğun kanopiden uzak yer çiçekleri, olgun ağaçlardan uzak fideler). Bir avuç çift, asset sayınızı ikiye katlamayı yener.

Orman zemininde yosunlu bir kütükte kümelenmiş mantarlar Mantarlar bir çayıra rastgele dağılmaz, ölü oduna ve neme uyarlar. Tek bir "gövdelere ve kütüklere çek" kuralı bunu anında yeniden üretir ve izleyiciler nedenini bilmeden bunu gerçek olarak okur.

Neredeyse her ılıman sahnede hakkını veren çiftler:

  • mantarlar → ağaç gövdelerine ve düşmüş kütüklere çek (ayrıştırıcılar ölü odunu izler)
  • çim → yoğun kanopiden kaçın (ışık rekabetini kaybeder)
  • eğrelti otları → gölge kenarlarına çek (karanlık değil, nem isterler)
  • genç ağaçlar → yaşlı ağaçlardan kaçın (ebeveyn fideyi gölgeler)
  • sazlar → su hatlarına çek; çayır çiçekleri → onlardan kaçın
  • kayalar/kaya blokları → yamaç eteklerine çek (aşağı yuvarlanıp toplanırlar)

Bunun gerçekçiliği bu kadar ucuza satmasının nedeni: izleyiciler botaniği bilinçli olarak bilmez, ama bu ilişkilerin geçerli olduğu on bin gerçek sahneden yürüyerek geçmişlerdir. İhlaller, oyuncu ormanın neden yanlış hissettirdiğini dile getiremeden "oyunumsu" olarak kaydolur. Mesafe parametreleriyle çek/kaçın ilişkilerini konuşan bir scatter kurulumu (Numivo'nun scatter'ı'nın yaptığı gibi) yukarıdaki tüm listeyi, siz boyarken otomatik değerlendirilen beş altı kural girişine dönüştürür.

Kural 3: ormanlar kenarlarda yapılır

Bir orman sınırı, yetişkin ağaçlardan bir duvar değildir, bir gradyandır: çim, sonra çalılar, sonra küçük ağaçlar, sonra kanopi, genellikle 5–15 metre boyunca. İki bölgenin buluştuğu her yere bir geçiş bandı ayırın.

Ekolojistler buna ekoton der ve göz zamanının çoğunu orada geçirir, çünkü patikalar, yollar, kamplar ve savaş alanlarının hepsi kenarlara sokulur. Derin orman zaten çoğunlukla örtülüdür. İyi bir kenar gradyanı, her seferinde iyi bir derin-orman karışımını geçer. Aynı ilke her sınırda geçerlidir: çayır/kaya, kaya/su, su/kum, ekili/yabani. Bitki örtünüze tek bir "gelişmiş" şey yapacaksanız, onu kendi tür karışımlarına sahip kenar bantları yapın, çünkü bu mevcut en yüksek kaldıraçlı değişikliktir.

Kaçınılacak başarısızlık modu sert kenardır: yoğun ormanın çıplak çayıra dönüştüğü keskin bir çizgi. Doğada bu çizgiye biçilmiş bir çim ya da buldozer dışında hiçbir şey sahip değildir. Bir yangın sınırı ya da ağaç sınırı bile metreler boyunca tüylenir. Sert bir bitki kenarı, bir level tasarım sınırı olarak okunur; bu da tam oyuncuların en çok baktığı yerde daldırmayı kırar.

Kural 4: boyut bir hikâye anlatır

Özdeş ölçek anında ele verir, ama saf rastgele ölçek ancak biraz daha iyidir. Yapılandırın: korunaklı merkezlerde daha büyük örnekler, açık kenarlarda rüzgâr yemiş daha küçükler, artı küçük bir rotasyon ve birkaç derece eğim.

İncelemeye dayanan yararlı varsayılanlar:

  • Bir tür içinde 0,85–1,25× ölçek aralığı, kenarlarda ve yükseklikte küçüğe eğilimli, oysa tekdüze ±%40 rastgelelik bir oyuncak kutusu gibi görünür çünkü mantık olmadan devleri cücelerin yanına koyar.
  • Her şeyde rastgele yaw; geniş yapraklı ağaçlar ek olarak 2–5° eğim alır. Bir yamaçta tamamen dikey ağaçlar "yerleştirildi" diye bağırır. Bir yamaçtaki gerçek ağaçlar eğilir, ışığa uzanır ve eğri büyür.
  • Örnekleri zemine 2–5 cm gömün. Ayak bileği yüksekliğinde havada duran çim, var olan en yaygın scatter artefaktıdır; editörde görünmez, ekran görüntüsünde göze batar.
  • Örnek başına birkaç yüzdelik renk değişimi, büyük alanlarda kopyala-yapıştır parıltısını mesh varyantları eklemekten daha etkili kırar, çünkü göz tekrarlanan rengi tekrarlanan şekilden daha hızlı yakalar.

Daha derin nokta: boyut, kümeleme ve kenarların anlattığı aynı hikâyeyi kodlamalı. Vadide büyük korunaklı ağaçlar, sırtta bodurlar, ışığın girdiği parlak orman kenarında fideler. Boyut konumla uyuştuğunda, sahne bir geçmişi olan bir ekosistem olarak okunur; boyut rastgele olduğunda, araziye serpilmiş asset'ler olarak okunur.

Kural 5: neyin büyüyeceğine arazi karar verir

Eğim ve yükseklik maskeleri bedava ekolojidir: dik yüzeyler çim değil kaya ve dayanıklı çalı tutar; vadi tabanları sırt hatlarından daha gür; türler yükseklikle değişir. Zaten sahip olduğunuz geometri bunu kodlar.

Algıya iyi eşlenen eşikler: çim ve yer örtüsü ~30–35° eğimin üstünde silinir; çalılar ~45°'ye kadar tutunur; ötesinde çıplak kaya ve arada bir kaya sakini. Yükseklik bantları küçük sahnelerde bile önemlidir: bir vadi karışımı ve bir sırt karışımı, geçiş üzerinde harmanlanmış, düz tekdüze örtünün asla ulaşamayacağı bir büyük dünya mantığı satar. Motorunuzun izin verdiği yerde nemi üçüncü maske olarak ekleyin (suya yakın, çukurlarda) ve gerçek ekosistemlerin aslında yanıt verdiği üç ekseni kodlamış olursunuz: ışık, yükseklik ve su.

Arazi maskelerinin güzelliği, oluşturmanın hiçbir maliyeti olmamasıdır, çünkü eğim ve yükseklik verisi zaten heightmap'inizde vardır. Çimin nereye gideceğini boyamıyorsunuz; sisteme "çim, ama uçurumlarda değil" diyorsunuz ve uçurumlar kendilerini maskeler.

Hepsini bir araya getirmek

Cesaret verici kısım: kurallar tek bir geçişte birleşir. Kümelenmiş meşeler + onlara çekilen mantarlar + kanopiden kaçınan çim + orman kenarında bir çalı bandı + uçurumları çıplak tutan eğim maskeleri: bu beş ayardır, beş haftalık el yerleştirmesi değil. Sonra son kontrolü çalıştırın.

Gri tonlama gözkısma testi: sahnenin ekran görüntüsünü alın, siyah beyaza çevirin ve gözlerinizi kısın. Gerçek bitki örtüsü düzensiz, öbekli değer desenleri üretir: koyu kütleler, parlak açıklıklar, huzursuz bir doku. Gri tonlamanız pürüzsüz, eşit gürültü gibi görünüyorsa, dağılımınız altta hâlâ tekdüzedir ve Kural 1'e dönüp kümelemeyi daha sert itmeniz gerekir. Bu test işe yarar çünkü doygunluğu almak size yaltaklanan rengi soyar ve yalnızca dağılımı bırakır. Doğal ya da sahte olarak asıl okunan da odur.

Çalmaya değer saha rakamları

  • Doğal okunan öbek boyutu: 3–12 örnek, birkaç öbek genişliği boşluk
  • Orman kenarı gradyanı genişliği: 5–15 m özel geçiş bandı
  • Ölçek varyansı: 0,85–1,25×, kenarlarda ve yükseklikte küçüğe eğilimli
  • Eğim: geniş yapraklı ağaçlarda 2–5°; zemine gömme: her şeyde 2–5 cm
  • Çim için eğim kesme: ~30–35°; çalılar: ~45°
  • Zengin bir sahne için gereken türler: ~2 kanopi, 2 çalı, 2–3 yer, 1–2 aksan (dağılım sayıyı yener)

Mini-SSS

Bu stilize oyunlar için geçerli mi? Tamamen. Kümeleme, kenarlar ve arazi mantığı dağılımla ilgilidir, sadakatle değil. Doğal dağılıma sahip elle boyanmış bir dünya, tekdüze serpmeli fotogerçekçi bir dünyadan daha inandırıcı okunur. Dağılım, oyuncuların dokudan önce ilk okuduğu katmandır.

Gerçekten kaç türe ihtiyacım var? Sandığınızdan az. Bir sahne, iki kanopi ağacı, iki çalı, iki üç yer örtüsü ve birkaç aksan türü üzerinde, aralarında ilişkilerle, iyi taşınır. Dağılım kalitesi her seferinde tür sayısını yener: kurallarla yerleştirilmiş on asset, rastgele yerleştirilmiş kırk asset'i yener.

Peki performans? Kümeleme dostunuzdur: öbekler birim olarak cull edilir, boşluklar hiçbir şeye mal olmaz ve kenar bantları detayı oyuncuların baktığı yere yoğunlaştırır. Doğal görünümlü scatter genellikle tekdüze yoğunluktan daha ucuzdur, daha pahalı değil, çünkü doldurmaya heves ettiğiniz boş alan bedava kare zamanıdır.

Bütün bunu tek bir büyük gürültü dokusuyla taklit edebilir miyim? Kısmen: gürültü size öbekleşme verir, ama tür ilişkilerini ya da kenar gradyanlarını değil; onlar sadece varyasyon yerine ekoloji olarak okunan parçalardır. Gürültü yalnızca Kural 1'dir; inandırıcılık Kural 2 ve 3'ten gelir.

Beş kural, bir geçiş ve doğrulamak için gri tonlama testi. Doğa rastgele değildir: üstüne gürültü serpilmiş, kurallarla yönlendirilir; iyi bir scatter kurulumunun tam olarak olduğu şey de budur.