Cartographie des tons et adaptation des yeux - couleurs pâles et image plus sombre

9

J'essaie d'implémenter la cartographie des tons avec l'adaptation des yeux et le HDR. En fait, je l'ai déjà implémenté mais je ne suis pas satisfait du résultat et je pense que j'ai fait quelque chose de mal.

Mon image finale (avant post-traitement) je la stocke en texture demi flottante. J'ai également 2 textures d'aide. Le premier stocke la luminance logarithmique et sa couleur moyenne, minimale et maximale dans la dernière mip-map. Le second stocke la valeur d'adaptation qui est calculée comme:

prevLum + (avgLum - prevLum) * (1.0 - exp2(-adaptionRate))

où prevLum est la valeur d'adaptation précédente (la taille de cette texture est 1x1). La texture de luminance du journal est au format R8B8G8 et la seconde est R8. Dans les tutoriels, j'ai vu que des textures à moitié flottantes sont utilisées, mais dans mon cas, j'ai des images trop lumineuses (presque blanches).

Dans le shader final du post-processus, j'utilise toutes ces valeurs pour obtenir l'adaptation des yeux et la cartographie des tons en utilisant ce code:

float autokey(in float lum) {
    return 1.03 - 2.0 / (2.0 + log10(lum + 1.0));
}

float hejl(in float color) {
    float x = max(0.0, color - 0.004);
    return (x * (A * x + B)) / (x * (A * x + C) + D);
}

float adaptedLum = texture(adaptedLuminance, vec2(0.5)).r;
float exp = exposure * autokey(adaptedLum) / adaptedLum;
result *= exp;

result.xyz=RGB2xyY(result.xyz); // conversion to CIE xyY

result.z = hejl(result.z);

result.xyz=xyY2RGB(result.xyz);

Et voici mes résultats:

  • adaptation des yeux et cartographie des tons activés adaptation oculaire et cartographie tonale
  • adaptation oculaire uniquement adaptation des yeux
  • mappage de ton uniquement mappage des tons
  • tout éteint de

Comme vous pouvez le voir lorsque le mappage des tons est activé, la couleur du lapin est plus claire. Et lorsque l'adaptation des yeux est activée, l'image finale est beaucoup plus sombre. Quelqu'un pourrait-il m'expliquer ce qui pourrait provoquer cela, parce que je pense que quelque chose ne va pas ici. C'est peut-être quelque chose avec des espaces colorimétriques que je ne comprends pas bien? Ou avec la floraison qui est appliquée avant la cartographie des tons et l'adaptation des yeux?

J'ai aussi un autre comportement étrange avec l'adaptation des yeux. Lorsque je regarde dans des zones sombres, l'arrière-plan (ciel) s'éclaircit. Ce n'est pas grave, mais cela se produit toujours lorsque le centre de la caméra est sur une zone noire (quelle que soit la distance entre la caméra et cette zone).

Je me base sur l'implémentation incluse dans les projets sur ces pages: John Chapman , Nutty Software

Harry
la source
Pour commencer, vous devriez essayer de désactiver la floraison et de ne travailler qu'avec ce qui est absolument nécessaire. De plus, si le mappage de tonalité assombrit votre blanc, cela signifie probablement qu'il ne correspond pas à une plage de 0 à 1, et vous devez soit le modifier, soit adapter votre éclairage en conséquence.
akaltar
Beau travail, avez-vous un lien vers votre projet?
danijar
Je vous remercie. Actuellement, je n'ai aucun lien. Mais je vais publier des vidéos sur YouTube ou un fichier .exe lorsque je terminerai ma thèse de master.
Harry

Réponses:

1

Vous ne faites pas fleurir, ni flou, ni profondeur de champ.

Ces effets s'ajoutent à tous les autres. Essayez également d'expérimenter avec les valeurs.

r3aktormk
la source
Merci, je vais y regarder de plus près quand je trouverai du temps.
Harry