Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »mark93« (01.10.2012, 22:42)
1. Die Texturen liegen alle im sRGB-Farbraum vor, ist das korrekt?
2. Der sRGB-Farbraum ist von der Gamma-Kurve, der unteren Kurve (ungefähr) gleich zu setzen?
3. So müssten die Texturen ja einfach mit pow(tex,1.0/2.2) in den linearen Raum gebracht werden? (Ich weiß das die power function nicht ganz korrekt ist, aber ums einfach zu halten...)
4. Erwartet der Monitor meinen finalen Output im sRGB-Raum (untere Kurve) ?
5. Wenn ja, warum sagt meine Render-Engine: "When rendering to a final 8-bit per channel display, you’ll also want to convert back to gamma space which can be done in your shader (by raising to the power 1/2.2) or you can enable gamma correction on the texture being rendered to or the render window"? Denn das würde ja den linearen Raum, in die obere Kurve bringen.
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »dot« (01.10.2012, 22:07)
Quellcode |
|
1 |
tex = pow(pow(tex,2.2f),1.0f/2.2f) |
Um nun vom linearen raum zu der unteren Kurve zu kommen muss ich pow(tex, 2.2) machen.
Am Ende will ich ja meine Ergebnisse die linear sind, wieder in die untere Kurve bringen, warum also hat meine Render-Engine Recht?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (01.10.2012, 22:27)
Zitat
Wenn du einmal mit einer linearen Pipeline gearbeitet hast und den Unterschied mit eigenen Augen gesehen hast, wirst du dich fragen, wie du das all die Zeit nur ignorieren konntest. Geht mir manchmal sogar immer noch so...
Zitat
Weil du deine linearen Werte mit 1/2.2 potenzieren musst, um Werte zu bekommen, die das Display dann mit 2.2. potenzieren kann.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »mark93« (01.10.2012, 22:47)
Dieser Raum wird durch die untere Funktion (g(x)) beschrieben.
Alter Hase
Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy
Quellcode |
|
1 |
output = input^gamma |
Quellcode |
|
1 |
output = input^(1.0/gamma) |
Werbeanzeige