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 108

Kaiser

Admin
Admin
Geliştirici
Yardımsever Üye
Mesaj
4.380
Çözümler
439
Beğeni
4.919
Puan
1.849
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:
 
Kaiser yapıyorsa vardır bir bildiği.
 
Geri
Üst