Відображення тону та адаптація очей - бліді кольори та темніше зображення


9

Я намагаюся реалізувати відображення тону разом із адаптацією очей та HDR. Насправді я це вже реалізував, але результатом я не задоволений, і думаю, що я зробив щось не так.

Моє остаточне зображення (перед післяобробкою) я зберігаю в напівфалійній текстурі. У мене є також 2 допоміжні текстури. Перший зберігає яскравість журналу та середню, мінімальну та максимальну кольори в останній mip-карті. У другому зберігається значення адаптації, яке обчислюється як:

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

де prevLum - попереднє значення адаптації (розмір цієї текстури - 1х1). Текстура яскравості журналу - формат R8B8G8, а друга - R8. У навчальних посібниках я бачив, що використовуються напівфайлові текстури, але в моєму випадку у мене занадто яскраві зображення (майже білі).

У кінцевому шейдері після обробки я використовую всі наявні значення для отримання адаптації очей та відображення тону за допомогою цього коду:

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);

І ось мої результати:

  • адаптація очей і відображення тону увімкнено адаптація очей і відображення тону
  • лише адаптація очей адаптація очей
  • тільки тональне відображення тональне відображення
  • все вимкнено вимкнено

Як ви бачите, коли відображення тонів увімкнено, колір зайчика стає світлішим. А коли адаптація очей увімкнена, фінальне зображення стає значно темніше. Може хтось пояснить мені, що може це спричинити, бо я думаю, що тут щось не так. Може, це щось із кольоровими просторами, які я не добре розумію? Або з цвітінням, яке застосовується перед картографуванням тону та адаптацією очей?

У мене є ще одна дивна поведінка з пристосуванням очей. Коли я дивлюся на темні ділянки, фон (небо) стає яскравішим. Це нормально, але це трапляється завжди, коли центр камери знаходиться на чорній ділянці (незалежно від того, наскільки камера знаходиться від цієї області).

Я базуюсь на впровадженні, включеному в проекти на цих сторінках: Джон Чапман , Nutty Software


Для початку вам слід спробувати відключити цвітіння і працювати лише з тим, що абсолютно необхідно. Крім того, якщо тональне відображення змушує ваш колір темніти, це, ймовірно, означає, що він не відображається в діапазоні 0 - 1, і вам слід або змінити це, або адаптувати освітлення відповідно.
акалтар

Приємна робота, чи є у вас посилання на ваш проект?
danijar

Дякую. На даний момент я не маю жодного посилання. Але я збираюсь опублікувати деякі відео на YouTube або .exe-файлі, коли закінчу магістерську роботу.
Гаррі

Відповіді:


1

Ви просто не розфарбовуєте, не розмиваєте, чи глибину різкості.

Ці ефекти попереду всіх інших. Спробуйте також експериментувати зі значеннями.


Дякую, я погляну на це ближче, коли знайду трохи часу.
Гаррі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.