Bulut dokusu haritalarını nasıl kolayca oluşturabilirim?


16

Oyunumda 3d gezegen yapıyorum; bunlar "küreler" olarak görülecektir. Bazılarının bulut katmanlarına ihtiyacı olacak. "Dünya" oluşturmak için çeşitli Blender eğiticilerine baktım ve bulut katmanları için NASA'nın dünya bulut haritalarını kullanıyorlar .

Bununla birlikte, yöntemsel olarak üretilmiş birçok gezegene sahip kurgusal bir evren yaratacağım. Bu yüzden birçok varyasyon kullanmak istiyorum.

NASA bağlantısı gibi işlemsel olarak bulut haritaları oluşturmanın bir yolu olduğunu umuyorum. Ayrıca gaz devleri yaratmam gerekecek, bu yüzden başka tür bulut doku haritalarına da ihtiyacım olacak .

Bu çok zorsa, bulut haritalarının birkaç varyasyonunu oluşturmaya geri dönebilirim. Örneğin, dünya benzeri için 3, gaz devleri için 3 vb.

Peki bu tür bulut haritalarını statik olarak nasıl oluştururum veya programsal olarak oluştururum?

Yanıtlar:


19

Bulut üretimi eğlencelidir! Hem çevrimdışı hem de çalışma zamanı yöntemlerini ele alacağım.

Bulutlu bulutlar

Bulut dokularınızı çevrimdışı olarak önceden oluşturmak istiyorsanız, Photoshop'tan (veya isterseniz Gimp) başka bir yere bakmayın . Her iki program da kolayca bulut kalıpları oluşturabilir. Menü öğeleri sürümler arasında hareket etme eğilimindedir, ancak Gimp 2.8.2'den itibaren aradığınız temel komuttur Filters -> Render -> Clouds -> Solid Noise. Komut etkinleştirilmeden önce yeni bir boş resim oluşturmanız gerekir. Gürültü parametrelerini denemenizi öneririm, ancak bir örnek olarak, "Rastgele Tohum" u 1, "Detay" ı 4, "X Boyutu" değerini 4,0, "Y Boyutu" değerini 8,0 olarak ayarladığınızda devre dışı kalırsanız ne olur? "Rastgele" ve "Türbülans" ve "Tilable" seçeneğini etkinleştirin: Gimp "Katı Gürültü" komutunun ham çıktısı

Kesinlikle tavsiye ettiğim bir diğer adım, görüntünün seviyelerini düzenlemek ( Colors -> Levels...Gimp'te). Uç noktaları etrafında sürükleyerek, bulut örtüsü düzeyini etkin bir şekilde "tamamen bulutlu" dan "gökyüzünde bir bulut değil" olarak değiştirebilirsiniz. Eşikli bulutlar

Diğer ilginç olasılıklar:

  • Görüntünün bölümlerini manuel olarak aydınlatmak / koyulaştırmak için "Soldur" ve "Yaz" araçlarını kullanın.
  • Rüzgar desenleri önermek için bulut görüntüsünü bükün. Gimp'in Filters -> Distorts -> Whirl and Pinch...komutunu deneyin veya Filters -> Distorts -> IWarp...Deforme Modu "Girdap" olarak ayarlandığında daha fazla kontrol kullanımı için. Yine de ince tutun - çok fazla çarpıtma, yüksek frekanslı ayrıntıları görüntüden bulanıklaştırma eğilimindedir.
  • İnce ve incecikten büyük ve tıknazlara kadar farklı bulut türlerini simüle etmek için birden fazla bağımsız bulut katmanı ekleyin (eminim, bilimsel isimlere sahip olduklarından eminim, ama lanet Jim, ben bir programcıyım, meteorolog değilim!). Bu durumda, muhtemelen her katmanı ayrı bir görüntü olarak kaydetmek istersiniz, böylece çalışma zamanında bağımsız olarak hareketlendirebilirsiniz.

Gerçekten sanatsal vizyonunuza bağlıdır. Çıldırmak! İşiniz bittiğinde, dokuyu tek kanallı gri tonlamalı bir görüntü olarak dışa aktarmayı unutmayın, böylece çalışma zamanında renk ve alfa kanalınız için aynı bulut verilerini kullanabilirsiniz.

Çalışma zamanı bulut üretimi

Çalışma zamanında sınırsız bulut kalıpları oluşturmak biraz daha kapsayıcıdır, ancak yine de tamamen mümkündür. Bu çok büyük bir konu ve bu sadece geniş vuruşları kapsayacak.

Temel olarak, sonsuz, pürüzsüz, deterministik (isteğe bağlı) periyodik gürültü hacimleri oluşturmak için kanonik Perlin Gürültüsü gibi bir gürültü işlevini kullanarak gölgelendirici kodunuzdaki Gimp'in "Katı Gürültü" komutunu çoğaltacaksınız . Sorunuz hangi oluşturma API'sını hedeflediğinizi belirtmedi, bu yüzden burada çok belirgin olamıyorum; "GPU Mücevherleri 2" nin 26. bölümü HLSL ve CgFX'deki (biraz tarihli) Perlin gürültüsünün bir varyantını kapsar veya bu bırakılan GLSL gürültü işlevini kullanabilirsiniz. 3D gürültü hacminin 2B dilimini örnekleyerek, Ayrıntı = 0 ile Gimp "Katı Gürültü" komutu gibi bir şey elde edersiniz. Gürültü hacmi örnekleriniz arasındaki mesafe ne kadar düşük olursa, gürültünüz o kadar düşük frekansta ("daha düzgün") olur. Yüksek frekanslı ayrıntı düzeyini artırmak için, temel bir düşük frekanslı gürültü modeliyle başlayın ve her bir "oktavın" daha geniş bir örnekleme mesafesine sahip 3D gürültü hacminin farklı bir dilimi olduğu ek yüksek frekanslı "oktav" gürültü ekleyin. ve daha düşük genlik. Bu sürecin görsel bir örneği (Google'da "çok oktavlı Perlin gürültüsü" ile bulduğum) burada bulunabilir .

Büyük bir avantaj olarak, bu şekilde üretilen bulut dokuları kolayca canlandırılabilir! 3B gürültü işlevi örnek koordinatlarınıza zamana dayalı bir ofset ekleyin ve son derece inandırıcı bulut hareketi elde edin ( örneğin bu videoda görüldüğü gibi). Bunun nedeni, gürültü işlevinin her üç boyutta da düzgün olmasıdır; dokuyu U / V yönünde kaydırmak bulutların gezegenin etrafında hareket etmesine neden olurken, W (dikey) yönünde kaydırma bulutları yavaşça "evrime" etkisine sahiptir.

Kasırga benzeri etkiler için çalışma zamanında çarpık bulutlar da mümkündür. Sonuçlar aslında (daha önce belirtildiği gibi) aşırı bulanık bir dokuya yol açabilen saf Gimp çözgü filtrelerinden çok daha yüksek kalitede olabilir. Kesinlikle bakmak istediğiniz bir teknik, Valve'dan Alex Vlachos ( SIGGRAPH 2010 slaytları ) veya Naughty Dog'dan Carlos Gonzalez ( GDC 2012 slaytları ) tarafından tarif edildiği gibi "akış haritaları" dır . Temel fikir, bir vektör alanını ("akış haritası") boyamanız ve distorsiyon mesafesi çok yükseldiğinde, iki farklı bulut dokusu arasında düzenli olarak çapraz geçiş yaparken bulut dokusunu çalışma zamanında deforme etmek ve kaydırmak için kullanmanızdır.

Hangi yöntemi kullanmalı?

Gimp / Photoshop'ta bulut dokularını önceden oluşturmak son derece kolaydır; asıldıktan sonra birkaç saniye içinde yeni bir doku oluşturabilirsiniz. Çalışma zamanı kodu önemsiz ve çok hızlı. Bununla birlikte, daha benzersiz bulut dokuları, daha yüksek disk alanı gereksinimleri (daha büyük / daha yavaş indirme) ve çalışma zamanında daha fazla VRAM kullanımı anlamına gelir.

Çalışma zamanı bulut üretimi ilk başta çok daha zordur, ancak çalıştıktan sonra, önceden oluşturulmuş bulut dokularına göre birkaç belirgin avantajı vardır. Ek disk alanı veya VRAM kullanmadan sınırsız çeşitlilikte gerçekçi animasyonlu bulut modelleri oluşturabilirsiniz. Bununla birlikte, piksel başına birden fazla 3D gürültü işlevini değerlendirmenin çalışma zamanı maliyeti dik olabilir; bulut piksel gölgelendiricileriniz, önceden oluşturulmuş durumda olduğundan çok daha yavaş olacaktır.

TL; DR: kesinlikle önceden oluşturulmuş bulutları kullanarak başlayın ve ekstra çeşitliliğe ihtiyacınız varsa (veya ekstra bir programlama zorluğu istiyorsanız) çalışma zamanı prosedür bulutlarına geçin.


1
Bu harika bir cevap: çok kapsamlı ve takip edilmesi kolay. Gördüğünüz gibi "rüzgar desenlerini önermek için bulutları çarpıtmak". Bu kesinlikle yapmam gereken bir şey, bu yüzden biraz ayrıntı verebilir misiniz? Bunu aldıktan sonra cevabınızı kabul edeceğim.
EdwardTeach

@EdwardTeach Tamamlandı; umarım yardımcı olur!
postgoodism
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.