Как вы пишете HDR контент?

33

Как вы облегчаете своим художникам создание контента для HDR-рендерера ? Какие инструменты вы должны предоставить и какие рабочие процессы необходимо изменить при переходе от LDR к HDR?

Обратите внимание, что я спрашиваю не о технических аспектах реализации HDR-рендерера, а о лучших методах создания материалов и освещения в HDR. Я немного погуглил, но в Интернете, похоже, не так много об этой теме. Может ли кто-нибудь указать мне некоторые хорошие ресурсы по этому или поделиться своим собственным опытом?

Некоторые конкретные моменты:

  • Освещение - как художники по свету могут выбирать цвета HDR? У них есть стандартная палитра цветов LDR и множитель? Множитель в гамма или линейном пространстве? Может, вместо множителя это лог-яркость? Или физический уровень яркости, например количество люмен? Как они узнают, какой множитель / яркость / яркость «правильный» для данного источника света?
  • Материалы - как художники-текстористы могут создавать излучающие цветные карты, такие как неоновые вывески, экраны телевизоров, скайбоксы и т. Д.? Можете ли вы нарисовать одно изображение как обычное изображение LDR (8 бит на канал) и применить множитель (или лог-яркость и т. Д.)? Есть ли случаи, когда необходимо рисовать изображения HDR? Если да, как вы поступите с этим в Photoshop (или другом программном обеспечении)?
Натан Рид
источник
3
Это может быть полезно: developer.valvesoftware.com/wiki/HDR_Skybox_Creation
Tetrad
1
@Aralox, я ничего не узнал о том, как другие команды / компании делают это. Мы работали над этим вопросом в моей компании, но я не могу ничего публично раскрыть (пока). Я надеюсь, что со временем смогу рассказать о нашем рабочем процессе!
Натан Рид
1
Мне бы очень хотелось узнать, что люди говорят о создании контента HDR без использования источников фотографий.
1
Помните, что это древняя история, но да, огни снаружи буквально были установлены намного ярче, чем в пещере, и движок рендеринга должен был справиться. Объемы были использованы для управления окружением и тоном. Идея заключалась в том, что камень сам по себе не становится HDR, это просто камень, и свет, попадающий на него, делает его действительно ярким или темным по сравнению с тем, что, по мнению рендера, является серой экспозицией. Я уверен, что вы видели ранний HDR, где «экспозиция» продолжает корректироваться в зависимости от того, где находится плеер; причуда времени.
Патрик Хьюз
2
У меня есть фон фотографии, просто инстинктивный звонок, что «снаружи» может быть на 4-5 диафрагм ярче, чем «внутри» умеренно освещенного входа в пещеру.
Патрик Хьюз

Ответы:

5

Я думаю, что мы все еще как-то в «дни пещерного человека», которые описывает Патрик Хьюз в своих комментариях.

Вам не нужны подробности о реализациях рендерера, но в любом случае позвольте мне кое-что прояснить: вы поймете почему. HDR в игровых движках - это в основном более широкие значения для вывода рендеринга (кадровый буфер). Обычно 16-битное число с плавающей запятой, которое может превышать 1,0, вместо 8-битных целых чисел, которые просто дают нам 256 значений в диапазоне [0,1]. Этот вывод затем преобразуется в LDR с использованием тонального преобразователя , чтобы экран мог отображать его. Для меня настоящая «авторизация HDR» заключается в настройке этого тонального преобразователя, поэтому вы захотите предоставить своим художникам как можно больше контроля над этим. Будет задействован какой-то шейдер, поэтому либо у вас есть технические художники, которые могут с этим справиться, либо вы жестко закодируете его и предоставите наиболее полезные параметры.

Я не уверен, что вам обязательно понадобятся 16-битные источники света, за исключением, может быть, для создания источников света, которые излучают "белее, чем белый". Но если вы захотите, в любом редакторе, который вы используете для своих источников света, вам понадобится какой-нибудь палитр цветов или набор ползунков, которые дают вам эти значения с плавающей запятой. О, если вы хотите использовать графический интерфейс, вы, вероятно, просто начнете с простых текстовых значений с плавающей точкой в ​​файле.

Текстуры HDR (16 бит на канал) существуют, но широко не используются, возможно, только потому, что это заняло бы намного больше памяти, чем обычные текстуры LDR (8 бит на канал). Я также подозреваю больше аппаратных ограничений на консолях текущего поколения, так что большинство крупных игровых движков не слишком сильно это продвигают. Например, кажется, что импортировать текстуру HDR для использования с UDK немного сложно . Тем не менее, для создания 16-битных текстур вам понадобится программное обеспечение, которое его поддерживает, например, Photoshop . Есть, вероятно, другие, но это не так часто, например,егоэто была давняя просьба о GIMP это все еще ожидает, Вам также нужно будет использовать 16-битный формат изображения, например PNG.

Лоран Кувиду
источник
1
Я только что проверил, как редактируются огни в UDK. Похоже, что они используют классический палитру цветов RGB с 8-битными значениями цвета, с добавленным коэффициентом «яркости», который может превышать 1,0 и масштабировать все три цвета одновременно.
Лоран Кувиду
1

Как сказал Лоранку, вы на самом деле не пишете hdr-контент, поскольку он обычно динамический в зависимости от количества света. Но вы, вероятно, могли бы подражать этому в карте освещения, которая просто включала бы модификацию любых предрасчетных шейдеров, чтобы принять это во внимание.

CobaltHex
источник
1

Ну, три года спустя, и я только что написал сообщение в блоге о создании контента HDR , так что теперь я могу ответить на свой вопрос. :)

Обобщить,

  • Хороший способ обработки широкого диапазона значений яркости HDR - использование логарифмической шкалы. Фотографы имеют такой масштаб, который они использовали в течение десятилетий, называемый значением экспозиции или EV.
  • Использование EV в вашем движке / инструментах удобно, поскольку значения, измеренные в реальной жизни с помощью точечного измерителя фотографа, могут использоваться в качестве справочных данных для настройки освещения в игре. Photoshop также использует EV (хотя и не так) в 32-битном режиме.
  • Средства выбора цвета для источников света, излучающих материалов и т. Д. Могут иметь обычные компоненты LDR RGB в сочетании с компонентом EV, который масштабирует их общую яркость HDR. Это удобно для предотвращения случайного изменения цвета, когда вы хотите изменить только яркость, или наоборот.
  • Это не обязательно иметь HDR текстур для обычных диффузных и зеркальных отображений, но это полезно для излучательных текстур. Здесь требуется сжатие BC6, потому что текстуры BC1 показывают ужасные полосы и артефакты, если они масштабируются до высокой яркости (например, для неоновых вывесок).
  • Обычно нет необходимости рисовать эмиссионные текстуры с плавающей точкой. 16-битный режим Photoshop (с фиксированной точкой), вероятно, будет достаточен для эмиссионных текстур. Однако 32-битный режим Photoshop обеспечивает довольно хорошую поддержку редактирования изображений с плавающей точкой, если это необходимо.
Натан Рид
источник