Jump to content

Карта освещения

(Перенаправлено из Light Mapping )


Куб с простой картой освещения (показан справа).

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

Джона Кармака была Quake первой компьютерной игрой, в которой для улучшения рендеринга использовались карты освещения . [1] До изобретения карт освещения приложения реального времени полагались исключительно на затенение Гуро для интерполяции вершинного освещения поверхностей. Это позволяло получать только низкочастотную информацию об освещении и могло создавать артефакты отсечения рядом с камерой без интерполяции с учетом перспективы. сетка с разрывами, Иногда использовалась особенно с решениями по излучению , для адаптивного улучшения разрешения информации о вершинном освещении, однако дополнительные затраты на настройку примитивов для растеризации в реальном времени, как правило, были непомерно высокими. кэширование Программный растеризатор Quake использовал поверхности для применения расчетов освещения в пространстве текстур один раз, когда полигоны первоначально появлялись внутри усеченного конуса просмотра (фактически создавая временные «освещенные» версии видимых в данный момент текстур по мере того, как зритель исследовал сцену).

По мере того, как потребительское оборудование для 3D-графики способно к мультитекстурированию , отображение освещения стало более популярным, и движки начали комбинировать карты освещения в реальном времени в качестве вторичного слоя текстуры с множественным наложением .

Ограничения

[ редактировать ]

Карты освещения состоят из люмелей. [2] (элементы свечения), аналогичные текселям в наложении текстур . Меньшие люмелы дают карту освещения с более высоким разрешением , обеспечивая более точную детализацию освещения за счет снижения производительности и увеличения использования памяти. Например, масштаб карты освещения в 4 люмеля на единицу мира даст более низкое качество, чем масштаб в 16 люмелей на единицу мира. Таким образом, при использовании этой техники дизайнерам уровней и 3D-художникам часто приходится идти на компромисс между производительностью и качеством; Если карты освещения высокого разрешения используются слишком часто, приложение может потреблять чрезмерные системные ресурсы, что отрицательно влияет на производительность. Разрешение и масштабирование карты освещения также могут быть ограничены объемом дискового пространства, пропускной способностью/временем загрузки или текстурной памятью, доступной приложению. Некоторые реализации пытаются объединить несколько карт освещения вместе в процессе, известном как атласирование. [3] чтобы помочь обойти эти ограничения.

Разрешение и масштаб карты освещения — две разные вещи. Разрешение — это область в пикселях, доступная для хранения одной или нескольких карт освещения поверхности. Количество отдельных поверхностей, которые могут поместиться на карте освещения, определяется масштабом. Меньшие значения масштаба означают более высокое качество и больше места на карте освещения. Более высокие значения масштаба означают более низкое качество и меньше места. Поверхность может иметь карту освещения, имеющую ту же площадь, то есть соотношение 1:1, или меньше, поэтому карта освещения растягивается по размеру.

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

Создание

[ редактировать ]

При создании карт освещения можно использовать любую модель освещения, поскольку освещение полностью рассчитывается заранее и производительность в реальном времени не всегда является необходимостью. Разнообразные методы, включая фоновую окклюзию , прямое освещение с выборочными краями теней и полную излучательность. [4] Обычно используются решения отраженного света. Современные 3D-пакеты включают специальные плагины для применения UV-координат карты освещения, объединения нескольких поверхностей в единые листы текстур и рендеринга самих карт. В качестве альтернативы конвейеры игрового движка могут включать в себя специальные инструменты создания карт освещения. Дополнительным соображением является использование сжатых текстур DXT , которые подвержены блокирующим артефактам — для достижения наилучших результатов отдельные поверхности не должны сталкиваться с фрагментами текселей 4x4.

Во всех случаях мягкие тени для статической геометрии возможны, если используются простые тесты окклюзии (например, базовая трассировка лучей ) для определения того, какие люмелы видны свету. Однако фактическая мягкость теней определяется тем, как движок интерполирует данные люмелей по поверхности, и может привести к пикселизированному виду, если люмелы слишком велики. См. фильтрацию текстур .

Карты освещения также можно рассчитывать в режиме реального времени. [5] для эффектов цветного освещения хорошего качества, которые не подвержены дефектам затенения Гуро, хотя создание теней все равно должно выполняться с использованием другого метода, такого как трафаретные объемы теней или отображение теней , поскольку трассировка лучей в реальном времени все еще слишком медленна для выполнения современное оборудование в большинстве 3D-движков.

Фотонное картирование можно использовать для расчета глобального освещения для карт освещения.

Альтернативы

[ редактировать ]

Вертексное освещение

[ редактировать ]

При вершинном освещении информация об освещении вычисляется для каждой вершины и сохраняется в атрибутах цвета вершины . Эти два метода могут быть объединены, например, значения цвета вершин сохраняются для сеток с высокой детализацией, тогда как карты освещения используются только для более грубой геометрии.

Картирование разрывов

[ редактировать ]

При отображении разрывов сцена может быть дополнительно разделена и обрезана по основным изменениям в свете и темноте, чтобы лучше определить тени.

См. также

[ редактировать ]
  1. ^ Абраш, Майкл. «Модель освещения Quake: поверхностное кэширование» . www.bluesnews.com . Проверено 7 сентября 2015 г.
  2. ^ Чанна, Кешав (21 июля 2003 г.). «Флипкод — Световое картирование — Теория и реализация» . www.flipcode.com . Проверено 7 сентября 2015 г.
  3. ^ «Технический документ по атласу текстур» (PDF) . nvidia.com . NVIDIA . 7 июля 2004 г. Проверено 7 сентября 2015 г.
  4. ^ Джейсон Митчелл, Гэри МакТаггарт, Крис Грин, Шейдинг в Source Engine от Valve . ( PDF ) Проверено 7 июня 2019 г.
  5. 16 ноября 2003. Динамические карты освещения в OpenGL . Joshbeam.com Проверено 7 июля 2014 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8489954f71944235380706394195e8ee__1715802600
URL1:https://arc.ask3.ru/arc/aa/84/ee/8489954f71944235380706394195e8ee.html
Заголовок, (Title) документа по адресу, URL1:
Lightmap - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)