Seite 1 von 1

Linear space - Gamma - Optimierung

Verfasst: 09.02.2015, 17:51
von Zudomon
Für Lichtberechnungen ist es ja nötig, der Textur vorher das Gamma zu entziehen um sie in den Linear Space zu bringen.
Meine Frage ist, kann man das auch Vorberechnen oder macht das nicht viel Sinn wegen z.B. Genauigkeitsverlust bei RGBA8 ?

Re: Linear space - Gamma - Optimierung

Verfasst: 09.02.2015, 19:06
von Schrompf
Würde ich nicht vorberechnen. Dafür gibt's schon unter DX9 den Sampler State "sRGB" oder so ähnlich. Damit wird die Textur beim Samplen gamma-korrigiert. Tut aber auch nicht weh, wenn Du's im Shader machst.

Re: Linear space - Gamma - Optimierung

Verfasst: 09.02.2015, 19:10
von Spiele Programmierer
Sollte man nicht im Shader machen.
Die Filterung ist dann nicht korrekt und die eingebaute Konversion wäre angeblich meistens in Hardware optimiert.
http://www.arcsynthesis.org/gltut/Textu ... arity.html

Re: Linear space - Gamma - Optimierung

Verfasst: 09.02.2015, 19:49
von Krishty
Richtig; die Hardware soll das erledigen, dafür ist sie da. Wenn das gerade nicht verfügbar ist (exotische Texturformate, z.B. nur ein Kanal), kann man es mit etwas über einem Bit Verlust beschleunigen indem man die Quadratwurzel des linearen Werts speichert und im Shader quadriert. Dann ist die Filterung aber nicht mehr ganz korrekt, wie Spiele Programmierer schon anmerkte.

Re: Linear space - Gamma - Optimierung

Verfasst: 09.02.2015, 23:26
von mnemonix
Diese Seiten [1][2] zeigen auch nochmal eindrucksvoll was passiert, wenn man nicht im linearen Raum filtert oder blurt. Gleichzeitig merke ich gerade [3], dass mein Chrome, Firefox und Internet Explorer 11 alle nicht richtig downsamplen können.

Re: Linear space - Gamma - Optimierung

Verfasst: 09.02.2015, 23:45
von Krishty
Die Beispiele müssen streng mit Box gefiltert werden um ein graues Bild zu erhalten. Chrome benutzt aber sowas wie Lanczos (damit im Ergebnis weniger Aliasing auftritt) und weicht deshalb leicht ab.

Re: Linear space - Gamma - Optimierung

Verfasst: 10.02.2015, 01:35
von Zudomon
Meine anfängliche Frage bleibt... ist es vielleicht nicht sinnvoll, die Texturen direkt linear darzustellen. Oder ist der Qualitätsverlust beim umwandeln einer Textur von sRGB8 in lRGB8 zu groß?

Re: Linear space - Gamma - Optimierung

Verfasst: 10.02.2015, 02:36
von Krishty
Je nach Textur bestimmt. Alle Farbintensitäten unter 17/255tel werden pechschwarz. Probier's doch mal aus :)

Re: Linear space - Gamma - Optimierung

Verfasst: 10.02.2015, 09:52
von mnemonix
Krishty hat geschrieben:Die Beispiele müssen streng mit Box gefiltert werden um ein graues Bild zu erhalten. Chrome benutzt aber sowas wie Lanczos (damit im Ergebnis weniger Aliasing auftritt) und weicht deshalb leicht ab.
Hm, eigentlich sollte aber statt eines grauen Bildes der Dalai Lama angezeigt werden. ^^