Что значит «испечь огни»?

36

Что значит печь карту света? Я слышал это в Unity3d и снова нашел этот плагин LightUp для SketchUp, который запекает lightmap.

Из того, что я наблюдаю, испеченная карта освещения дает трехмерному объекту намного более реалистичное ощущение. Является ли целью подсветка объекта, чтобы придать анимации cg вид, который вы видите на предварительно отрендеренных анимациях?

Ким Чен Ву
источник
Кроме того, каждый раз, когда вы пекете что-то, будь то физика, освещение или что-то еще. Это означает, что вы настроили что-то, что будет обрабатываться / обрабатываться в реальном времени очень долго, или вы хотите, чтобы оно воспроизводилось одинаково каждый раз, поэтому вы делаете это только один раз и сохраняете результаты для дальнейшего использования, и потому Все расчеты сделаны, отображение выпеченного происходит быстро и всегда одинаково во всех прохождениях.
AttackingHobo
AttackingHobo, это отличный способ выразить это. Теперь я это понимаю. Но любопытно, как бы запеклась физика? Делает ли Luxrender фотореалистичные рендеры, потому что они могут рассчитать физику света?
Ким Чен Ву
1
Физика может быть запечена для сложных сцен, имитируя и сохраняя все позиции объектов, повороты и т. Д. Для каждого временного шага. Затем вместо того, чтобы пересчитать все значения снова в реальном времени, они просто воспроизводятся из сохраненных значений.
AttackingHobo

Ответы:

53

Когда у вас есть статический (неподвижный) источник света в игре, у вас есть два варианта рендеринга этого источника света. Вы можете сделать это так же, как динамический свет; то есть, пропустите его через конвейер шейдера, который рассчитает его влияние на все вокруг него, на каждый кадр, на пути к экрану. Это, очевидно, довольно дорого. Или редактор может пропустить свет на сцену.

То, что я всегда думал о выпекании, было, возможно, более простой версией: в основном, редактор просто берет текстуры всего вокруг света, вычисляет влияние света на эти текстуры (осветляет их, возможно, окрашивает их, тени и т. Д.) и сохраняет их в качестве замены текстур для использования. Таким образом, все текстуры вокруг «источника света» выглядят так, как будто на них нанесен свет, но во время выполнения на самом деле нет света с точки зрения вычислений; это оптическая иллюзия, по сути.

Однако, похоже, что Unity создает карту освещения . Это похоже на вышеупомянутое понятие, но запеченное освещение сохраняется отдельно вместо изменения базовой текстуры, и я предполагаю, что шейдер объединяет их во время выполнения. Это позволило бы сохранить преимущество мозаичных текстур (т. Е. Низкое использование памяти), поскольку у них не было бы света, запеченного прямо в них, поэтому они могли бы оставаться мозаичными, а шейдер был бы очень легким, особенно по сравнению с обработкой легкий как динамичный.

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

Ricket
источник
12
И в большинстве случаев, поскольку освещение мягкое, карта освещения может быть сохранена в более низком разрешении, чем остальные текстуры, все еще выглядит хорошо, но рендерится быстрее и занимает меньше памяти.
AttackingHobo
+1, это действительно хороший и обширный ответ, спасибо. :)
Xeo