GPU'da dünya simülasyonu
4 milyar yıl 4 dakikada
- Bu yazı, GLSL fragment shader ile yazılmış prosedürel bir Dünya simülasyonunun nasıl gerçekleştirildiğini ele alıyor
- Dünya benzeri bir gezegenin tüm tarihini birkaç dakika içinde simüle ediyor ve saniyede 60 kare hızında güncelleniyor
İlkel gezegen
- Hikâye, 4,5 milyar yıl önce bir lav kütlesiyle başlıyor
- Erken Dünya, asteroit çarpışmaları nedeniyle kızıl ve sıcak bir ilkel gezegendi
- Prosedürel olarak üretilen topoğrafya haritası üzerinden arazinin yüksekliği hesaplanıyor
- Farklı boyutlarda asteroit çarpma kraterleri oluşturuluyor ve bunlar üzerinden arazi yüksekliği belirleniyor
- Asteroit kraterleri 3D bir grid üzerinde oluşturuluyor ve düzensizlik katmak için hash fonksiyonu kullanılıyor
- Sonuçta üretilen yükseklik haritası, erken Dünya'nın görünümünü yeniden oluşturuyor
Levha tektoniği
- Dağ sıraları, hendekler ve kıtasal topoğrafya oluşturmak için levha tektoniği modeli kullanılıyor
- Başlangıç hızlarıyla levha tohum konumları rastgele oluşturuluyor ve levhalar zamanla büyüyor
- Levha sınırlarında çarpışma meydana geldiğinde arazi yüksekliği artıyor
- Bu çarpışma, termal erozyon modeli aracılığıyla çevredeki piksellere yayılıyor
Hidrolik erozyon
- Doğal arazinin engebeli görünümü büyük ölçüde nehir havzalarının oluşumu tarafından belirleniyor
- Düşük çözünürlüklü topoğrafya haritalarında bile nehirleri simüle edebilen bir model kullanılıyor
- Her piksel, çevresindeki 8 pikseli inceleyerek suyu en büyük eğim yönüne akıtıyor
- Erozyon, stream power yasası tarafından yönlendiriliyor
- Su akışı ile erozyonun etkileşimi sonucunda doğal nehir havzaları oluşuyor
Küresel iklim
- İklim sistemi simülasyonu, ortalama deniz seviyesi basıncı (MSLP) haritasına dayanıyor
- MSLP haritası, kara ve okyanusların konumundan ve enlemden etkileniyor
- Mevsimsel değişimlere göre iklim örüntülerinin değişmesi için MSLP haritası ayarlanıyor
- MSLP temel alınarak rüzgâr ve sıcaklık üretiliyor
- Rüzgâr, yüksek basınçtan alçak basınca doğru hareket ediyor ve Coriolis etkisi hesaba katılıyor
- Yağış, rüzgâr vektör alanı aracılığıyla okyanustan karaya taşınıyor
Yaşam
- İklim, gezegendeki yaşamın dağılımını etkiliyor
- Yağış örüntüleri ve sıcaklık değişimleri, bitki büyüme hızını belirliyor
- Otçullar ve yırtıcılar, mevsimsel değişimlere göre göç ediyor
- Bu dinamik değişimler, Lotka-Volterra difüzyon modeli kullanılarak simüle ediliyor
İnsanlık
- Erken Dünya'nın açılış perdesi sona erdikten sonra insanlık gezegen yüzeyini kolonileştiriyor
- Fosil yakıtları yakarak atmosfere karbon salıyor
- Yüzlerce yıl boyunca insanlık tüm fosil yakıt kaynaklarını tüketiyor ve atmosfere 5 trilyon ton karbon salıyor
- Bunun sonucunda sera etkisi güçleniyor ve Dünya'nın ortalama sıcaklığı yaklaşık 10 derece yükseliyor
- Ekvator çevresindeki geniş bölgeler, aşırı sıcaklıklar nedeniyle insanlar için yaşanamaz hâle geliyor
GN⁺ özeti
- Bu yazı, prosedürel Dünya simülasyonunun gerçekleştirilme sürecini ayrıntılı biçimde açıklıyor
- GLSL fragment shader kullanarak topoğrafya, levha tektoniği, hidrolik erozyon, iklim ve yaşamı simüle ediyor
- İnsan faaliyetlerinin Dünya çevresi üzerindeki etkisini simüle ederek farkındalık yaratıyor
- Benzer özelliklere sahip projeler arasında "SimEarth" ve "Universe Sandbox" öneriliyor
1 yorum
Hacker News görüşü
"I don't know, Timmy, being God is a big responsibility"adlı kısa öykü, dünya simülasyonu temasını ele alıyor"Permutation City"adlı hard SF kitabı bu konuyla yakından ilgili