Shader Tabanlı UI | All Interface

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

Kaiser

Adͥᴍiͣnͫ
Admin
Süper Üye
Geliştirici
Yardımsever Üye
Mesaj
4.656
Çözümler
460
Beğeni
5.820
Puan
5.349
Ticaret Puanı
0
Konuyu görünce ilk başta "ne gereksiz bir işlem" diye düşünebilirsiniz, ben de öyle düşünüyorum :D
Ama daha önce de söylediğim gibi kesin olmamakla birlikte dx11 hedefim için src'de bulunan tüm eski render yapılarını kaldırmam gerekiyor. UI nesneleri de bunlara dahil..

Her ne kadar isteyerek yaptığım bir şey olmasa da ileride farklı fikirlere göre oyun arayüzüne farklı efektler verilebilir.
Mesela;
- Tehlikeli bir bölgeye girildiğinde veya bir boss'a yaklaşıldığında atlas/minimap yanıp sönmesi veya renk değiştirmesi.
- Envanterde yer kalmadığında envanterin yanıp sönmesi.
- İsteğe bağlı olarak istenilen butonlara/nesnelere farklı efektler vermek.

...gibi gibi pek çok fikir üretilebilir. Siz de aklınıza gelen fikirleri belirtebilirsiniz, ileride işe yarayabilir :)
Tabi bunların yapılabilmesi için istenilen UI nesnesinin kimliğinin; python'dan c++'a, ordan da shadera kadar hassas bir yol izlenerek aktarılması gerekecektir. Elbette bunlar şu an sadece fikirden ibaret. Yakın zamanda bunlara zaman ayıracağımı bile düşünmüyorum.

Kısaca temel özellikler:
- Dinamik çalışır, interface tasarımı değiştirilse bile shader tarafında ekstra bir işleme gerek olmaz.
- Client'ın yükleyip çalıştırdığı UI görseli her ne boyutta ve her ne özellikteyse o şekilde alıp işler. Harici bir hesaplama vb. yapılmaz.
- Atlas dahil tüm UI nesneleri tek bir shaderdan kontrol edilir, sadece minimap bunlardan ayrı tutulmuştur ve ayrı bir shaderdan yönetilir. (Çalışma şekli biraz farklı olduğu için.)

Ufak video:
 
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst