sectator: > <code>GabrielFallen</code><br>Кстати, хотел спросить — в современных движках используют lightmaps и прочий pre-baked lighting или уже нет? Для них же как раз спец. редакторы/препроцессоры нужны.
в растеризующих рендерах (не во всех, я просто знаю о таком примере) применяются динамически создаваемые в начале карты, причём, они обновляются по мере надобности (алгоритм определения текстур, которые нужно поменять, думаю, схож с BoundingBox, если применяется много текстур; сейчас в моде мега-текстуры или атласы (суть одна, названия разные) (ещё до появления у нвидиа расширения, которое атласы позволяет заменить на динамические массивы внутри шейдеров) — у них только частичное обновление, разумеется), а так же обновление участков происходит согласно карте изменения окружения, которая рисуется на каждый кадр самой первой — получается, что огромные куски просто отбрасываются из динамического создания.
В фотореалистичном рендере (а это рейтрейсеры) так же активно применяются сгенерированные в самом начале карты (обычно там сцена статична), т.к. их вычисление занимает уйму времени, а с многими допущениями и уже сгенерированной даже удаётся получить сколько-то кадров в секунду. Насчёт реймарша не знаю, там скорее всего как в пастрейсере.
Для пастрейсеров уже необходимо применять реальные законы физики, там такие карты неприменимы (т.к. являются уже ненужным упрощением), но там начинают применять пусть и не pre-baked lighting, но для освещения — отрендеренные в текстуру формулы (координаты — параметры, цвет — значение), которые могут встраиваться как в саму программу (если законы общие и диапазона хватает), так и жить со сценой
Далее о тех, которые могут быть созданы единожды или много раз без особых потерь.
Плюс ко всему в модели pbr есть понятие светимости (emission) самого объекта (применимо только в рендере с растеризатором, если я правильно понимаю) — тоже текстура, которая переопределяет то, как на неё должен ложиться свет — сделано скорее из-за невозможности в целом отобразить нужный свет движком, а не ради ускорения. Из таких карт, думаю, можно получить красивые ареолы в пост-обработке и эмбиент, встречающиеся в относительно примитивных движках (как сделали по факту — не знаю, я что-то похожее пытался провернуть, но тогда в силу неопытности не добился успеха).
Для имитации сложных по форме прозрачности/отражений предварительно запечёные в кубическую текстуру карты окружения вряд ли чем-то заменили (при растеризации), по крайней мере именно они встречаются в учебниках и статьях до сих пор, к ним разве что динамическое обновление можно добавить. Но это уже операции относительно вышеназванных быстрые, их можно и на каждый кадр целиком рисовать, если рендер не супер-реалистичный.
Вместо создания в самом начале такие карты можно и в сцену спрятать — ускорение при загрузке на пять минут ощущается очень существенно. Из недостатков такого подхода — рост размера файла со сценой (на практике было что-то около увеличения в 4-10 раз и новая сцена уже измерялась в единицах гигабайт).