1 Punkte von GN⁺ 2025-08-16 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Wenn Spiele auf einem MacBook im Vollbildmodus ausgeführt werden, rendern die meisten Spiele aufgrund des Problems mit der Display-Notch unscharf
  • Der Mechanismus des Systems zur Auswahl der Auflösung berücksichtigt den Notch-Bereich nicht und führt dadurch zur Auswahl eines falschen Ausgabebereichs
  • Die Auswahl einer 16:10-Auflösung ist ein provisorischer Workaround, die eigentliche Ursache liegt jedoch in Apples API-Design und fehlender Anleitung
  • Das Problem lässt sich in bekannten Spielen (Shadow of the Tomb Raider, No Man’s Sky usw.) reproduzieren; einige neuere Spiele (Cyberpunk 2077) behandeln es korrekt
  • Apple sollte die Entwicklerhinweise und den Support durch Updates an HIG und API verbessern

Problem: Ursache für unscharfes Rendering bei Mac-Vollbildspielen

  • Dieses Problem wurde Apple seit September 2023 als Issue FB13375033 gemeldet
  • Wenn Spiele auf einem MacBook-Display im Vollbildmodus ausgeführt werden, berücksichtigen die meisten Spiele den Notch-Bereich nicht korrekt, wodurch Rendering-Fehler entstehen
  • Viele Spiele übernehmen die vom System unterstützte Liste der Auflösungen und wählen daraus die erste aus (die Auflösung des gesamten Display-Bereichs), obwohl der in AppKit tatsächlich nutzbare Vollbildbereich auf den Bereich unterhalb der Notch beschränkt ist
  • Gibt ein Spiel in der vollen Display-Auflösung aus, ist der tatsächlich nutzbare Zeichenbereich kleiner, sodass das Bild vertikal gestaucht wird und es zu Unschärfe kommt

Struktur der Bereiche eines Mac-Displays

  • Ein Mac-Display mit Notch hat drei Hauptbereiche
    • die vollständigen Display-Grenzen (einschließlich Notch und Menü)
    • die Safe Area (unterhalb der Notch)
    • den in AppKit nutzbaren Vollbildbereich (unterhalb der Menüleiste)
  • In der von der Funktion CGDisplayCopyAllDisplayModes zurückgegebenen Auflösungsliste sind die volle Display-Auflösung und die Auflösung unterhalb der Menüleiste (meist im 16:10-Format) vermischt enthalten
  • Die meisten Spiele verwenden den ersten Eintrag der Liste (den Vollbildbereich) und erzeugen dadurch eine ungenaue Ausgabe
  • Beispiel: Shadow of the Tomb Raider startet standardmäßig mit der vollen Display-Auflösung (3456x2234), der tatsächlich nutzbare Zeichenbereich beträgt jedoch 3456x2160 (durch den Unterschied von 74 Pixeln wird das Bild gestaucht und unscharf gerendert)

Solution: Korrekte Auflösungsauswahl und temporäre Ausweichlösung

  • Nutzer: Wenn ein Vollbildspiel auf einem Mac-Display mit Notch ausgeführt wird, ist es wichtig, manuell eine 16:10-Auflösung auszuwählen (das Spiel passt dies nicht automatisch an)
  • Entwickler: Mit der Eigenschaft safeAreaInsets von NSScreen sollte die Auflösungsliste etwas präziser gefiltert werden
    • Es wird ein Algorithmus in Code bereitgestellt, der nur Auflösungen herausfiltert, die den Kriterien der Safe Area entsprechen (mit dem Nebeneffekt, dass einige Auflösungen wie 4:3 zu stark herausgefiltert werden)
    • Im Kern ist jedoch eine Verbesserung durch Apple erforderlich

Affected Games: Typische betroffene Spiele und aktueller Stand

  • Shadow of the Tomb Raider, Control Ultimate Edition, No Man’s Sky, Riven, Stray usw. zeigen meist gestauchtes und unscharfes Rendering aufgrund falscher Standard-Auflösungen
    • Control: legt die Auflösung selbst willkürlich fest, sie stimmt jedoch nicht mit der tatsächlichen Mac-Auflösung überein
    • No Man’s Sky: bietet sowohl falsche Seitenverhältnisse als auch Safe-Area- und Non-Safe-Area-Auflösungen an
    • Riven, Stray: verwenden standardmäßig gestauchte Auflösungen beim Rendering
  • Cyberpunk 2077 wählt korrekt eine 16:10-Auflösung (die interne Filtermethode ist nicht bekannt)
  • World of Warcraft: kann über eine Legacy-API bis in den Notch-Bereich zeichnen, daher funktioniert die volle Auflösung korrekt

What Apple could do: Warum Apple handeln sollte

  • In der HIG-Dokumentation (Human Interface Guidelines) sollten Hinweise und Regeln zur Auflösungsbehandlung für Displays mit Notch ergänzt werden
  • Für AppKit/Cocoa ist ein Update von CGDisplayMode nötig, damit sich Auflösungen leichter filtern lassen
  • Es wird eine neue API speziell für Spieleoptimierung benötigt, um Auflösungslisten und Boilerplate zu vereinfachen
  • Entwicklern sollte empfohlen werden, statt einer direkten Auflösungsabfrage entweder eigene Auflösungslisten zu erzeugen oder ein „Render-Scale“-Verfahren zu verwenden
  • Wenn solche Verbesserungen umgesetzt werden, sollten zugleich auch Apples offizielle Dokumentation und Beispielcode aktualisiert werden

Noch keine Kommentare.

Noch keine Kommentare.