В настоящее время я использую в своей игре свет на основе изображения для освещения окружающей среды. Я пробую карту неба, чтобы получить рассеянное и зеркальное освещение На данный момент я использую конвейер рендеринга HDR - скайбокс использует 16 бит памяти. Я рисую в 16-битной цели рендеринга, затем в конце использую оператор тонального отображения, чтобы масштабировать значения в диапазоне 0,0 - 1,0, который будет отрисован в буферном буфере.
Недавно я заметил, что большая часть моего конвейера рендеринга была практически бессмысленной, когда я удалил постпроцессор Bloom. На самом деле ничего не делается с более высокими значениями динамического диапазона - они просто обрабатываются до более низких значений динамического диапазона на заключительном этапе постобработки.
Буду ли я прав, если скажу, что я мог бы просто использовать конвейер с низким динамическим диапазоном и вручную настроить тональный режим моих скайбоксов в Photoshop? Это сделало бы конвейер намного проще. Есть ли какая-либо другая причина, кроме Блума, почему я хочу получить данные HDR?
Ответы:
Есть много мест, где HDR имеет значение, помимо предоставления исходных данных, на которых основан фильтр Блума. По сути, любое место, где значения освещения масштабируются или складываются вместе, будет выглядеть по-разному и будет более реалистичным / физически корректным, когда сделано в HDR.
Одно из наиболее очевидных мест, где это имеет значение, - это отражение окружающей среды . Как вы, наверное, знаете, большинство неметаллических материалов имеют очень низкое зеркальное отражение при нормальном падении - от 2% до 5%. Таким образом, отражение будет только на 2-5% ярче окружающей среды. Если у вас нет HDR-среды (включая небо, источники света и т. Д. С реалистичными уровнями яркости), это приведет к неестественно темным размытым отражениям. В среде HDR отражение выглядит естественным и сохраняет контраст, несмотря на низкий общий уровень отражения.
Вот пример, который я рендерил, используя серую сферу со спецификацией 5% и карту окружения от одного из световых зондов Пола Дебевека . На этом изображении нет тонального отображения или цветения.
Эта проблема проявляется на любой блестящей поверхности; автомобили, стеклянные окна и вода - обычные случаи. Вы можете немного обойти эту проблему, масштабируя или иным образом изменяя кубическую карту LDR, но преимущество кубической карты HDR заключается в том, что она «просто работает» независимо от материала или условий освещения.
Помимо отражений, HDR важен только для правильного функционирования накопления света . Если у вас есть сцена с несколькими источниками света, возможно, окружающим и направленным, или несколькими сходящимися прожекторами и т. Д., Могут быть места, где общее количество света превышает 1,0, даже если ни один из отдельных источников света не имеет яркость более 1,0 , Это улучшает визуальные эффекты, если использовать плавное наложение тона, чтобы плавно управлять избыточной яркостью, а не просто насыщать до 1,0 и отсекать что-либо сверх этого.
Вот пример из Uncharted 2 (это изображение можно найти на слайде 126 выступления Джона Хейбла на GDC ). Как вы можете видеть, без тонального отображения области на щеке и лбу персонажа, где освещение становится слишком ярким, показывают неприятный желтый оттенок (из-за насыщения красного и зеленого каналов перед синим), а также полную потерю деталей в насыщенный регион.
Наконец, еще одно место, где появляется HDR - это эффекты постобработки, такие как размытие движения и глубина резкости . Хотя это может быть дорого, выполнение всей цепочки постобработки в HDR приводит к гораздо более реалистичным результатам. Вот пример того, что происходит с размытым изображением:
При размытии яркие участки изображения HDR будут оставаться яркими и твердыми, тогда как на изображении LDR они будут смягчаться и тускнеть. Как показано выше, постобработка HDR - лучшая симуляция того, что происходит в реальной камере, поэтому она выглядит более «кинематографично».
Так что HDR освещение и рендеринг - это намного больше, чем просто цветение.
источник