HDR Verständnisfrage

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
Zudomon
Establishment
Beiträge: 2253
Registriert: 25.03.2009, 07:20
Kontaktdaten:

HDR Verständnisfrage

Beitrag von Zudomon »

Und zwar verstehe ich das noch nicht ganz mit der Helligkeit.
Ich wollte, damit die Nacht glaubwürdiger erscheint, dunkle Werte eingrauen. Das Problem dabei ist, dass dann auch der Sternennebel nicht mehr so schön wirkt, weil dieser schnell ins graue übergeht:

Grau:
20151014_2.jpg
Bunt:
20151014_3.jpg
Also müsste man die Nebel an sich also heller machen (die Bandings entstehen hier, weil die Textur 8 Bit und es darin sogar noch relativ dunkel ist, also nicht dran stören).
Das Problem ist allerdings dann, dass diese viel zu stark leuchten, schließlich sollen sie nur ein wenig leuchten... aber eben bunt. Habe ich da einen Denkfehler? Irgendwie komme ich nicht zu dem gewünschten Ergebnis.

Nebel statt mit 50, mit 1000 multipliziert:
20151014_4.jpg
Zuletzt geändert von Zudomon am 14.10.2015, 14:23, insgesamt 1-mal geändert.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: HDR Verständnisfrage

Beitrag von Krishty »

Nee, das Problem habe ich auch: http://zfx.info/viewtopic.php?f=11&t=8#p6906

Einzige Lösung (ohne Wahrnehmungspsychologie im Computer zu simulieren) ist, den Übergang zwischen photopischem und skotopischem Sehen so weich wie möglich zu gestalten.

Es könnte z.B. etwas bringen, in HSV statt RGB zu rechnen, aber ich bin noch nicht dazu gekommen, das auszuprobieren.

P.S.: Vielleicht solltest du erst blaue Farben erkennbar zu machen und rote später (weil das Nachtsehen blauempfindlich ist), dann könnte es ein winziges Bisschen natürlicher aussehen.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Zudomon
Establishment
Beiträge: 2253
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: HDR Verständnisfrage

Beitrag von Zudomon »

Ah okay!

Wenn dem so ist, wäre es doch auch in Ordnung, wenn man da trickst und z.B. den Himmel ausmaskiert, oder? Wollte eigentlich solche Tricksereien vermeiden. Aber ich finde es einfach schade wenn man dadurch die "Schönheit" des Nachthimmels verliert.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: HDR Verständnisfrage

Beitrag von Schrompf »

Ich halte das eher für realistisch. Wenn Du eine zahlenmäßig halbwegs realistische Ausgrauung in Deinem HDR implementiert hast, *ist* der Nachthimmel halt größtenteils grau. Leuchtend bunte Nebel gibt's leider nur in Filmen.

Wobei ich ehrlich anmerken muss: im Astronomie-Unterricht gab es damals Leute, die in hellen Sternen Farben gesehen haben. Für mich waren alle Sterne nur weiß. Diese Grau-Schwelle ist wahrscheinlich auch von Mensch zu Mensch unterschiedlich.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2253
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: HDR Verständnisfrage

Beitrag von Zudomon »

Also ich hab auch das Gefühl, dass Sterne bunt schimmern :D
Vielleicht weil das hellere Sternenlicht immer einen Zapfen/Stäbchen (also eins davon, dass was für Farbe zuständig ist) trifft.
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: HDR Verständnisfrage

Beitrag von CodingCat »

Wie sieht denn dein Tonemapping aus? Da gibt es ja 100 Varianten, die genau solche Probleme adressieren.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Zudomon
Establishment
Beiträge: 2253
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: HDR Verständnisfrage

Beitrag von Zudomon »

Also ich verwende das hier, keine Ahnung wie das heißt, oder wo ich das mal her hatte...
Da ist auch das "Eingrauen" mit drin.
Am Ende muss ich das noch Gammern, sonst sieht es falsch aus. Und damit es dann nicht so ganz blass aussieht ist dieser Wert noch etwas angepasst.

Code: Alles auswählen

  void tonemap(inout float3 col, float key)
  {
    float l = dot(float3(0.27, 0.67, 0.06), col.rgb);   

    float s = pow(inlrp(0.04,0.004,l), 4);

    col.rgb = lerp(col.rgb, l, s*0.7);    


    col.rgb *= (1-exp(-l * key)) / l;     

    col.rgb = pow(col.rgb, 0.54); // 1/2.2 = 0.4545
  }
Benutzeravatar
Jonathan
Establishment
Beiträge: 2353
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: HDR Verständnisfrage

Beitrag von Jonathan »

Zudomon hat geschrieben:Also ich hab auch das Gefühl, dass Sterne bunt schimmern :D
Vielleicht weil das hellere Sternenlicht immer einen Zapfen/Stäbchen (also eins davon, dass was für Farbe zuständig ist) trifft.
Warum Sterne regenbogenfarben sind (der Anfang erklärt, warum sie aussehen, wie Sterne):
https://youtu.be/VVAKFJ8VVp4?t=158
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Zudomon
Establishment
Beiträge: 2253
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: HDR Verständnisfrage

Beitrag von Zudomon »

Ich habe nun eingebaut, dass der Tonemappingkey aus der Bildhelligkeit genommen wird. Nun sind dadurch Tag/Nacht Übergänge wesentlich besser, allerdings stehe ich nun vor dem nächsten Problem.
Was ich möchte:
Tagsüber bei Sonnenschein den Planeten (am Himmel) leicht sichtbar haben, wie man es in der echten Welt vom Mond her kennt. Das Problem ist, wenn der Planet so hell ist, dass er Tagsüber leicht sichtbar ist, dann ist er Nachts gnadenlos übersteuert. Ich kann mir das nur so erklären, dass die Leuchtfläche eben viel größer ist, wie bei dem Mond und er deswegen so viel Licht ausstrahlt.

Wie bekomme ich den Planeten Nachts dunkler ohne das explizit einzubauen? Oder ist meine "Nacht" zu dunkel?
20170111_2.jpg
20170111_1.jpg
EDIT: Was mir noch einfällt... momentan wird die gemittelte Helligkeit aus dem ganzen Bild genommen... das ist wahrscheinlich nicht die beste Lösung...
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: HDR Verständnisfrage

Beitrag von Krishty »

Falls es dir hilft: Der Mond hat IIRC eine Leuchtdichte von ~100 cd/m²; der Sternenhimmel 0,1–0,001; der Mittagshimmel ~1000–10000.

Könnte danebenliegen weil ich die Quellen gerade nicht finde, aber in der Größenordnung war’s.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: HDR Verständnisfrage

Beitrag von Schrompf »

Das sieht doch ziemlich geil aus, finde ich. Das einzig Seltsame ist vielleicht, dass eine so knackehelle Fläche am Himmel auch ein bisschen gelbes Licht auf die Landschaft werfen müsste. Ansonsten finde ich das aber nicht unplausibel - in Vollmondnächten wirft das Licht vom Mond ja sogar erkennbare Schatten.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2253
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: HDR Verständnisfrage

Beitrag von Zudomon »

@Krishty
Zumindst um eine Vorstellung davon zu haben, wie es in Wirklichkeit ist. Aber letztendlich schiebe ich bis es passt... :D

@Schrompf
Danke. Der Planet wirft sogar Licht auf die Welt... sogar automatisch, weil die Reflektionmap ja auch zur Beleuchtung herangezogen wird. Aber leider sieht das ganze nicht so wirklich schön aus. Ich glaube, das liegt vor allem am fehlenden Schatten, aber auch, dass das SSS nicht für Licht aus der Reflektionmap angewendet wird. Man sieht das auf dem Screen nicht, weil es durch den Tonemapkey so abgedunkelt ist. Aber schaut man in die Nacht hinaus, sieht es etwa so aus, wenn der Planet am Himmel steht:
20170111_3.jpg
Ich bin mir mittlerweile auch ziemlich sicher, dass mein Problem daher rührt, dass ich für den TonemapKey einfach den Mittelwert der Helligkeit des Bildes nehme. Vielleicht sollte man da eher ein bisschen bluren und dann die Maximalhelligkeit nehmen. Ich glaube, bei der HL2 Engine wurde damals über ein Histogramm usw. gearbeitet. Das war mal in deren HDR Slides.

Das Bloom ist auch eher billig gelöst bisher... wenn ich wüsste, dass es nicht allzuschwierig umzusetzen wäre, dann würde ich ja gerne das Paper, was Krishty für die Sterne für das Augscattering genutzt hat, umsetzen. Aber ich tu mich sehr schwer mit Spektralzeugs... FFT und IFFT hab ich nur mal angewendet und glaube, das war auch nicht ganz korrekt damals. Auf Bilder hat ich das noch nie verwendet, da fehlt mir ehrlich gesagt noch einiges an Verständnis.
Antworten