Войти
ПрограммированиеФорумГрафика

pbr + tonemap = цвета ужасны

Страницы: 1 2 Следующая »
#0
(Правка: 21:36) 21:23, 22 фев. 2021

Привет. Запутался в обработках уже

Рендерю ПБР во флоат буфер.
Далее делаю

vec4 toneMapped = sceneColor;
toneMapped.xyz = toneMapped.xyz / (toneMapped.xyz + vec3(1.0));

применяю 1/gamma (любое подсовываю 1..2..33) потом

===================
получил блеклые безжизненные цвета + освещения вообще не видно на фоне остального

https://www.dropbox.com/s/680i58l5sc9m9h3/mul1.jpg?dl=0

умножил при задании цвета источника (это потом в шейдер ПБР идет как цвет источника)

#define TONMAP_LIGHTING_COLOR_MUL 5

// чем ярче, тем насыщеннее после освещения
CVector3f Color2Radiance(float *col)
{
  float mul = PI * TONMAP_LIGHTING_COLOR_MUL;

  CVector3f rez;

  rez[0] = col[0] * mul;
  rez[1] = col[1] * mul;
  rez[2] = col[2] * mul;

  return rez;
}

https://www.dropbox.com/s/vyjaraxoqvkh9qu/mul5.jpg?dl=0

вроде как лучше стало. Но все остальное стало блеклым . - туман был раньше белый (и там цвет больше 1 сейчас) Какая-то серость. Исправить можно рисуя туман не с цветом 1 1 1, а 100 100 100. , но мне не нравится такой подход

https://www.dropbox.com/s/7p4abtkmnmulewi/gray.jpg?dl=0

=========================
Далее я стал пробовать другие тонмапинги

vec3 FilmicMain( vec3 texColor ) 
{
   vec3 x = max(vec3(0.0),texColor-0.004); // Filmic Curve
   vec3 retColor = (x*(6.2*x+.5))/(x*(6.2*x+1.7)+0.06);
   return pow(retColor,vec3(2.2));  // avoid coded gamma
}

поживее стало

https://www.dropbox.com/s/5k03ue1n13w2blw/filmic.jpg?dl=0
https://www.dropbox.com/s/6ijia8uhn354wpo/antigray.jpg?dl=0

=============
Еще можно добавить експу перед тонмапом: toneMapped = vec4(1.0) - exp(-f4Color * fext);

================
Так вот вопросы - че, как это все настраивать,я не понимаю.

В освещение какой цвет передавать, там PI какое-то.  Как провести аналогию со старым освещением где 1 1 1 цвет . Мне нужно чтобы одинаково выглядело вцелом по яркости ?

По блеклому рейнхарду что можно сказать? Так и должно быть? И просто его не юзать ? Филмик оставить? Тут правильно всё?

Нужна ли экспа?


#1
(Правка: 21:30) 21:29, 22 фев. 2021

The Andreyp
а у тебя разве HDR, что бы тонмап применять?

#2
22:37, 22 фев. 2021

HDR Tonemapping – Перегон HDR в LDR (ACES, Uncharted 2, Reinhard, Cineon).
// HDR tonemapping Reinhard
color = color / (color + vec3(1.0));
// gamma correct
color = pow(color, vec3(1.0 / 2.2));
Ты уверен, что не перегоняешь LDR в LDR? Просто гамма сильная у тебя слишком.

#3
(Правка: 23:10) 22:59, 22 фев. 2021

lookid
ну - я завел фбо с флоат текстурами
пощитал пбр

обработал

да и цвет в буфере реально > 1

а финальная гамма 2.2, можно 1 поставить

#4
23:28, 22 фев. 2021

У тебя тонмапер говно. Рейнхард это технологии 20-ти летней давности.

#5
23:31, 22 фев. 2021

Battle Angel Alita
так блеклость при ренхарде это обычное дело?

после FilmicMain норм?

#6
23:47, 22 фев. 2021

я уверен что перегоняю откуда куда надо, ибо без тонмапера выглядит всё так

https://www.dropbox.com/s/dpa0zl1wx04xhoi/shot000.jpg?dl=0

#7
6:26, 23 фев. 2021

The Andreyp
то есть ты сначала настроил картинку так, чтобы она тебе нравилась в LDR, а потом приделываешь к ней тонмапперы и негодуешь, что тебе результат не нравится? лол, так тебе шашечки или ехать?

#8
(Правка: 12:30) 12:28, 23 фев. 2021

Suslik
типа того))))
потому что юзер врубает ультракачество и у него все по-другому...

то есть не будет одинаковости и такие изменения тонов это нормально???

как это все натсраивать и крутить?

#9
12:53, 23 фев. 2021

Никак. Тон-маппинг это "грубо говоря" перегон из линейного пространства цветов в логарифмическое. Детали не важны. У тебя текстуры должны быть изначально с кривым [0, 1023] => [0, 1], который уже тонмаппером ложится на [0, 255] либо [16, 235].

#10
13:00, 23 фев. 2021

чего-то я не понимаю. Я думал, что смысл PBR в том, что 2д / 3д артистам надо меньше заниматься подгонкой и больше использовать материалы из реального мира с реальными характеристиками. И вроде как LDR -> HDR это неотъемлимая часть рендеринга. (А еще где-то sRGB спрятался и на что-то влияет).  Мне казалось, что оно все из коробки должно хорошо работать.

#11
13:30, 23 фев. 2021

MAMOHT-92
> Мне казалось, что оно все из коробки должно хорошо работать.
а нормальный свет, туман, энвайронмент мепы и экспозицию тебе тоже должны из коробки поставить, как только ты pbr шейдер напишешь?

#12
18:10, 23 фев. 2021

MAMOHT-92
PBR это кук-торренс + IBL. А Tone Mapping был еще в 2007. Ну да, это всё давно уже есть. Просто не выделялось особо.

#13
4:30, 24 фев. 2021

The Andreyp
> то есть не будет одинаковости и такие изменения тонов это нормально???
как могут правильное и неправильное изображения быть одинаковыми? ясное дело, что если ты долго настраивал, чтобы неправильное выглядело красиво, то правильное будет выглядеть хуже. tonemapping — это не опция в настройках для "ultra" качества, которую можно нашлёпнуть свёрху и волшебно сделать картинку красивее, с ним сразу нужно ставить освещение и энвайронменты и, ясное дело, его нельзя делать опциональным.

#14
4:59, 24 фев. 2021

Короче, подгонять под "красиво" нужно когда у тебя уже всё включено.

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика