İlan
04 Haz 2026 19 çevrimiçi üye Duyurular
Ana Sayfa C++ / C# / Python
Ana Sayfa Forum C++ / C# / Python Dünya Problemi Çözüldü: Multi-Clientte Oluşan Zemi...
İlan Yan banner placeholder

Dünya Problemi Çözüldü: Multi-Clientte Oluşan Zemin Sorunu, Düzeltildir!

Dasya 14.04.2026 09:41 821 görüntüleme 39 cevap
Son Mesaj
Dasya
Üye
Üye
Katılım24 Şub 2026
Konular8
Mesajlar66
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
07.05.2026 22:29 #9
Merhaba arkadaşlar,
Başlıktaki gibi, filesinizi DirectX8'den DirectX9'a yükselttikten sonra, 2. clienti açtığınızda, ilk clientin zemin dokuları bozuluyor. Bunun sebebi, ikinci bir DX9 oyun penceresi (client) açıldığında, Windows arka plandaki diğer oyunun grafik filtreleme ("Sampler State" & "TextureStageState") ayarlarını varsayılana sıfırlar. Ancak oyunun içerisindeki CStateManager modülü (önbellekleme yaptığı için) bu değişikliğin farkına varmaz ve ayarları yeniden ekran kartına göndermez. Sonuç olarak zeminlerin yüksek çözünürlüklü dokuları bozulur ve zemin dokusu çok kalitesiz/pikselli görünmeye başlar.

Çözümümüz:

Source/Client/source/EterLib/StateManager.cpp
dosyasında bulunan SetSamplerState ve SetTextureStageState fonksiyonlarındaki önbellekleme (cache control) denetimlerini yorum satırı haline getireceğiz.

Source/Client/source/EterLib/StateManager.cpp Dosyasını açalım
void CStateManager::SetTextureStageState(DWORD dwStage, D3DTEXTURESTAGESTATETYPE Type, DWORD dwValue) İçerisinde aratalım,
Kod:
    if (m_CurrentState.m_TextureStates[dwStage][Type] == dwValue)
        return;

Şu şekilde değiştirelim/yorum satırına çekelim.
Kod:
    //if (m_CurrentState.m_TextureStates[dwStage][Type] == dwValue)
    //    return;

void CStateManager::SetSamplerState(DWORD dwStage, D3DSAMPLERSTATETYPE Type, DWORD dwValue) Fonksiyonu içerisinde aratalım,
Kod:
    if (m_CurrentState.m_SamplerStates[dwStage][Type] == dwValue)
        return;

Şu şekilde değiştirelim/yorum satırına çekelim.
Kod:
    //if (m_CurrentState.m_SamplerStates[dwStage][Type] == dwValue)
    //    return;

Kanıt:
BEFORE

AFTER
Dasya
Üye
Üye
Katılım24 Şub 2026
Konular8
Mesajlar66
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
07.05.2026 23:14 #10
PAYLAŞIM İÇİN TEŞEKKÜRLER,ELİNE SAĞLIK.
Dasya
Üye
Üye
Katılım24 Şub 2026
Konular8
Mesajlar66
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
07.05.2026 23:25 #11
Eline sağlık
Dasya
Üye
Üye
Katılım24 Şub 2026
Konular8
Mesajlar66
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
07.05.2026 23:51 #12
Paylaşım için teşekkürler
YalnızBilişim
Üye
Üye
Katılım17 Nis 2026
Konular8
Mesajlar73
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
08.05.2026 00:21 #13
PAYLAŞIM İÇİN TEŞEKKÜRLER,ELİNE SAĞLIK.
GoogleGmail
Üye
Üye
Katılım01 Mar 2026
Konular3
Mesajlar43
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
08.05.2026 00:22 #14
Eline sağlık
nuti
Üye
Üye
Katılım19 Kas 2025
Konular4
Mesajlar54
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
08.05.2026 00:23 #15
Paylaşım için teşekkürler
Bu konuyu görüntüleyenler
1 misafir
Cevap yazmak için giriş yapın.
Benzer Konular
6 cevap
2K görüntüleme
9 cevap
1.9K görüntüleme
4 cevap
1.9K görüntüleme
8 cevap
1.9K görüntüleme
İlan Yan banner placeholder