Linear space - Gamma - Optimierung
Linear space - Gamma - Optimierung
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 ?
Meine Frage ist, kann man das auch Vorberechnen oder macht das nicht viel Sinn wegen z.B. Genauigkeitsverlust bei RGBA8 ?
- Schrompf
- Moderator
- Beiträge: 5156
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Linear space - Gamma - Optimierung
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.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
-
- Establishment
- Beiträge: 426
- Registriert: 23.01.2013, 15:55
Re: Linear space - Gamma - Optimierung
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
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
- Krishty
- Establishment
- Beiträge: 8343
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Linear space - Gamma - Optimierung
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.
- Krishty
- Establishment
- Beiträge: 8343
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Linear space - Gamma - Optimierung
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
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ß?
- Krishty
- Establishment
- Beiträge: 8343
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Linear space - Gamma - Optimierung
Je nach Textur bestimmt. Alle Farbintensitäten unter 17/255tel werden pechschwarz. Probier's doch mal aus :)
Re: Linear space - Gamma - Optimierung
Hm, eigentlich sollte aber statt eines grauen Bildes der Dalai Lama angezeigt werden. ^^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.