Unity light baking - Как управлять смешанным освещением - PullRequest
1 голос
/ 08 июля 2019

У меня довольно большая сцена, где у меня 1 смешанный направленный свет (солнце).Я в основном использовал освещение в реальном времени во время разработки, чтобы сэкономить время.Теперь перед выпуском я хочу испечь, чтобы улучшить производительность для моих пользователей.

Мои вопросы

  • Есть ли какое-нибудь практическое правило для каких-либо значений в настройках освещения?
  • какие объекты я должен установить на статический (я устанавливаю все, что не перемещается на статический) и что-то не так, если мой пирог занимает 3-4 часа?
  • Должен ли я использовать GI в реальном времени, так как я смешалОсвещение, или Baked GI достаточно?

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

Мои настройки аналогичны приведенному ниже изображению, за исключением того, что я увеличил:

Directвыборки: 200

Косвенные выборки: 1000

Разрешение: 24

Параметры: По умолчанию Высокий

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

enter image description here

1 Ответ

1 голос
/ 08 июля 2019

Я хочу испечь, чтобы улучшить производительность

Примечания:

  • Выпечка обычно улучшает зрение.
  • Но это создает много текстур, поэтому может снизить производительность.
  • Используя ТОЛЬКО запеченные лампы, он в основном не горит - очень хорошая производительность.
  • Смешанный означает, что вы запекаете непрямое освещение (потому что без трассировки лучей в реальном времени у вас не будет непрямого освещения *) и все еще используете освещение в реальном времени для некоторых вещей, таких как жесткие тени.
  • Если вы не хотите вращать направленный свет (солнце) или перемещать точечные источники света, нет смысла запекать ГИ в реальном времени.

[*]: Мы можем подделать некоторое GI / мягкое непрямое освещение в реальном времени, предварительно выпекав это. Таким образом, «Realtime GI» позволяет вращать направленный свет (Солнце) или даже перемещать источники света, но не объекты. И вам нужно испечь его, как правило, включая несколько световых зондов. Таким образом, «в реальном времени» не означает, что это без выпечки. И это не то же самое, что настоящая трассировка лучей.

Продолжительность:

Используя 2018.3 или 2019.1 (не уверен), вы можете попробовать GPU Lightmapper (предварительный просмотр) - это намного быстрее. Однако использование процессора 3-4 часа для меня вполне нормально.

Статический

Пометка вещей как статических всегда полезна для производительности, но вы также можете пометить нестатические вещи как «Lightmap-static», если вы хотите, например, предварительно выпекать передвижные дома.

Режим отладки Lightmap:

Причина увеличения этих значений состоит в том, что мои объекты выглядели не очень хорошо

В режиме сцены вы можете выбрать режим «Lightmap» (не знаю, как он называется). Он отображает основные текстуры шахмат / шашек на всех объектах с lightmap-UVs. Используйте это представление для масштабирования UV карты освещения, например, для увеличения детализации близких объектов.


редактирование:

Смешанное освещение - производительность?

Это испечет свет для всех статических (или, по крайней мере, lightmap-static) объектов в сцене. Во время выполнения освещение больше не рассчитывается для статических.

По крайней мере, так говорится в руководстве :

При выборе режима выпечки «Смешанный» GameObjects, помеченные как статические, будут по-прежнему включать этот свет в свои световые карты Baked GI. Однако, в отличие от источников света, помеченных как «Запеченные», смешанные источники света будут по-прежнему вносить прямой свет в нестатические объекты GameObject в вашей сцене.

Я только что проверил:

«Запеченный» - после выпечки вращающееся солнце не влияло на сцену до повторного пробуждения.

«Смешанный» - я могу вращать солнце и воздействовать на тени. Примечание: «статические» объекты по-прежнему получают некоторый непрямой свет (отражающийся от окружающей среды), в то время как нестатические объекты не обжигаются, и поэтому полностью черные на стороне, которая не обращена к солнцу.

На вкладке «Освещение» написано

Смешанное освещение обеспечивает прямое освещение в реальном времени. Непрямое освещение запекается в световые карты и световые зонды. [...]

Производительность:

Трудно ответить без теста, поскольку я полагаюсь только на теоретические факты и, возможно, предположения.

Я бы сказал, что режим смешанного света просто для улучшения визуального эффекта (непрямое освещение). Это предварительно вычислено, но текстуры все еще необходимо умножить / добавить к пиксельному освещению в шейдере - это стоит немного производительности.

И прямой свет по-прежнему вычисляется в режиме реального времени - поэтому, если я правильно понял документы, Mixed всегда хуже, чем только освещение в реальном времени с точки зрения производительности.

Но: если ваше солнце даже не двигается - вы можете использовать его в «запеченном» режиме вместо «смешанного» - это запечетит тени для текстуры и сохранит расчет во время выполнения. Это единственный вариант, который наверняка лучше по производительности. Я не уверен на 100% в смешанном режиме.

И свет в реальном времени все равно будет влиять на них. Факел например.

However ваш нестатичный плеер не получит солнечного света / тени, потому что его невозможно испечь.Вы можете попробовать использовать неосвещенный шейдер на нем, и добавить поддельную тень под ним.Или вы помещаете точечный свет над ним, чтобы имитировать солнце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...