3DCenter.ru

Здравствуйте, гость ( Вход | Регистрация )

 Forum Rules Chaos Software vRay
19 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Sun + Sky + Gamma 2.2 + Physical Camera, Все что надо знать про гамму!
mentor
сообщение 01/07/2007, 15:36
Сообщение #1


Дельфин :)
Иконка группы

Группа: Участник
Сообщений: 5 488
Регистрация: 06/08/2003
Из: Chelyabinsk
Пользователь №: 3 088



Ничего нового не пишу, просто обобщаю и систематизирую всё, о чем писалось на этом форуме и привожу свои примеры. Иначе гаммафрения никогда не кончится smile.gif Хотя... наверно и после этого топика мало что измениться...
QUOTE
Puppet

Рассмотрим гамму на примере обычного линейного черно-белого градиента.
На экране монитора градиент для глаза выглядит не линейно, если быть более точным в темных тонах мало деталей, а на свету много. Если рендерить картинку, то будет много темных мест и их придеться подсвечивать, хотя такого быть не должно.
Чтобы этого избежать, чтобы градиент выглядел линейным для глаза, тоесть имел одинаковое количество деталей и в тенях и на свету нужно изогнуть кривую градиента, тоесть сделать его не линейным с математической точки зрения, но линейным для человеческого глаза. Для этого используется гамма коррекция. Для PC мониторов гамма должна быть установлена 2.2, для других мониторов это число может быть другим.

Приведу небольшой пример...
Изображение

Это обычный диффузный шарик с одним источником света.
Слева гамма 1.0, справа гамма 2.2, а в центре фото.
Разумеется это приблизительно, но разница и смысл думаю понятен.
Следует заметить, что освещение в сцене с гаммой 2.2 настраивать как то проще и быстрее.

Ну, все вроде кажется просто, включаем гамму и вперед. Но тут есть небольшая проблема касающаяся текстурных файлов...
Ведь если просто перед записью результата пикселя применять гамма коррекцию к пикселу(это происходит во время рендера), то текстуры которые нас до этого устраивали по цвету, станут просто значительно светлее.
Соответственно все текстуры, чтобы они выглядели как в оригинале должны быть сгаммакорректированы в обратную величину, тоесть 1/2.2 = 0,4545454545. В итоге текстура станет темнее чем в оригинале, но во время рендера 0,45 умножится на 2.2 и получится 1, тоесть текстура будет выглядит как в оригинале.
Некоторые рендера (например ментал) делают обратную гамма коррекцию для текстур автоматически не видимо для пользователя. Этого не далает, например, prman и каждый фаил нужно пропустить через ноду гамма коррекции со значением 0,4545454545. Но даже если ваш рендер делает это автоматически следует знать что все таки происходит чтобы не было недопонимая и не понятных рельтатов. Вобщем все рендера тут работают по разному, надо проверять.
Макс, например, насколько я знаю хорошо работает с гаммой, он даже показывает гамму в материал эдиторе, а вот например мая в гипершейде всегда отображет превью шейдеров с гаммой 1.0 sad.gif В слиме нужную гамму можно установить вручную.
То что в максе называется Input Gamma и Output Gamma, это как раз гамма для файловых текстур. Если у вас текстура нарисована линейно для глаза, ну тоесть так как мы ее должны видеть на рендере, то значит она уже в гамме 2.2, ставим Input Gamma 2.2, Output Gamma'у ставим так же в 2.2. В итоге если эти значения одинаковые то текстуры останутся такими какими мы их рисовали. (про output gamma далее есть уточнения)
Еще раз про 32 bit float... Когда мы рендерим в обычный 8 или 16 битный формат, то гамма коррекция применяется сразу на рендере. А вот если рендерить в 32 bit float point или 16 bit half float, то подразумевается что гамма коррекция будет применена после вручную на композе. С обычными 8 и 16 битными форматами так не делается потому что, диапазон таких картинок не большой и при гамма коррекции потеряется много данных (и будут заметые артефакты!) . В случае с 32 битными картинками потери будут не такими значительными и не заметными для глаза.
Вообще гамма 2.2 облегчает настройку освещения. Теоретически гамма 2.2 должна была бы стать дефолтной для всех софтов и это было бы логично, но почему то этого не случилось, уж не знаю почему...
Ну вобщем я тут все кратко описал, но все это рекомендую прочитать очень внимательно и попробовать, чтобы понять зачем все это.
В инете можно найти много материала по теме гамма коррекции.
Вот, например, одна из ссылок, больше для художников:
http://throb.net/site_main/LinearWorkflow.html
Вот еще очень хорошая линка:
http://mysite.verizon.net/spitzak/conversion/index.html

P.S. Я тут немого напутал с терминологией smile.gif Прошу не путать...
То что 2.2 это gamma, а 0,45 (обратная gamma) это gamma correction


Теперь после теории перейдем к практике. Вот сценка и пример рендера с гаммой 1. Освещение - Sun + Sky + physical camera.
Изображение
Шумно, темно и пересвечено. Включаем кнопочку SRGB, чтоб посмотреть как это будет выглядеть в гамме 2.2
Изображение
другое дело - стало светлей и видно темные области, но вся картинка выбеленная - нам нужно подкорректировать текстуры, чтоб он стали темней. Идем в настройки и включаем все как на картинке:
Изображение
Рендерим:
Изображение
так гораздо лучше, но шум все равно есть. почему? из-за значений noise thresh в QMC sampler'e, т.к. (при выключенной кнопке SRGB) значения шума укладываются в noise thresh и дополнительных сэмплов антиалиасинга vray не делает, а как только мы включаем гамма-коррекцию во вьюпорте (SRGB), то сразу видим шум в темных участках. Выход есть - включать гамму в color mapping'e. Смотрим настройки на картинке:
Изображение
noise thresh = 0.05 - для скорости рендера. Установим Gamma = 2.2. Sub-pixel mapping нужен для того, чтобы на мелких объектов не возникало "выгоревших пикселов" - отдельных ярких точек, в этом случае колор-маппинг применяется ко всем сэмплам в пикселе. Выключаем кнопку SRGB и рендерим:
Изображение
шума стало гораздо меньще, чем на первой картинке, т.к. color mapping примеятся во время рендеринга, а не после и время рендера немного возросло.
В принципе все, можно еще сделать картинку немного ярче, повысив burn = 1.5
Изображение
Срваните что было и что стало. Никакого гемороя с настройкой света, экспозицией и пр. ерундой. Все просто wink.gif

В качестве освещения использовались VraySun + VraySky, sun mult. = 1, камера - vray physical camera. И никакого шаманства. Использовать максовскую камеру не стоит ни в коем случае.

Осается понизить noise thresh = 0.01 и сделать финальный рендер:
Изображение
Изображение

PS
Как видно из примера - ничего больше крутить не надо, хотя можете попробовать. Output gamma влияет на гамма-коррекцию картинки при записи в файл, если у вас нормальная гамма в фрей-буфере, то НЕ НАДО ставить Output gamma = 2.2. Про кнопочку SRGB можно забыть. Уф, умаялся... Теперь точно всё smile.gif
Финальная сценка тут.

Сообщение отредактировал mentor - 01/07/2007, 16:00
Go to the top of the page
 
+Quote Post
mentor
сообщение 01/07/2007, 16:33
Сообщение #2


Дельфин :)
Иконка группы

Группа: Участник
Сообщений: 5 488
Регистрация: 06/08/2003
Из: Chelyabinsk
Пользователь №: 3 088



Да, совсем забыл, если юзать гамма-коррекцию в vray color mapping, то render elements при сборки н-р во Фьюжене дают другой, неправильный результат, непохожий на то, что мы видим в максе во фреймбуфере... Получается что каждый пасс по-своему колор-маппиться и в итоге получается фигня. Приходиться рендерить с vray gamma = 1 в OpenEXR 32-bit и в композе уже ставить нужную гамму, понижая noise thresh чтоб не шумело.
Go to the top of the page
 
+Quote Post
3dimentii
сообщение 01/07/2007, 17:26
Сообщение #3


Мастер
Иконка группы

Группа: Участник
Сообщений: 1 101
Регистрация: 24/05/2003
Пользователь №: 2 308



еще хотелось_бы уточнить! все эти манипуляции с гаммой нужно делать в "новой, чистой" сцене.
вот у меня к примеру при загрузке макса грузится моя сценка настроенная maxstart.max (со старыми настройками, пресета для быстрого рендера), так вот, намучался я 22[1].gif
при изменении оутпут гаммы ВО ВЬЮПОРТЕ ничего не менялось, что завело меня в заблуждение...
после ресета настоек все пришло в норму...
кароче! все делаем в чистой сцене.
Go to the top of the page
 
+Quote Post
mentor
сообщение 01/07/2007, 17:33
Сообщение #4


Дельфин :)
Иконка группы

Группа: Участник
Сообщений: 5 488
Регистрация: 06/08/2003
Из: Chelyabinsk
Пользователь №: 3 088



output gamma на вьюпорт и не должна влиять smile.gif

Сценки в 9-м Максе!!!

Сообщение отредактировал mentor - 01/07/2007, 17:41
Go to the top of the page
 
+Quote Post
Yoyohansen
сообщение 01/07/2007, 21:27
Сообщение #5


Учитель
Иконка группы

Группа: Пользователи
Сообщений: 335
Регистрация: 14/03/2005
Из: Moscow
Пользователь №: 11 301



Мои поздравления smile.gif
Гамма это просто! wink.gif

Только одно:
"Использовать максовскую камеру не стоит ни в коем случае."

это почему?
Значение Multiplier в Reinhard полный аналог выдержки в PhisCam, просто выраженый в других величинах


Go to the top of the page
 
+Quote Post
mentor
сообщение 01/07/2007, 21:44
Сообщение #6


Дельфин :)
Иконка группы

Группа: Участник
Сообщений: 5 488
Регистрация: 06/08/2003
Из: Chelyabinsk
Пользователь №: 3 088



2 Yoyohansen
щас про начнется флуд про max camera & Vray physical camera на 70 страниц smile.gif Просто с Vray physical camera все несравненно проще и удобней, она для того и сделана, ведь так? wink.gif
Go to the top of the page
 
+Quote Post
Yehat
сообщение 02/07/2007, 06:36
Сообщение #7


Ядро 1-сорт
Иконка группы

Группа: Пользователи
Сообщений: 4 068
Регистрация: 01/10/2005
Из: Moscow
Пользователь №: 16 680



в этом workflow есть глюк:
копия фреймбуфера отличается от самого фреймбуфера на величину гаммы.
Go to the top of the page
 
+Quote Post
Корвин Амбер
сообщение 02/07/2007, 06:50
Сообщение #8


Магистр наук
Иконка группы

Группа: Пользователи
Сообщений: 1 615
Регистрация: 20/11/2006
Из: планета Земля, континент Евразия, страна Россия, Сибирь, г. Омск
Пользователь №: 40 510



QUOTE
а как только мы включаем гамма-коррекцию во вьюпорте (SRGB),

smile.gif обчепятка - не во вьюпорте, а в VFB, виртуальном буфере кадров
Go to the top of the page
 
+Quote Post
SALuto
сообщение 02/07/2007, 09:05
Сообщение #9


"Добрый"
Иконка группы

Группа: Модераторы
Сообщений: 4 033
Регистрация: 19/09/2002
Из: Almaty
Пользователь №: 767



Тема прикрепленная, поэтому поменьше флуда. Благодарности пишите ему на почту или в PM.
Go to the top of the page
 
+Quote Post
triar
сообщение 02/07/2007, 09:12
Сообщение #10


***
Иконка группы

Группа: Участник
Сообщений: 2 676
Регистрация: 05/08/2004
Пользователь №: 6 891



чтобы скопировать буфер для сравнения я пользуюсь достаточно странным методом, но это работает 100% Просто аквтивирую временно curve в VFB и там загружаю эту обратную курву, которая вьюпорт приводит как бы к гамме 1, копия становится нужной, невысветленной, потом для последующего рендера просто отжимаю обратно кнопку активности curve in VFB - вот и всё - думаю в 1.5 будет inverse sRGB - ну или нечто подобное biggrin.gif

PS:Кстати, вот фраза из хелпа от 12 мая 2005 года про ColorMapping:
Gamma - this parameter allows the user to control the gamma correction for the output image regardless of the color mapping mode. Note that the value here is the inverse of the one used for the Gamma correction color mapping type. For example, to correct the image for a 2.2-gamma display, you should set the Gamma parameter simply to 2.2.

Это для тех кто думает что в колормапинге некорректно выставлять гамму 2.2 - а такие персонажи до сих пор есть, поверьте. yes.gif

Сообщение отредактировал triar - 02/07/2007, 09:28
Прикрепленные файлы
Прикрепленный файл  InverseCurveVFB.zip ( 196 байт ) Кол-во скачиваний: 3096
 
Go to the top of the page
 
+Quote Post
alex-2
сообщение 03/07/2007, 12:06
Сообщение #11


Учитель
Иконка группы

Группа: Пользователи
Сообщений: 384
Регистрация: 09/02/2006
Пользователь №: 22 915



Для тех кто любит линейку доводить до ума за пределами вирея.
Можно выводить канал вирея vray unclanpedcolor
Во первых сохраняется актуальность кнопки sRGB, незнаю хорошо это или плохо rolleyes.gif
Во вторых например в формате опен ЕХР сохраняется сразу как надо, тоесть последующей гамма коректировки не требуется

Go to the top of the page
 
+Quote Post
Корвин Амбер
сообщение 03/07/2007, 12:37
Сообщение #12


Магистр наук
Иконка группы

Группа: Пользователи
Сообщений: 1 615
Регистрация: 20/11/2006
Из: планета Земля, континент Евразия, страна Россия, Сибирь, г. Омск
Пользователь №: 40 510



Угу. Как вариант - сохраняем в Radiance Image File - HDRI, то бишь, в режиме Use Non-Clamped (Real Pixel Color), а далее в фотошопе крутим как хотим и что хотим (гамму, экспозицию). Примечание - если сохранять сразу в HRDI-файл, то насторойки экспозиции Physical Camera не действуют. ...........
Вобщем, это способ на любителя. Далеко не всем нравится.
Go to the top of the page
 
+Quote Post
alex_g
сообщение 03/07/2007, 23:54
Сообщение #13


Рыцарь форума
Иконка группы

Группа: Пользователи
Сообщений: 1 962
Регистрация: 29/04/2006
Пользователь №: 30 588



Чуть дополню,
практически нигде явно не упоминается о том, что цвета вводимые в материал эдиторе подразумеваются с гаммой равной единице и пипеткой их из простого "жипега" брать не совсем корректно (т.к. он с гаммой 2,2).


Вот некоторые утилиты направленные на решение этого вопроса: )
  • скрипт от 111 | сцылко на пост
  • тот же скрипт, оформленный в макроскрипт CyberFlipper'ом | сцылко на пост

  • QUOTE(triar @ 10/01/2007, 23:30) [snapback]787940[/snapback]
    Скрипт от 111 супер - а вот для реалтайма так сказать - кто руками хочет чтоб всё сразу не изменить например - Спасибо LeLe с хаоса и Паше - он заказал smile.gif
    скрипт
Проблема описаная mentor'ом во втором посте, про сохранение в формат exr:

Можно в диалоге сохранения изображения поставить галочку exponent в значение 0,455.

Сообщение отредактировал alex_g - 03/07/2007, 23:59
Go to the top of the page
 
+Quote Post
mentor
сообщение 04/07/2007, 09:27
Сообщение #14


Дельфин :)
Иконка группы

Группа: Участник
Сообщений: 5 488
Регистрация: 06/08/2003
Из: Chelyabinsk
Пользователь №: 3 088



QUOTE
Можно в диалоге сохранения изображения поставить галочку exponent в значение 0,455.

Это не помогает, в доках написано, что для композинга надо рендерить в линейном цвете, т.е. без гаммы.
Go to the top of the page
 
+Quote Post
alex_g
сообщение 05/07/2007, 00:31
Сообщение #15


Рыцарь форума
Иконка группы

Группа: Пользователи
Сообщений: 1 962
Регистрация: 29/04/2006
Пользователь №: 30 588



да, точно, чушь написал
Но все равно информация полезная )

кстати про композ, можно и с гаммой 2,2 "отогнать" а потом править..

не все каналы меняются (см. атач), остается это автоматизировать dry.gif
Прикрепленные файлы
Прикрепленный файл  Vray_Render_Elements.html ( 2,84 килобайт ) Кол-во скачиваний: 3062
 
Go to the top of the page
 
+Quote Post
Bots
сообщение Системное сообщение






19 страниц V   1 2 3 > » 
Reply to this topicStart new topic

1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 19/03/2024 - 13:19