Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Aber wenn die Texturen nativ nur als 8 Bit Dateien vorliegen woher soll die höhere Farbtiefe kommen ?
Ihr beschreibt es so, als wenn Texturen erst im Spiel dynamisch erstellt werden aber dann bräuchte man
doch gar Keine sondern nur Grundfarben und einen Code der daraus Texturen erstellt. Unwahrscheinlich.
Es kommt auch noch drauf an, was die Hardware kann bzw. was der Treiber erlaubt.
Bei alten Spielen würde ich 10 bit komplett ausschließen. Das sind immerhin 25% mehr Verbrauch bei Speicher und Bandbreite. Dazu noch erhöhter Rechenaufwand durch die Umrechnung und Rundung. Und dann gab's zu der Zeit nicht mal Anzeigegeräte am Horizont. Also hätte man das 10 bit Ergebnis danach wieder auf 8 bit runterrechnen müssen, um es dem Monitor zu übergeben. Wäre also einfach deutlicher Mehraufwand ohne irgendeinen absehbaren Mehrwert gewesen.
Heutzutage sollte das allerdings kein wirkliches Problem (abgesehen vom VRAM und Speicherbandbreite) mehr geben. Die Karten können ja offensichtlich alle in 10 bit rechnen, also macht es bei der Rechenleistung keinen Unterschied, ob mit 8 oder 10 bit gerechnet wird - die Anzahl der benötigten Rechenschritte ändert sich nicht. Aber Caches, VRAM und Bandbreite würden zusätzlich belastet.
Aber ich weiß auch nicht, ob / welche / bzw. wie viele Spiele überhaupt mit 10 bit in irgendeiner Art arbeiten.
Drakonomikon schrieb:
Dafür bräuchte ich eine Spielsituation mit einem klar definierten Gradienten.
Die Texturen werden nicht dynamisch erstellt (zumindest die meisten nicht). Aber das Ergebnis was du auf dem Bildschirm siehst, wird dynamisch berechnet.
Stell dir vor, du hast eine 10x10 Pixel Textur, die halb blau, halb rot, ist. Und du siehst sie aus großer Entfernung im Spiel, so dass sie auf dem Bildschirm nur noch 1x1 Pixel groß ist. Welche Farbe hat dieser Pixel auf deinem Monitor? Blau? Rot? Beides? Nö. Dieser Pixel hat den Mittelwert aller Farben der Textur PLUS Beleuchtung und zusätzliche Verfärbung durch Lichtquellen PLUS (semi-)transparente Objekte, die über diesem Pixel liegen und deren Beleuchtung.
Vielleicht einfacher zu verstehen: Nimm eine 1 bit Textur (schwarz-weiß), die einfach nur weiß ist. Und dazu eine grüne Lichtquelle. Der Pixel auf deinem Bildschirm ist dann grün, obwohl die 1 bit Textur überhaupt kein Grün enthalten kann. Es wurde also dynamisch die Farbe der Textur quasi "verändert".
Aber ist denn dieser Mittelwert nicht genau die Definition der Farbtiefe ? Bei 10 bit stehen mehr Farben
zur Verfügung also werden die Mittelwerte genauer und das Colorbanding bei Farbverläufen nimmt ab.
Zum Glück habe ich (noch) keinen 10 bit Monitor, sonst würde ich wohl jedes Spiel genau beobachten.
Ja, nein, jein Die Farbtiefe sagt ja erst mal nur aus wie viele unterschiedlichen (Farb-)Werte ein Pixel annehmen kann.
Wenn man einen Farbübergang auf einer Textur hat, dann hast du natürlich Recht: Mit 10 bit, lässt sich dieser Übergang deutlich weicher darstellen. (Außer die Auflösung der Textur ist zu gering - aber das schließen wir hier einfach mal aus).
Also ja: Wenn in FIFA irgendwo ein 20x5 Meter großes Werbebanner hängt, das aus einer einzelnen Textur mit 'nem weitläufigen Farbverlauf besteht, dann würde man den Unterschied zwischen 8 und 10 bit sicherlich sehen können.
Aber sowas lässt sich auch anders gestalten: Man nimmt einen programmierten Farbverlauf (mit theoretisch unendlich vielen Abstufungen, weil's ja einfach nur 'ne mathematische Formel ist), und legt darüber die Elemente ohne Farbverlauf. Und schon hat man ein 1A Ergebnis, solang die Engine den Farbverlauf dann auch mit 10 bit berechnet. Und zusätzlich kann man auch noch massig VRAM und Cache sparen, weil so eine Formel nur ein paar wenige Byte belegt.
Nicht alles was nach Textur aussieht, ist am Ende auch wirklich eine Bilddatei aus Pixeln. Es kann auch einfach ein Stück Code sein. Oder eine Mischung aus Code und unterschiedlichen Texturen.
Und klassische Texturen machen halt wirklich nur einen kleinen Teil des Ergebnisses aus, das aus dem Rendering entsteht. Beleuchtung, Schatten, Reflexionen, Transparenz, Interpolation, Betrachtungswinkel, etc. verändern die Farbgebung von Texturen enorm.
Also noch mal zusammengefasst: Wenn der Ursprung des Color Bandings in der Textur liegt, dann würde eine 10 bit Textur Abhilfe schaffen. Wenn das Color Banding durch das Rendering zustande kommt, würde eine 10 bit Render Pipeline helfen.
Ich kann mir gut vorstellen, dass die Spiele alle in 32-bit Gleitkomma rechnen. Einfach um Rundungsfehler zu umgehen. Von daher wären theoretisch deutlich mehr als 10-bit darstellbar. Ich bin mir daher auch sehr unsicher ob es nun Spiele gibt die 10-bit darstellen oder nicht. Denn es wäre kein Mehraufwand dies einfach so auszugeben.
Du kannst bei Far Cry 5 HDR10 einstellen in den Optionen. Mein ehemaliger Monitor hat dann automatisch in den HDR Modus geschaltet, das Flag wurde also erkannt. Dann wird 10bit geliefert und 10bit dargestellt und man sieht es deutlich.
Und HDR hat erstmal nichts mit Local Dimming & Co zu tun. Es gibt einfach verschiedene HDR Zertifizierung und HDR10 hat nichts mit Kontrast oder Helligkeit zu tun. Deswegen ist noch lange kein "unechtes HDR".
Drakonomikon schrieb:
Aber welche Information wird nun mit HDR zusätzlich übertragen? Das ist für mich noch nicht geklärt.
Nochmal: HDR ist kein Datenformat sondern eine Art der Darstellung des TVs oder Monitors. Dort wird nur ein Signal übertragen: HDR einschalten. Alles weitere kommt vom Darstellungsgerät.
Also dieses HDR bei „künstlichen“ Inhalten ist dennoch komisch, es wird doch nur ein Effekt wiedergegeben der sich im Wesentlichen auf die Helligkeit konzentrieren zu scheint.
Der Dynamikumfang einer Darstellung ist doch der Unterschied zwischen der dunkelsten und hellsten Stelle. Ein Auge kann wohl so ca. 20 Blendenstufen erfassen. Kameras deutlich weniger, also fehlen Details in dunklen oder hellen Bereichen. Diese kann ich mit Mehrfachbelichtungen erfassen. Das alles ist doch für ein Computerspiel nicht zutreffend, es ist klar, was in den dunklen oder hellen Bereichen vorhanden ist. Hier wird m.E. vor allem massiv nun mit dieser überstrahlenden Helligkeit gearbeitet um eben Effekt zu machen und nicht um den Dynamikumfang tatsächlich zu erhöhen. Ich sehe jedenfalls nicht mehr Details wenn ich von SDR auf HDR600 umstelle nur mehr Licht, auf einem Foto sehe ich tatsächlich mehr Details.
Es ist bereits seit Jahren möglich mit Consumer-Karten und dem Standardtreiber 10bpc einzustellen. Oder wo ist da mein Denkfehler? Ich kann in Photoshop einen klaren Unterschied erkennen. Ich zweifel nur daran dass es Spiele gibt, die ebenfalls 10-bit darstellen. Da bin ich mir sehr unsicher.
Nein. Dein Denkfehler besteht darin, dass PS (wie auch sonstige dazu fähige Grafikprogramme) die API OpenGL zur Darstellung der 10bit heranziehen und NICHT DirectX! Somit bekommt man mit einem Game-Ready-Treiber niemals die 10bit in PS (oder ähnlichen Prog.) zu sehen. Technisch unmöglich. Dies ist im Game-Ready -Treiber nicht vorgesehen und wurde dort nie hinterlegt. Alle "Unterschiede" die man sieht, sind bloss die, die man plötlich"sehen will". In entspr. Games ist das nat. was anderes, die arbeiten ja mit DirectX...
Bevor ihr euch hier fusselig quasselt über Ossis Frage: In Spielen bekommt man echtes 10bit NUR in den Szenen zu Gesicht, in denen HDRR (HighDynamicRangeRendering) zum Einsatz kommt sonst gar nicht. (Zb. Sonnen-Überblendeffekten).
So...hab zu tippen einfach derzeit keinen Bock mehr, viel Spass noch den sonst. Beteiligten, empfehle mich.
Braucht man die "HDR10" Zertifizierung um die HDR Funktion in unterstützenden Spielen aktivieren zu können? Oder sollte das mein favorisierter Dell auch schaffen?
Ich habe mich in das Thema etwas weiter eingearbeitet und fand hilfreiche Informationen bei MSDN. Es gibt dort auch ein Video für Entwickler zu dem Thema was sehr aufschlussreich war (siehe hier).
Ich denke ich habe nun überblickt welche Information mit HDR übertragen wird und warum HDR mit 8-bit sinnvoll und möglich ist.
-HDR ist leider ein Oberbegriff welcher je nach Metier (Fotografie, Video, Spiele) sehr unterschiedlich beschrieben und aufgefasst wird.
-Mit HDR wird ein Farbraum definiert, dessen Gamut größer ist als der von sRGB. Die meisten dieser Farbräume scheinen auf BT.2020 zu basieren (z.B. SMPTE ST2084:2014/CEA-861-3 der für Dolby HDR). Durch das größere Gamut können theoretisch (sic!) mehr Farben dargestellt werden, die das menschliche Auge auch unterscheiden kann. Ein Grün in sRGB könnte also in BR.2020 noch gesättigter dargestellt werden.
-Praktisch (sic!) ist die Anzahl der möglichen Farben durch die Farbtiefe je Farbkanal begrenzt. Mit anderen Worten durch die Digitalisierung werden die Farben quantisiert. In einem SDR Farbraum und einem HDR Farbraum können also bei gleicher Farbtiefe dieselbe Anzahl aber nicht dieselben Farben dargestellt werden. Das Banding wäre vermutlich im HDR Farbraum bei derselben Farbtiefe noch deutlicher zu sehen. Dennoch ist die Dynamik im HDR Farbraum größer. Ein kaum gesättigtes Grün steht einem extrem gesättigten Grün gegenüber, welches im SDR Farbraum nicht erreicht werden könnte. Daher machen HDR mit 8-bit auch Sinn. Um das Banding aber zu vermeiden, ist mit HDR10 ein 10-bit Farbraum vorgeschrieben.
-Unabhängig vom Farbraum verringert eine höhere Farbtiefe das Banding. In DirectX wird die Farbtiefe abstrakter dargestellt in Form eines Pixelformats. So sind durchaus 16-bit floating je Farbkanal oder auch 10-bit Integer möglich. Dies hat starke Auswirkungen auf die Mathematik innerhalb einer Gameengine. Es ist daher anzunehmen, dass es Spiele gibt die das eine oder andere Pixelformat bevorzugen. In Folge müsste es daher Spiele geben die auch 10bpc Farbtiefe ausgeben können.
-Mit HDR werden Metadaten übertragen. Die minimale und maximale Leuchtdichte (in cd/m²=nits) und die maximale Leuchtdichte bezogen auf ein gesamtes Bild. Letzteres ist insbesondere für LCDs mit Hintegrundbeleuchtung gedacht. Je nach maximaler Leuchtdichte können somit Blendeffekte dargestellt werden. Ich vermute dass diese Metadaten dazu genutzt werden, die Gammakurve oder evt. sogar den Farbraum individuell zu manipulieren (nichtlinear zu verzerren), damit an unterschiedlichen Monitoren ungefähr derselbe Eindruck entsteht.
Zum Thema 10bpc in Photoshop. Sowohl AMD als auch nVidia erlauben es seit einiger Zeit 10bpc für Consumerkarten darzustellen (siehe Quelle). Ich kann daher die Aussage von @eraser4400 nicht nachvollziehen. 10bpc sind auf meinem Monitor klar immanent.
Für mich ist das Thema hiermit erst Mal abgeschlossen.
Ergänzung ()
paul1508 schrieb:
Kannst du bei deiner Nvidia HDR + Gsync gleichzeitig aktivieren?
Vermutlich nicht. Aber Windows muss den Monitor als HDR fähig erkennen. Ich weiß nicht wonach Windows schaut. Evt. ob der ST 2048 HDR Standard erfüllt ist.
Ich habe mir mal die Mühe gemacht darzustellen, was Farbtiefe innerhalb eines Farbraums bedeutet. Da man bei 8-bit Farbtiefe je Kanal bereit (2^8)^3=16777216 Farben hat (dies entspricht 8bpc), wäre der Versuch meiner Darstellung bei so vielen Farben sinnlos. Ich beschränke mich daher mal auf hypotetisch niedrigere Farbtiefen von 2bpc (64 Farben) und 3bpc (512 Farben).
Zu sehen sind jeweils Normfarbtafelen. Das eingezeichnete Dreieck entspricht einem SDR Farbraum. Die Punkte repräsentieren die Farben die aufgrund der Quantisierung dargestellt werden können. Links, mit 2bpc sind nur 64 Punkte zu sehen mit welche zudem einen sehr hohen Abstand zueinander haben. Rechts, mit 3bpc sind 512 Punkte zu sehen die ein Banding deutlich verringern. Alle theoretisch möglichen Farben innerhalb des Farbraums die zwischen den Punkten liegen, können nicht dargestellt werden.
Und im Folgenen entspricht das eingezeichnete Dreieck einem (fiktiven) HDR Farbraum. Ein Grün das im SDR Farbraum allenfalls blass dargestellt werden kann, ist im HDR Farbraum viel satter. Ob man nun 8-bit oder 10-bit als Farbtiefe nutzt ist unerheblich, solange man mit seiner Quantisierung die gewünschten, satteren Farben trifft.
@eraser4400 Studiotreiber und GameReady-Treiber unterscheiden sich kaum. Es ist mit beiden möglich. Vielleicht war es damals 2019 noch nicht so, aber heute ist es nun mal so. Ich wüsste auch nicht was dagegen sprechen sollte (siehe z.B. hier).
Zum 10bit-Support konkret kann ich nichts sagen, aber Nvidia stört sich nicht daran die Gaming GPUs künstlich per Treiber zu beschneiden um mehr GPUs im Professional/Studio Segment zu verkaufen. Mit dem Limit von max. 2 Video-Encodes gleichzeitig fiele mir zumindest eine weitere willkürliche Einschränkungen ein die lediglich durch den Treiber realisiert wird; der verbaute Video-Chip würde >20 1080p H.264 encodes gleichzeitig schaffen.
Prinzipiell wie schon erklärt nichts, aber gängige HDR-Standards (wie HDR10 oder Dolby Vision) nutzen einen größeren Farbraum als sRGB. Deswegen müssen entsprechende Displays diesen auch beherrschen.
Diesen Content könnte ich ja auch SDR-Usern zur Verfügung stellen.
Ich hab ohnehin noch nicht begriffen, warum HDR an die Helligkeit gekoppelt ist, anstatt an den Kontrast. Irgendwie scheint keine Sau eine Ahnung zu haben, was sich überhaupt dahinter verbirgt und dam Ende sind es alles Funktionen, von denen keine irgend einen Mehrwert beim schauen von Filmen, oder beim Spielen hat.
@eraser4400 Aber ich würde gerne verstehen, woher du die Information nimmst, dass es nur mit den Studio-Treibern möglich wäre. In dem Link ist im FAQ beschrieben, wo der Unterschied zwischen Studio und GameReady Treibern ist. Man kann die 10-bit ja explizit mit den GameReady Treibern auswählen. Und ich sehe ja auch den Unterschied. Wo ist da der Fehler?
@zandermax Ja genau das war auch mein Problem an der ganzen Sache. Ich wusste nicht, dass HDR auch grundsätzlich einen erweiterten Farbraum nutzt. Und ich habe auch nicht verstanden wieso man es an die Helligkeit koppelt. Wenn man aber auf unterschiedlichen Monitoren denselben Helligkeitseindruck vermitteln möchte, kommt man natürlich nicht drum herum die Helligkeit mit dem Standard zu verbinden. Ich würde als Physiker keine Farbräume definieren, sondern alle Farben in den x,y,z-Koordinaten der 3D-Farbtafel definieren (obige 2D CIE xy-Farbtafeln sind ja nur Projektionen die die Helligkeit z nicht berücksichtigen, da die Helligkeit den Farbton und die Farbsättigung nicht ändert). Die einzige Abänderung zum CIE System wäre, dass man die Helligkeit z am Besten in eine Leuchtdichte z* (cd/m²) umtransformieren sollte, damit man es technisch einfach hat die korrekte Helligkeit an verschiedenen Monitoren wiederzugeben. Kommt ein SDR Monitor mit max. 300cd/m² an seine Grenzen, würde dieser den HDR Inhalt entsprechend maximal wiedergeben. HDR Monitore mit 600cd/m² oder gar 1000cd/m² könnten dann eine vorgegeben Helligkeit identisch wiedergeben.
Ich bemängel aber an der ganzen Sache also, dass der Standard es sich unnötig kompliziert macht. Leider ist der Begriff HDR sehr schwammig formuliert. Den besten Zugang habe ich durch das MSDN erhalten. Dieses C++ Beispiel war für mich sehr aufschlussreich. Mein obiger Erklärungsversuch ist aber sicherlich nicht vollständig. Das Thema ist verzwickt. Und ich bemängel, dass die Betriebssystem es sich unnötig kompliziert machen die Farbtiefe in Desktop-Farbtiefe und Ausgabe-Farbtiefe zu unterscheiden. Ich verstehe nicht wieso man neben High-Color und True-Color auch Deep-Color auswählen kann.