- Mesaj
- 4.365
- Çözümler
- 439
- Beğeni
- 4.883
- Puan
- 1.849
- Ticaret Puanı
- 0
Günlerce uğraşın sonucunda ağaçları da fixed pipeline curcunasından kurtarıp shadera aktarabildim. Yapraklar ömrümü yedi, bu yüzden speedtree için 2 ayrı shader hazırladım. Biri gövde ve dalları işlerken, diğeri sadece yaprakları işliyor. Billboard olayı ise tam kanser eden nokta oldu. Speedtree motorundan gelen billboard verilerini asla ama asla shader tarafından yorumlatamadım. Belki de directx9'un kapasitesini aşan bir durum olduğu içindir, emin değilim. Ama vektör dizilerini işletemedim.
Evet c++ tarafında ve speedtree kütüphanesi kendi içinde bunları sorunsuz çalıştırıyor ama shader tarafında bu değerlerin tutarlığını sağlamak pek mümkün olmadı. Yapay zeka bile en sonunda "gel c++ dönelim bunu orda yapalım dedi"
Ama işlemlerin büyük çoğunluğunu gpuya aktarıp da, billboard'u cpuda bırakmak cazip gelmedi, o yüzden c++ tarafındaki billboard mantığını shadera aktarmak yerine shaderın kendi içinde fake bir billboard yapısı oluşturmayı denedim. Sonuç olarak bu da ne kadar zorlasa da küçük pürüzler dışında şu an güzel çalışıyor diyebilirim.
Yine de iyileştirilmeye ihtiyacı var.
- SpeedTreeLib/VertexShader.h artık kullanılmıyor. İçerisindeki 1.0 veya 1.1 sürümüne ait assembly shader yerine artık konuda belirttiğin iki hlsl shader kullanılıyor. Sürüm: vs_3_0 ve ps_3_0
- Ekstra bir özelleştirme yapılmadı, sadece dünya pozisyonları, temel aydınlatma vb. öncelikle özellikler uyarlandı.
- SpeedTreeConfig.h içindeki pek çok define tamamen sabite ayarlandı. Örneğin; artık STATIC_LIGHT kullanılamaz. Çünkü tüm yapı STATIC_LIGHT üzerine kuruldu ve defineler kaldırıldı.
Evet c++ tarafında ve speedtree kütüphanesi kendi içinde bunları sorunsuz çalıştırıyor ama shader tarafında bu değerlerin tutarlığını sağlamak pek mümkün olmadı. Yapay zeka bile en sonunda "gel c++ dönelim bunu orda yapalım dedi"

Ama işlemlerin büyük çoğunluğunu gpuya aktarıp da, billboard'u cpuda bırakmak cazip gelmedi, o yüzden c++ tarafındaki billboard mantığını shadera aktarmak yerine shaderın kendi içinde fake bir billboard yapısı oluşturmayı denedim. Sonuç olarak bu da ne kadar zorlasa da küçük pürüzler dışında şu an güzel çalışıyor diyebilirim.
Yine de iyileştirilmeye ihtiyacı var.
- SpeedTreeLib/VertexShader.h artık kullanılmıyor. İçerisindeki 1.0 veya 1.1 sürümüne ait assembly shader yerine artık konuda belirttiğin iki hlsl shader kullanılıyor. Sürüm: vs_3_0 ve ps_3_0
- Ekstra bir özelleştirme yapılmadı, sadece dünya pozisyonları, temel aydınlatma vb. öncelikle özellikler uyarlandı.
- SpeedTreeConfig.h içindeki pek çok define tamamen sabite ayarlandı. Örneğin; artık STATIC_LIGHT kullanılamaz. Çünkü tüm yapı STATIC_LIGHT üzerine kuruldu ve defineler kaldırıldı.