Seagazer'ın pruva köpüğünde partikül yok: Godot'ta okyanus shader'ını paylaşan iki mesh
Godot ile yapılan yelken oyunu Seagazer'ın geliştiricisi, pruvadaki su köpüğünü partikül kullanmadan, okyanusun kendi shader kodunu çalıştıran ve vertex shader'da bükülen iki mesh yüzeyiyle nasıl yaptığını adım adım anlattı.

Godot ile geliştirilen yelken oyunu Seagazer'ın geliştiricisi, Bluesky'daki altı gönderilik bir dizide oyundaki pruva köpüğünün (bow spray) nasıl çalıştığını anlattı. Efektte partikül yok: iki mesh yüzeyi okyanusun kendi shader kodunu çalıştırıyor ve bir vertex shader'da şekle bükülüyor.
Okyanusla aynı ışık
Yüzeylerin shader'ı okyanusun fragment kodunu içeriyor; tek bir define okyanusa özgü özellikleri kapatıp bir köpük dudağı ekliyor. Her karede ikisinin paylaştığı yaklaşık 170 uniform kopyalanıyor. Bu sayede köpük her zaman okyanusun ışığını, parıltısını ve günün saatini taşıyor.

Şekil vertex shader'dan
Her yüzey 64 × 24'lük bir ızgarayla başlıyor. Vertex shader her köşeyi kendi UV'sinden kuruyor: iki ucu sıkıştırılmış, dudakta kıvrılan, ilerleyen tepelerle dalgalanan bir biçim. En yüksek hızda bir yüzey 17,4 metre uzunluğunda ve 5,7 metre yüksekliğinde.

Gövdenin dışında kalmak
Yüzeylerin kökünü gövdenin dışında tutmak için 23 düzlemden oluşan bir gövde yerine geçeni ve her yanda 17 su örneği kullanılıyor. Geliştiricinin anlattığına göre "içeride mi, dışarıda mı?" diye sormak kökü zıplatıyordu: su yüksekliğindeki 1 milimetrelik bir değişiklik kökü 9,44 metre oynatıyordu. Her düzleme olan uzaklığı ölçmek bu oynamayı 2 milimetreye indirdi.

Hız ve damlalar
Tepelerin hızı sin(time * speed) yerine her karede biriktirilen bir fazdan geliyor; böylece tekne hızlandığında hiçbir şey sıçramıyor. Damlalar tek bir MultiMesh içindeki 48 küre; okyanus shader'ı her birinin düştüğü yerde suda bir halka oluşturuyor. Geliştirici, efektin uzun seyirlerde köpüğü süründüren bir kayan nokta hassasiyeti hatası dahil Jettelly'nin blogunda ayrıntılı olarak yazıldığını da belirtiyor.
Seagazer
Steam sayfasına göre Seagazer, Sanderling'in geliştirip yayımladığı kısa, tek oyunculu bir yelken macerası: oyuncu yalnızca bir pusulayla resimsi, cel-shaded bir okyanusta şafaktan yıldızlı geceye yol alıyor. Çıkış tarihi şimdilik "pek yakında".



0 yorum