Marty5.8 Geliştirme Günlüğü [SHADER]

  • Konuyu açan Konuyu açan benjordi
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 5
  • Gösterim Gösterim 370

benjordi

Geliştirici
Geliştirici
MT Üye
Mesaj
195
Çözümler
10
Beğeni
320
Puan
784
Ticaret Puanı
0
Merhaba MMO Tutkunları topluluğu!
Bu benim ilk geliştirme günlüğü konum olacak zevk alarak ilerleyeceğimi düşünüyorum.


## 🔄 Yapılan Değişiklikler
-Client tarafı DirectX 8'den DirectX 9'a Güncellendi.

### Interface Güncellemeleri
// ESKİ → YENİ
IDirect3D8 → IDirect3D9
IDirect3DDevice8 → IDirect3DDevice9
LPDIRECT3DTEXTURE8 → LPDIRECT3DTEXTURE9
LPDIRECT3DVERTEXBUFFER8 → LPDIRECT3DVERTEXBUFFER9
...ve daha fazlası

### Struct Güncellemeleri
D3DCAPS8 → D3DCAPS9
D3DADAPTER_IDENTIFIER8 → D3DADAPTER_IDENTIFIER9
D3DVIEWPORT8 → D3DVIEWPORT9
...ve daha fazlası

### Fonksiyon Güncellemeleri
Direct3DCreate8(D3D_SDK_VERSION) → Direct3DCreate9(D3D_SDK_VERSION)
...ve daha fazlası

## 🛠️ Karşılaşılan Zorluklar ve Çözümler

### 1. C++17/20 Uyumluluk Uyarıları
- `register` keyword'ü deprecated → Tüm kullanımları kaldırdım
- Enum-float operatörleri deprecated → Explicit cast'ler ekledim
- Daraltma dönüşümleri → Explicit cast'ler ekledim

### 2. Deprecated API'ler
`GetVersionExA` gibi deprecated API'ler için `#pragma warning` kullanarak uyarıları bastırdım.

### 3. Dosyalar
- Tüm istemci kaynak kodlarını her bir dosyayı tek tek analiz ettim ve hataları giderdim.

## ✅ Sonuç
Proje başarıyla DirectX 9'a güncellendi:

- ✅ Tüm modüller güncellendi
- ✅ Derleme hataları çözüldü
- ✅ Derleme uyarıları çözüldü
- ✅ Oyun başarıyla çalışıyor
- ✅ Test edildi ve doğrulandı

m2.webp


## 🚀 Gelecek Planları
- DirectX9Ex sürümüne Güncellenecek
- Performans optimizasyonları
- Modern C++ özelliklerinin kullanımı
- Kod kalitesi iyileştirmeleri
 
StepTimer'a geçildi
StepTimer ile gelen mob hareket animasyon hatası ve ses(yürüme,koşma kayma) hataları giderildi

Fast Loading Kuruldu

DirectX9Ex Geçildi

Asenkron Shader Önbellekleme ve Versiyonlama (Hızlı Shader Yükleme ve şifreleme)
 
Zemin Shader'a aktarıldı

Silinenler:
Genişlet Daralt Kopyala
MapOutdoorRenderSTP.cpp (Bununla ilgili projede ki tüm kullanımlar kaldırıldı)

Yapılanlar:
Genişlet Daralt Kopyala
MapOutdoorWater.cpp ve MapOutdoorRenderHTP.cpp dosyalarında kullanılan,
STATEMANAGER bağımlılıkları kaldırıldı.

Örnek Kaldırılan STATEMANAGER Çağrıları:
   STATEMANAGER.Set → pDevice->Set
   STATEMANAGER.Get → pDevice->Get

Asenkron Yükleme Fonksiyonları Eklendi:
   void LoadZeminShadersAsync();
   void LoadWaterShadersAsync();


Background Worker Thread:
   - Shader'lar arka planda derleniyor
   - Ana thread bloklanmıyor
   - Thread-safe mutex koruması

Flush Mekanizması:
   void FlushCompiledShaders(int maxCount = 4);

   - Her frame'de maksimum 4 shader işleniyor
   - Yük oluşturmadan yükleme ekranı akıcı çalışıyor

Update Mekanizması:
   void UpdateShaderPointers();

   - Shader pointer'ları otomatik güncelleniyor
   - Render zamanında shader'lar hazır oluyor





1224_005600.webp
 
Son düzenleme:
Geri
Üst