- MacBook’ta tam ekran oyun çalıştırıldığında, çoğu oyun ekran çentiği sorunu nedeniyle bulanık render ediliyor
- Sistemin çözünürlük seçimi mekanizması çentik alanını hesaba katmadığı için yanlış çıktı alanı seçimine yol açıyor
- 16:10 çözünürlük seçimi geçici bir çözüm olsa da, temel neden Apple’ın API tasarımı ve yönlendirme eksikliği
- Sorun, öne çıkan oyunlarda (Shadow of the Tomb Raider, No Man’s Sky vb.) yeniden üretilebiliyor; bazı yeni oyunlar (Cyberpunk 2077) bunu doğru işliyor
- Apple’ın HIG ve API güncellemeleriyle geliştirici rehberliğini ve desteğini iyileştirmesi gerekiyor
Sorun: Mac’te tam ekran oyunlarda bulanık render’ın nedeni
- Bu sorun, Eylül 2023’ten beri FB13375033 konusu olarak Apple’a bildirilmiş durumda
- Oyunlar MacBook ekranında tam ekran çalıştırıldığında, çoğu oyun çentik (notch) alanını doğru hesaba katmadığı için render hatası oluşuyor
- Birçok oyun sistemden desteklenen çözünürlük listesini alıp ilkini seçiyor; ancak AppKit içinde kullanılabilen gerçek tam ekran alanı çentiğin altıyla sınırlı
- Oyun tam ekran ekran çözünürlüğünde çıktı verdiğinde, gerçekte çizilebilir alan daha küçük olduğundan kare dikey olarak sıkışıyor ve bulanıklaştırma sorununa yol açıyor
Mac ekranının alan yapısı
- Çentikli Mac ekranlarında üç ana alan bulunuyor
- Tam ekran sınırları (çentik ve menü dahil)
- Safe area (çentiğin altı)
- AppKit içinde kullanılabilen tam ekran alanı (menü çubuğunun altı)
CGDisplayCopyAllDisplayModes fonksiyonunun döndürdüğü çözünürlük listesinde tam ekran çözünürlüğü ile menü çubuğu altı çözünürlüğü (çoğunlukla 16:10 oranı) birlikte yer alıyor
- Oyunların çoğu listedeki ilk girdiyi kullanarak hatalı çıktı üretiyor
- Örnek: Shadow of the Tomb Raider varsayılan olarak tam ekran çözünürlüğü olan
3456x2234 ile başlıyor, ancak gerçekte çizilebilir alan 3456x2160; bu 74 piksellik fark ekranın sıkışmasına ve bulanık render edilmesine neden oluyor
Çözüm: Doğru çözünürlüğü seçmek ve geçici kaçınma yöntemleri
- Kullanıcılar için: Çentikli Mac ekranlarında tam ekran oyun çalıştırırken 16:10 çözünürlüğü elle seçmek önemli; oyunlar bunu otomatik olarak doğru ayarlamıyor
- Geliştiriciler için:
NSScreen içindeki safeAreaInsets özelliğini kullanarak çözünürlük listesini daha hassas biçimde filtrelemek gerekiyor
- Safe area ölçütüne uyan çözünürlükleri süzen bir algoritma kodla sunuluyor; ancak bu yöntem 4:3 gibi bazı çözünürlükleri gereğinden fazla filtreleme yan etkisine sahip
- Özünde ise Apple düzeyinde bir iyileştirme gerekiyor
Etkilenen oyunlar: Öne çıkan örnekler ve mevcut durum
- Shadow of the Tomb Raider, Control Ultimate Edition, No Man’s Sky, Riven, Stray gibi oyunların çoğunda yanlış varsayılan çözünürlük nedeniyle sıkışmış ve bulanık render görülüyor
- Control: çözünürlüğü kendi içinde keyfi olarak belirliyor ama gerçek Mac çözünürlüğüyle eşleşmiyor
- No Man’s Sky: yanlış oranların yanında hem safe area hem de non-safe-area çözünürlüklerini sunuyor
- Riven, Stray: varsayılan olarak sıkıştırılmış çözünürlükte render ediyor
- Cyberpunk 2077, 16:10 oranında doğru çözünürlüğü seçiyor; kullandığı iç filtreleme yöntemi açıklanmış değil
- World of Warcraft: eski API sayesinde çentiğe kadar çizebildiği için tam çözünürlüğü doğru uygulayabiliyor
Apple ne yapabilir: Apple’ın müdahale etmesi gerekiyor
- HIG (Human Interface Guidelines) belgelerine çentikli ekranlarda çözünürlük işleme ve yönlendirme eklenmesi gerekiyor
- AppKit/Cocoa içinde çözünürlük filtreleme işlemini kolaylaştıracak şekilde
CGDisplayMode güncellenmeli
- Oyun optimizasyonuna özel yeni bir API tasarlanmalı; çözünürlük listeleri ve boilerplate yükü azaltılmalı
- Geliştiricilere, çözünürlük sorgulamak yerine kendi çözünürlük listelerini üretmeleri veya “render scale” yaklaşımını kullanmaları önerilebilir
- Bu iyileştirmeler yapılırsa Apple’ın resmî belgeleri ve örnek kodları da birlikte güncellenmeli
Henüz yorum yok.