Metin2 - Dynamic Weather | Dinamik Hava Durumu

  • Konuyu açan Konuyu açan Kaiser
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 28
  • Gösterim Gösterim 983

Kaiser

Admin
Admin
Geliştirici
Yardımsever Üye
Mesaj
4.261
Çözümler
429
Beğeni
4.620
Puan
1.849
Ticaret Puanı
0
Çok geniş kapsamlı ve planlı bir düzenleme olacak. Matrisler canımı okuyacak ama sonunda kullanışlı bir şey olacağına inanıyorum.
Gökyüzüne henüz dokunmadım ve bir süre de dokunmam sanırım, sonraya bıraktım. Güneş kadar zorlayacağını sanmıyorum.
Şu an tamamen giriş seviyesidir, finalde ise sunucu saatine bağlanacaktır.
Genel olarak önerilere ve eleştirilere açıktır.

 
bana kalırsa volumetric fog ile render mesafesi dışını(mesela videodaki görev işaretinden sonrasını) kapatırsan hem hava ve skybox'da ki genel değişiklikler daha belirgin olur hemde daha güzel gözükür
 
bana kalırsa volumetric fog ile render mesafesi dışını(mesela videodaki görev işaretinden sonrasını) kapatırsan hem hava ve skybox'da ki genel değişiklikler daha belirgin olur hemde daha güzel gözükür
Evet benim de dikkatimi çekti, şu an gereksiz büyüklükte bir mesafeye yayılmış durumda. Temeli tam oturttuktan sonra bu ve benzeri şeylerin düzenlemesine başlayacağım.
 
Çok güzel görünüyor. Dış dünya saati ile aynı görüntüye sahip olsa ne güzel olur. Elinize sağlık :)
 
bana kalırsa volumetric fog ile render mesafesi dışını(mesela videodaki görev işaretinden sonrasını) kapatırsan hem hava ve skybox'da ki genel değişiklikler daha belirgin olur hemde daha güzel gözükür
koray yazmasa ben yazacaktım o volumetric fog olayını da o yazmış bana söz kalmadı ya eline sağlık :D
 
Gökyüzü Düzenlemesi

Üstteki mesajımda da belirttiğim gibi, matrisler çok zorluyor, özellikle de Y+ konumunu tüm bunlardan muaf bırakmak zorunda kaldım.​
  • Gökyüzü formatını değiştirmeye niyetim yoktu ancak varsayılan gökyüzü tasarımı(6 dokulu) bunu düzgün bir şekilde işleme alamadığı için daha önce paylaşmış olduğum cross formata geçiş yapmak zorunda kaldım. Böyle olması iş yükünü daha fazla arttırdı. Bu tüm haritalar için aynı şeyi yapmam gerektiği anlamına geliyor.. :rolleyes: Ya da haritalara göre bu dinamikliği ayrıştırabilirim.​
  • Buradaki düzenlemeye dinamik aydınlatma dahil değildir, iki farklı alanda temeli oluşturup (ışık ve gökyüzü) daha sonra bunları birleştireceğim.​
  • Her ne kadar hala cubemap kullanıyor olsam da, makisumum kalite için dokuların dikiş işleminde tolere olarak kullandığım 3.0 pixel aralığını 0.5 pixele düşürdüm.​
  • Son olarak, fark etmem 2 gün sürdü ama Y+ konumu için Metin2'nin yanlış bir şekilde işlediği vertex düzenlendi.​

 
Gökyüzü Düzenlemesi

Üstteki mesajımda da belirttiğim gibi, matrisler çok zorluyor, özellikle de Y+ konumunu tüm bunlardan muaf bırakmak zorunda kaldım.​
  • Gökyüzü formatını değiştirmeye niyetim yoktu ancak varsayılan gökyüzü tasarımı(6 dokulu) bunu düzgün bir şekilde işleme alamadığı için daha önce paylaşmış olduğum cross formata geçiş yapmak zorunda kaldım. Böyle olması iş yükünü daha fazla arttırdı. Bu tüm haritalar için aynı şeyi yapmam gerektiği anlamına geliyor.. :rolleyes: Ya da haritalara göre bu dinamikliği ayrıştırabilirim.​
  • Buradaki düzenlemeye dinamik aydınlatma dahil değildir, iki farklı alanda temeli oluşturup (ışık ve gökyüzü) daha sonra bunları birleştireceğim.​
  • Her ne kadar hala cubemap kullanıyor olsam da, makisumum kalite için dokuların dikiş işleminde tolere olarak kullandığım 3.0 pixel aralığını 0.5 pixele düşürdüm.​
  • Son olarak, fark etmem 2 gün sürdü ama Y+ konumu için Metin2'nin yanlış bir şekilde işlediği vertex düzenlendi.​


Çook güzel olmuş ya ellerinize sağlık
 
atDoWoZ.gif
 
Zaman dilimi gerçek hayatla eş zamanlı değil de oyun içi ayrı olması daha uygun olur. 24 saat içerisinde 5-6 kez gündüz-aksam döngüsü idealdir. Sürekli aksam ya da gündüz oynayan oyuncular dinamik havayı yaşayabilir. Extradan da rastgele zaman dilimlerinde yağmur başlayıp durabilir düşünce harika.
 
Zaman dilimi gerçek hayatla eş zamanlı değil de oyun içi ayrı olması daha uygun olur. 24 saat içerisinde 5-6 kez gündüz-aksam döngüsü idealdir. Sürekli aksam ya da gündüz oynayan oyuncular dinamik havayı yaşayabilir. Extradan da rastgele zaman dilimlerinde yağmur başlayıp durabilir düşünce harika.
O noktaya gelebilsem ya rabbi şükür diyeceğim :D Evet dediğin de mantıklı, muhtemelen öyle yaparım. Ancak o en son yapılacak şey.
Şu an küp haritasını tam anlamıyla işlemeyi başarabilmiş değilim. Dokular tam olarak senkronize değil ve senkronize olmamakta ısrarcılar.. Eğer bunu halledebilirsem önüm biraz daha açılacak. Umarım...
 
O noktaya gelebilsem ya rabbi şükür diyeceğim :D Evet dediğin de mantıklı, muhtemelen öyle yaparım. Ancak o en son yapılacak şey.
Şu an küp haritasını tam anlamıyla işlemeyi başarabilmiş değilim. Dokular tam olarak senkronize değil ve senkronize olmamakta ısrarcılar.. Eğer bunu halledebilirsem önüm biraz daha açılacak. Umarım...
Fikir kısmı dışındakiler beni aşar :D
 
Gökyüzü Düzenlemesi (2)
(Bu düzenlemeye aydınlatma dahil değildir.)

3 günün ardından nihayet mutlu son.
Dinamiklik için gökyüzüne ait tüm vertexlerin senkronizasyonunu tamamladım.
Bu noktadan sonra gökyüzünün dokusunun ne olduğu veya nasıl olduğu fark etmeksizin kusursuz çalışacak.
Özellikle beni kanser eden tepe noktası (Y+ yani en üst kısım) sonunda çözüldü, bu resmen önümdeki büyük bir engeli kaldırdı.
  1. Küp haritası tamamen seamless modda çalışacak şekilde düzenlendi. Kullanılan dokuların görüntü kalitesi haricinde; artık gökyüzünde hiçbir kusur görünmeyecek.(pixel bozuklukları vb.)
  2. İlerleyen süreçlerde ekstra özelleştirmeler için sadece gökyüzüne ait yeni pixel ve vertex shader hazırlandı.(Testleri tamamlayıp kapattım. Şu an kullanılmıyor.)
  3. Zaman kontrolü şu an için statik çalışıyor. ( 4 milisaniye -> saniyede yaklaşık 250 kare), ancak kontrol olarak daha kullanışlı bir hale getirildi. Bu zaman dilimi aydınlatma ile beraber gerçekçi bir düzene ayarlanacak.​
  4. Şu an için tek eksenli bir hareketlilik sağlayıp bıraktım. Daha sonra bunu çift eksenli olarak düzenleyeceğim.​
  5. Kamerayla doğru orantılı çalışacak şekilde düzenlendi.​

Şimdilik bu kadar. 3 günden sonra özellikle bugün beni fazlasıyla yordu. O yüzden 1-2 gün kafa istirahati :D




 
Gökyüzüne Yeni Arkadaş: Aydınlatma Düzenlemesi

- Gökyüzüne ek olarak aydınlatma dahil edildi.
- Ağaçlar hariç, karakterlere ve objelere fizik temelli gölgeleme özelliği uygulandı.
- Tüm gölge matrisleri statikten dinamiğe dönüştürüldü.
- Gölge/obje takibi ayarlandı.

Şu an için temel eksikler/yapılacaklar:
- Gölgelerin perspektifi ve yayılımı iyileştirilecek.
- Ambiyans vb. faktörler aydınlatmaya bağlanacak ve tüm görsel özellikleri otomatik işlenecek.
- Eğer başarabilirsem gökyüzüne harici olarak güneş ve ay çizilecek ve koordineli çalışacaklar.

Şu ana kadar yapılan tüm değişiklikler sadece C++ tabanlı olarak hazırlandı.
Muhtemelen bu noktadan sonra shaderlar ile çalışmam gerekecek.


Bir tık uzun test videosu:
Sadede gel diyenler videoyu hızlandırabilirler.

 
Son durum güncellemesi:
Artık aşağıdaki tüm objeler bu aydınlatmadan tam anlamıyla etkilenir:
Objeler,
Ağaçlar,
Su,
Sis,
Gökyüzü,
Karakterler.​

Beraberinde gün döngüsü ayarlandı.
Gerçek hayattaki 24 Saat, 6 oyun gününe eşittir. Yani; güneş tam bir turu 4 saatte tamamlar. Döngü sayısını daha az yapabilirdim fakat aynı hava durumunda uzun süre kalınmasını tercih etmedim.
Oyundaki günün saatleri server ile senkronizedir. Client açıldığı anda(login ekranında) mevcut zaman dilimi işlenmiş olur, dolayısıyla her oyuncu aynı havayı yaşar. Bu sadece referans alma amaçlıdır. Yani serverda saat 12:00 ise oyunda öğlen olmayacaktır.
Oyun seçeneklerinden grafik ayarları kapatıldığında diğer tüm etkilerle birlikte gün döngüsü de kapanır ve standart gündüz metin2 atmosferine döner. Ayarı tekrar açtığında ise, o an ki zaman dilimi neyse onu yaşar.(Öğlen, gece vb.)

Videoda gösterebilmek adına server yerine hızlandırılmış statik zaman dilimi uygulandı.
 
Son durum güncellemesi:
Artık aşağıdaki tüm objeler bu aydınlatmadan tam anlamıyla etkilenir:
Objeler,
Ağaçlar,
Su,
Sis,
Gökyüzü,
Karakterler.​

Beraberinde gün döngüsü ayarlandı.
Gerçek hayattaki 24 Saat, 6 oyun gününe eşittir. Yani; güneş tam bir turu 4 saatte tamamlar. Döngü sayısını daha az yapabilirdim fakat aynı hava durumunda uzun süre kalınmasını tercih etmedim.
Oyundaki günün saatleri server ile senkronizedir. Client açıldığı anda(login ekranında) mevcut zaman dilimi işlenmiş olur, dolayısıyla her oyuncu aynı havayı yaşar. Bu sadece referans alma amaçlıdır. Yani serverda saat 12:00 ise oyunda öğlen olmayacaktır.
Oyun seçeneklerinden grafik ayarları kapatıldığında diğer tüm etkilerle birlikte gün döngüsü de kapanır ve standart gündüz metin2 atmosferine döner. Ayarı tekrar açtığında ise, o an ki zaman dilimi neyse onu yaşar.(Öğlen, gece vb.)

Videoda gösterebilmek adına server yerine hızlandırılmış statik zaman dilimi uygulandı.

Mükemmel 👌
 
Küçük güncelleme:
Bir süredir gözüme çarptıkça beni rahatsız eden bir durum olan sis faktörünü elden geçirdim. Metin2'deki sisler directx8/9 tarafından sabit bir şekilde işlendiği ve gökyüzünün bu işlemlerden mahrum kalmasıyla ortaya keskin geçişler çıkıyordu.(Bu durum varsayılan grafikler için de geçerlidir.) Dolayısıyla dinamik hava söz konusu olunca bu durum daha fazla göze batar hale geldi ve gökyüzünün dokusu atmosfer ile tam olarak örtüşmüyordu.

Kısaca bahsetmek gerekirse;

- Gökyüzü için yeni bir sis yapısı oluşturuldu ve zeminle eş zamanlı çalışacak şekilde ayarlandı.
Böylelikle arkaplandaki objelerin (ağaç, bina vb.) sis ve ortam arasındaki geçişleri daha uygun hale getirildi.
Renk,şu,bu gibi özellikler shader tarafından otomatik yönetilir.​



Öncesi:
11.webp

Sonrası:

22.webp


Öncesi:
1.webp


Sonrası:
2.webp


 
sis değişiklikleri şöyle olmuş​

IMG_7669.webp
 
Geri
Üst