Unity может рассчитать UV для запеченных карт освещенияпредварительно обработанной текстуры, которая содержит эффекты источников света на статических объектах в сцена. Карты освещения накладываются поверх геометрии сцены для создания эффекта освещения. Подробнее
Посмотрите в Словарь при импорте модели или укажите свои данные .
Эта страница содержит следующую информацию:
Как создать собственные UV-карты освещения
Вы можете создавать свои собственные UV-карты освещения в выбранном вами программном обеспечении для создания контента. Unity использует эти UV в качестве входных данных для своих расчетов.
Место размещения этих данных зависит от того, предоставляете ли вы UV-развертку для запеченных карт освещения, карт освещения в реальном времени или и того, и другого:
- Для запеченных карт освещения необходимо поместить UV-карты освещения в файл Mesh.uv2. Этот канал также называется «UV1».
- Для карт освещения в реальном времени:
- Если у вас уже есть запеченные UV-карты освещения в
Mesh.uv2
вашей сеткиОсновной графический примитив Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее
См. в Словарь, и вы хотите использовать те же UVs в качестве входных данных для карты освещения в реальном времени, вам не нужно ничего делать. Unity возвращается к совместному использованию запеченных карт освещения. - Если у вас уже есть запеченные UV-карты освещения в
Mesh.uv2
и вы хотите предоставить разные UV-развертки в качестве входных данных для ваших карт освещения в реальном времени, поместите UV-карты освещения в реальном времени. в Mesh.uv3, также называемом "UV2". - Если у вас еще нет запеченных UV-карт освещения во втором канале вашей сетки, вы можете использовать
Mesh.uv2
илиMesh.uv3
для карт освещения в реальном времени.
- Если у вас уже есть запеченные UV-карты освещения в
Хороший набор UV для карт освещения должен соответствовать следующим правилам:
- Он должен находиться в пределах [0,1] x [0,1] UV-пространства.
- Должно быть достаточно большое расстояние между отдельными диаграммами. Дополнительную информацию см. в отзывах о перекрытии UV.
- У него не должно быть перекрывающихся граней.
- Должна быть небольшая разница между углами в UV-развертке и углами в исходной геометрии.
- Должна быть небольшая разница между относительным масштабом треугольников в UV-развертке и относительным масштабом треугольников в исходной геометрии, если только вы не хотите, чтобы некоторые области имели более высокое разрешение карты освещения.
Как автоматически генерировать UV-карты освещения
Вы можете указать Unity автоматически генерировать UV-карты освещения для модели, используя настройки импорта модели.
- Выберите модель в представлении проекта. Unity открывает настройки импорта модели в Инспектореокне Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройках проекта, что позволяет вам проверять и редактировать значения. Дополнительная информация
См. в Словарь. - В настройках импорта модели перейдите на вкладку Модель, а затем в раздел Геометрия.
- Установите флажок Создать UV-карты освещения. Раздел Настройки UV-карты освещения отображается под флажком «Создать UV-карту освещения».
- Необязательно: настройте параметры в разделе Настройки UV карты освещения. Дополнительную информацию см. в разделе Настройки.
- Нажмите кнопку Применить. Unity генерирует UV-карты освещения в канал Mesh.uv2.
Настройки автоматической генерации карты освещения UV
Эти настройки отображаются на вкладке Модель в разделе Настройки импорта модели, когда вы включаете Создать UV-карты освещения.
Свойства: | Функции: | |
---|---|---|
Hard Angle | Угол между соседними треугольниками (в градусах), после которого Unity считает его жестким краем и создает шов. Вы можете установить значение от 0 до 180. По умолчанию установлено значение 88 градусов.
Если установить для этого параметра значение 180 градусов, Unity будет считать все края сглаженными, что реалистично для органических моделей. Значение по умолчанию (88 градусов) реалистично для механических моделей. |
|
Angle Error | Максимально возможное отклонение углов UV от углов исходной геометрии (в процентах от 0 до 100). По умолчанию установлено значение 8%.
Это определяет, насколько треугольники в UV-пространстве могут отличаться от треугольников в исходной геометрии. Обычно это значение должно быть достаточно низким, чтобы избежать артефактов при применении карты освещения. |
|
Area Error | Максимально возможное отклонение площадей UV от площадей в исходной геометрии (в процентах от 0 до 100). По умолчанию установлено значение 15%.
Это определяет, насколько хорошо Unity сохраняет относительные площади треугольников. Увеличение значения позволяет создавать меньше диаграмм. Однако увеличение значения может изменить разрешение треугольников, поэтому убедитесь, что полученное искажение не ухудшит качество карты освещения. |
|
Margin Method | Указываете ли вы Упаковочную маржу вручную или Unity вычисляет ее автоматически. | |
Manual | Вы указываете Поля упаковки вручную. | |
Calculate | Основываясь на ожидаемом разрешении карты освещения и масштабе объекта, Unity вычисляет Pack Margin, достаточно большой, чтобы избежать перекрытия UV. | |
Pack Margin | Поле между соседними диаграммами (в пикселях), при условии, что сетка занимает всю карту освещения 1024x1024. Вы можете установить значение от 1 до 64. Чем больше значение, тем больше поле, но и больше места, которое требуется диаграмме. По умолчанию установлено значение 4 пикселя.
Дополнительную информацию см. в разделе Упаковать поля. Это свойство отображается только в том случае, если для параметра Метод маржи установлено значение Вручную. |
|
Min Lightmap Resolution | Минимальное разрешение карты освещения (в текселях на единицу) MeshRenderers, использующих эту сетку, во всех сценах. Разрешение карты освещения MeshRenderer представляет собой комбинацию свойства MeshRenderer Scale in Lightmap и свойства Lightmap Resolution объекта Актив настроек освещения сцены, в которой он появляется.
Дополнительную информацию см. в разделе Минимальное разрешение карты освещения и минимальный масштаб объекта. Unity использует эту информацию для расчета маржи упаковки. Это свойство отображается, только если для параметра Метод маржи задано значение Рассчитать. |
|
Min Object Scale | Минимальный масштаб преобразования для игровых объектов, использующих эту сетку, во всех сценах.
Дополнительную информацию см. в разделе Минимальное разрешение карты освещения и минимальный масштаб объекта. Unity использует эту информацию для расчета маржи упаковки. Это свойство отображается, только если для параметра Метод маржи задано значение Рассчитать. |
Устранение неполадок с автоматически сгенерированными UV-картами освещения
Упаковать маржу
Чтобы разрешить фильтрацию, карта освещения содержит информацию об освещении в текселях рядом с границей диаграммы, поэтому всегда оставляйте между диаграммами некоторое поле, чтобы избежать бликов при применении карты освещения.
Разрешение карты освещения определяет разрешение текселей ваших карт освещения. LightmappersИнструмент в Unity, который запекает карты освещения в соответствии с расположением источников света и геометрией в вашей сцене. Подробнее
См. в Словарь: расширьте некоторые тексели диаграммы в карте освещения, чтобы избежать черных краев, поэтому УФ-диаграммы вашей сетки должны быть отделены друг от друга как минимум на два полных текселя, чтобы избежать легкого размытия. Используйте параметр Pack Margin, чтобы обеспечить достаточное расстояние между UV-диаграммами вашей геометрии.
В UV-пространстве карты освещения отступы между диаграммами должны составлять не менее двух полных текселей, чтобы избежать наложения UV и случайного просачивания света. На этом изображении черный пробел представляет собой пространство между диаграммами.
Минимальное разрешение карты освещения и минимальный масштаб объекта
Размещение УФ-диаграмм слишком близко друг к другу может привести к просвечиванию текселей кросс-диаграмм в итоговой карте освещения. Размещение диаграмм слишком далеко друг от друга тратит память. Идеальное поле упаковки объекта зависит от того, сколько текселей карты освещения ему выделено.
Количество текселей, которые Unity использует для MeshRenderer, зависит от разрешения карты освещения MeshRenderer и масштаба преобразования. Чтобы рассчитать хорошую маржу, Unity необходимо знать ожидаемые минимальные значения этих свойств.
Разрешение карты освещения MeshRenderer представляет собой комбинацию свойства Разрешение карты освещения
актива настроек освещения для СценыСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
Посмотрите в Словарь, в котором появляется MeshRenderer, и Scale in Lightmap
свойства MeshRenderer. Обратите внимание, что это означает, что один и тот же MeshRenderer может иметь разное разрешение карты освещения в разных сценах.
Вы можете использовать Инспектор для просмотра разрешения карты освещения MeshRenderer в данной сцене:
- В виде сценыинтерактивный вид мира, который вы создаете. Вы используете Scene View для выбора и размещения пейзажей, персонажей, камер, источников света и всех других типов игровых объектов. Дополнительная информация
Посмотрите в Словарь или в Иерархии, выберите класс GameObjectОсновной объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словаре компонент MeshRenderer. - В Инспекторе перейдите к разделу Lightmapping компонента MeshRenderer.
- Откройте вкладку Baked Lightmap. Unity отображает разрешение карты освещения MeshRenderer в запеченной карте освещения с меткой Разрешение карты освещения и масштаб преобразования в запеченной карте освещения с меткой Масштаб объекта карты освещения.
Угловое искажение
На следующих снимках экрана показано одинаковое разрешение, но с разным значением UV. Первое изображение имеет высокую ошибку угла, и результат содержит непреднамеренные артефакты. Второе изображение имеет ошибку угла по умолчанию (8%). В сетках с большим количеством треугольников угловое искажение может значительно исказить форму.
Площадь искажения
На изображении ниже два прожектора с одинаковыми параметрами освещают стороны цилиндра. Правая сторона цилиндра имеет более высокое значение Area Error, что искажает треугольники и приводит к более низкому разрешению, создавая артефакты в свете.