LightmapGI
Вычисляет и сохраняет запеченные карты освещения для быстрого глобального освещения.
Вычисляет и сохраняет запеченные карты освещения для быстрого глобального освещения.
:: LightmapGI Узел используется для вычисления и хранения печёных световых карт. Световые карты используются для обеспечения высококачественного косвенного освещения при очень незначительной утечке света. LightmapGI может также обеспечивать резкие отражения с помощью сферической гармонии, если LightmapGI.Directional Динамические объекты могут получать непрямое освещение благодаря * световым зондам*, которые могут автоматически устанавливаться путем установки LightmapGI.GenerateProbesSubdiv на иную стоимость, помимо LightmapGI.GenerateProbes.Disabled. Дополнительные пробники с световыми картами могут быть также добавлены путем создания LightmapProbe Узлы. Сбоку в том, что световые карты полностью статичны и не могут быть выпечены в рамках экспортного проекта. LightmapGI Узел также медленнее, чем VoxelGI.
Процедурное поколение: Функциональная функция пекания светлых карт доступна только в редакторе. LightmapGI не соответствует процедурным уровням, генерируемым или устанавливаемым пользователем. VoxelGI вместо этого SDFGI (см. Environment.SdfgiEnabled).
Performance: LightmapGI Она пригодна для использования в малогабаритных аппаратных средствах, включая интегральную графику и мобильные устройства.
Примечание: Из-за того, как работают световые карты, большинство свойств имеют видимый эффект только после того, как световые карты снова выпечутся.
Примечание: Легкая карта пекутся CsgShape3DS и PrimitiveMeshes не поддерживается, поскольку они не могут хранить данные УФ-2, необходимые для выпечки.
Примечание: Если специальные светокартеры не установлены, LightmapGI могут быть выпечены только из устройств, которые поддерживают передние+ или подвижные химикаты.
Примечание: :: LightmapGI Узлы вдоль иерархии сцены не будут печься.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
LightmapGIКонструктор
public LightmapGI();Свойства23
BiasСвойство
public float Bias { get; set; }Смещение, используемое при вычислении теней. Увеличение LightmapGI.Bias может исправить теневые угри на результирующей запеченной карте освещения, но может привести к появлению Peter-Panning (тени, не соединяющиеся с их источниками). На тени Light3D в реальном времени это свойство LightmapGI.Bias не влияет.
BounceIndirectEnergyСвойство
public float BounceIndirectEnergy { get; set; }Множитель энергии для каждого отскока. Более высокие значения сделают непрямое освещение ярче. Значение 1.0 представляет физически точное поведение, но более высокие значения можно использовать, чтобы сделать непрямое освещение более заметным при использовании небольшого количества отскоков. Это можно использовать для ускорения времени запекания, уменьшив количество LightmapGI.Bounces, а затем увеличив LightmapGI.BounceIndirectEnergy.
Примечание: LightmapGI.BounceIndirectEnergy имеет эффект только в том случае, если для LightmapGI.Bounces задано значение большее или равное 1.
BouncesСвойство
public int Bounces { get; set; }Количество отражений света, которые учитываются при запекании. Более высокие значения дают более яркое, реалистичное освещение за счет более длительного времени запекания. Если установлено значение 0, запекается только окружающее освещение, прямой свет и испускаемое освещение.
CameraAttributesСвойство
public CameraAttributes CameraAttributes { get; set; }Ресурс CameraAttributes, который определяет уровни экспозиции для запекания. Свойства автоматической экспозиции и отсутствия экспозиции будут игнорироваться. Настройки экспозиции следует использовать для уменьшения динамического диапазона, присутствующего при запекании. Если экспозиция слишком высокая, LightmapGI будет иметь артефакты полос или может иметь артефакты переэкспонирования.
DenoiserRangeСвойство
public int DenoiserRange { get; set; }Расстояние в пикселях, с которого берется образец шумоподавителя. Более низкие значения сохраняют больше деталей, но могут давать неоднородные результаты, если качество карты освещения недостаточно высокое. Эффективно только если LightmapGI.UseDenoiser равно true и ProjectSettings.rendering/lightmapping/denoising/denoiser установлено в JNLM.
DenoiserStrengthСвойство
public float DenoiserStrength { get; set; }Сила шага шумоподавления, применяемого к сгенерированным картам освещения. Действует только если LightmapGI.UseDenoiser имеет значение true и ProjectSettings.rendering/lightmapping/denoising/denoiser имеет значение JNLM.
DirectionalСвойство
public bool Directional { get; set; }Если true, запекает карты освещения, чтобы они содержали информацию о направлении в виде сферических гармоник. Это приводит к более реалистичному внешнему виду освещения, особенно с материалами с картами нормалей и для источников света, у которых запечен прямой свет (Light3D.LightBakeMode установлен на Light3D.BakeMode.Static и с Light3D.EditorOnly установлен на false). Информация о направлении также используется для предоставления грубых отражений для статических и динамических объектов. Это имеет небольшие затраты производительности во время выполнения, так как шейдеру приходится выполнять больше работы для интерпретации информации о направлении из карты освещения. Направленные карты освещения также дольше запекаются и приводят к большему размеру файла.
Примечание: Имя свойства не имеет отношения к DirectionalLight3D. LightmapGI.Directional работает со всеми типами освещения.
EnvironmentCustomColorСвойство
public Color EnvironmentCustomColor { get; set; }Цвет, используемый для освещения окружающей среды. Действует только если LightmapGI.EnvironmentMode — LightmapGI.EnvironmentModeEnum.CustomColor.
EnvironmentCustomEnergyСвойство
public float EnvironmentCustomEnergy { get; set; }Множитель цвета для использования в освещении окружающей среды. Действует только если LightmapGI.EnvironmentMode имеет значение LightmapGI.EnvironmentModeEnum.CustomColor.
EnvironmentCustomSkyСвойство
public Sky EnvironmentCustomSky { get; set; }Небо, используемое как источник освещения среды. Действует только если LightmapGI.EnvironmentMode имеет значение LightmapGI.EnvironmentModeEnum.CustomSky.
EnvironmentModeСвойство
public LightmapGI.EnvironmentModeEnum EnvironmentMode { get; set; }Режим среды, используемый при запекании карт освещения.
GenerateProbesSubdivСвойство
public LightmapGI.GenerateProbes GenerateProbesSubdiv { get; set; }Уровень подразделения, используемый при автоматической генерации LightmapProbe для динамического освещения объектов. Более высокие значения приводят к более точному непрямому освещению динамических объектов за счет более длительного времени запекания и большего размера файла.
Примечание: Автоматически сгенерированные LightmapProbe не отображаются как узлы в доке дерева сцены и не могут быть изменены таким образом после генерации.
Примечание: Независимо от LightmapGI.GenerateProbesSubdiv, прямое освещение динамических объектов всегда применяется с использованием узлов Light3D в реальном времени.
InteriorСвойство
public bool Interior { get; set; }Если true, игнорировать окружающее освещение при запекании карт освещения.
LightDataСвойство
public LightmapGIData LightData { get; set; }LightmapGIData, связанный с этим узлом LightmapGI. Этот ресурс автоматически создается после запекания и не предназначен для создания вручную.
MaxTextureSizeСвойство
public int MaxTextureSize { get; set; }Максимальный размер текстуры для сгенерированного атласа текстур. Более высокие значения приведут к генерации меньшего количества срезов, но могут не работать на всех аппаратных средствах из-за аппаратных ограничений на размеры текстур. Оставьте LightmapGI.MaxTextureSize в значении по умолчанию 16384, если не уверены.
QualityСвойство
public LightmapGI.BakeQuality Quality { get; set; }Предустановка качества для использования при запекании карт освещения. Это влияет на время запекания, но размеры выходных файлов остаются в основном одинаковыми на всех уровнях качества.
Чтобы еще больше ускорить время запекания, уменьшите LightmapGI.Bounces, отключите LightmapGI.UseDenoiser и/или уменьшите LightmapGI.TexelScale.
Чтобы еще больше повысить качество, включите LightmapGI.Supersampling и/или увеличьте LightmapGI.TexelScale.
ShadowmaskModeСвойство
public LightmapGIData.ShadowmaskMode ShadowmaskMode { get; set; }Политика маскировки теней, используемая для направленных теней на статических объектах, запеченных с этим экземпляром LightmapGI.
Маскировка теней позволяет узлам DirectionalLight3D отбрасывать тени даже за пределами диапазона, определенного их свойством DirectionalLight3D.DirectionalShadowMaxDistance. Это делается путем запекания текстуры, содержащей карту теней для направленного света, а затем использования этой текстуры в соответствии с текущим режимом маски теней.
Примечание: Текстура маски теней создается только в том случае, если LightmapGI.ShadowmaskMode не является LightmapGIData.ShadowmaskMode.None. Чтобы увидеть разницу, вам нужно снова запечь карты освещения после переключения с LightmapGIData.ShadowmaskMode.None на любой другой режим.
SpecularIntensityСвойство
public float SpecularIntensity { get; set; }Прочность приблизительной световой карты секулярной доли. Это помогает сделать светокартированные сцены ближе к освещению в реальном времени, что особенно заметно для огней, использующих свет Light3D.BakeMode.Static режим выпечки. LightmapGI.Directional это true.
Примечание: Световая карта может представлять только одно световое направление на тексель, что означает, что в некоторых случаях спекулярное направление может показаться неправильным. Это может проявляться как спектральные доли, появляющиеся вокруг, когда камера движется.
SupersamplingСвойство
public bool Supersampling { get; set; }Если true, карты освещения запекаются с масштабом текселя, умноженным на LightmapGI.SupersamplingFactor, и подвергаются пониженной выборке перед сохранением карты освещения (поэтому эффективная плотность текселя идентична отключенной суперсэмплировке).
Суперсэмплировка обеспечивает повышенное качество карты освещения с меньшим шумом, более плавными тенями и лучшим затенением мелкомасштабных особенностей объектов. Однако это может привести к значительному увеличению времени запекания и использования памяти при запекании карт освещения. Заполнение автоматически регулируется, чтобы избежать увеличения утечки света.
SupersamplingFactorСвойство
public float SupersamplingFactor { get; set; }Коэффициент, на который умножается плотность текселей )texel( для суперсэмплинга )supersampling(. Для достижения наилучших результатов используйте целочисленное значение. Хотя дробные значения допускаются, они могут привести к увеличению утечки света и размытости карты освещения.
Более высокие значения могут привести к лучшему качеству, но также увеличивают время запекания и использование памяти при запекании.
См. LightmapGI.Supersampling для получения дополнительной информации.
TexelScaleСвойство
public float TexelScale { get; set; }Масштабирует плотность текселей карты освещения всех сеток для текущего запекания. Это множитель, который строится на существующем размере текселей карты освещения, определенном в каждой импортированной 3D-сцене, вместе с множителем плотности для каждой сетки (который предназначен для использования, когда одна и та же сетка используется в разных масштабах). Более низкие значения приведут к более быстрому времени запекания.
Например, удвоение LightmapGI.TexelScale удваивает разрешение текстуры карты освещения для всех объектов на каждой оси, поэтому это учетверит количество текселей.
UseDenoiserСвойство
public bool UseDenoiser { get; set; }Если true, используется алгоритм шумоподавления на основе графического процессора на сгенерированной карте освещения. Это устраняет большую часть шума в сгенерированной карте освещения за счет более длительного времени запекания. Размеры файлов, как правило, не сильно зависят от использования шумоподавителя, хотя сжатие без потерь может лучше сжимать изображение с шумоподавлением.
UseTextureForBouncesСвойство
public bool UseTextureForBounces { get; set; }Если true, текстура с информацией об освещении будет сгенерирована для ускорения генерации непрямого освещения за счет некоторой потери точности. Геометрия может демонстрировать дополнительные артефакты утечки света при использовании карт освещения с низким разрешением или UV, которые значительно растягивают карту освещения по поверхностям. Оставьте LightmapGI.UseTextureForBounces со значением по умолчанию true, если не уверены.
Примечание: LightmapGI.UseTextureForBounces имеет эффект только в том случае, если LightmapGI.Bounces установлен на значение большее или равное 1.
Методы46
GetBakeQualityLightmapGI.BakeQuality
public LightmapGI.BakeQuality GetBakeQuality();LightmapGI.BakeQualityGetBiasfloat
public float GetBias();floatGetBounceIndirectEnergyfloat
public float GetBounceIndirectEnergy();floatGetBouncesint
public int GetBounces();intGetCameraAttributesCameraAttributes
public CameraAttributes GetCameraAttributes();CameraAttributesGetDenoiserRangeint
public int GetDenoiserRange();intGetDenoiserStrengthfloat
public float GetDenoiserStrength();floatGetEnvironmentCustomColorColor
public Color GetEnvironmentCustomColor();ColorGetEnvironmentCustomEnergyfloat
public float GetEnvironmentCustomEnergy();floatGetEnvironmentCustomSkySky
public Sky GetEnvironmentCustomSky();SkyGetEnvironmentModeLightmapGI.EnvironmentModeEnum
public LightmapGI.EnvironmentModeEnum GetEnvironmentMode();LightmapGI.EnvironmentModeEnumGetGenerateProbesLightmapGI.GenerateProbes
public LightmapGI.GenerateProbes GetGenerateProbes();LightmapGI.GenerateProbesGetLightDataLightmapGIData
public LightmapGIData GetLightData();LightmapGIDataGetMaxTextureSizeint
public int GetMaxTextureSize();intGetShadowmaskModeLightmapGIData.ShadowmaskMode
public LightmapGIData.ShadowmaskMode GetShadowmaskMode();LightmapGIData.ShadowmaskModeGetSpecularIntensityfloat
public float GetSpecularIntensity();floatGetSupersamplingFactorfloat
public float GetSupersamplingFactor();floatGetTexelScalefloat
public float GetTexelScale();floatIsDirectionalbool
public bool IsDirectional();boolIsInteriorbool
public bool IsInterior();boolIsSupersamplingEnabledbool
public bool IsSupersamplingEnabled();boolIsUsingDenoiserbool
public bool IsUsingDenoiser();boolIsUsingTextureForBouncesbool
public bool IsUsingTextureForBounces();boolSetBakeQualityvoid
public void SetBakeQuality(LightmapGI.BakeQuality bakeQuality);| Имя | Тип | По умолчанию |
|---|---|---|
bakeQuality | LightmapGI.BakeQuality | — |
SetBiasvoid
public void SetBias(float bias);| Имя | Тип | По умолчанию |
|---|---|---|
bias | float | — |
SetBounceIndirectEnergyvoid
public void SetBounceIndirectEnergy(float bounceIndirectEnergy);| Имя | Тип | По умолчанию |
|---|---|---|
bounceIndirectEnergy | float | — |
SetBouncesvoid
public void SetBounces(int bounces);| Имя | Тип | По умолчанию |
|---|---|---|
bounces | int | — |
SetCameraAttributesvoid
public void SetCameraAttributes(CameraAttributes cameraAttributes);| Имя | Тип | По умолчанию |
|---|---|---|
cameraAttributes | CameraAttributes | — |
SetDenoiserRangevoid
public void SetDenoiserRange(int denoiserRange);| Имя | Тип | По умолчанию |
|---|---|---|
denoiserRange | int | — |
SetDenoiserStrengthvoid
public void SetDenoiserStrength(float denoiserStrength);| Имя | Тип | По умолчанию |
|---|---|---|
denoiserStrength | float | — |
SetDirectionalvoid
public void SetDirectional(bool directional);| Имя | Тип | По умолчанию |
|---|---|---|
directional | bool | — |
SetEnvironmentCustomColorvoid
public void SetEnvironmentCustomColor(Color color);| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
SetEnvironmentCustomEnergyvoid
public void SetEnvironmentCustomEnergy(float energy);| Имя | Тип | По умолчанию |
|---|---|---|
energy | float | — |
SetEnvironmentCustomSkyvoid
public void SetEnvironmentCustomSky(Sky sky);| Имя | Тип | По умолчанию |
|---|---|---|
sky | Sky | — |
SetEnvironmentModevoid
public void SetEnvironmentMode(LightmapGI.EnvironmentModeEnum mode);| Имя | Тип | По умолчанию |
|---|---|---|
mode | LightmapGI.EnvironmentModeEnum | — |
SetGenerateProbesvoid
public void SetGenerateProbes(LightmapGI.GenerateProbes subdivision);| Имя | Тип | По умолчанию |
|---|---|---|
subdivision | LightmapGI.GenerateProbes | — |
SetInteriorvoid
public void SetInterior(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetLightDatavoid
public void SetLightData(LightmapGIData data);| Имя | Тип | По умолчанию |
|---|---|---|
data | LightmapGIData | — |
SetMaxTextureSizevoid
public void SetMaxTextureSize(int maxTextureSize);| Имя | Тип | По умолчанию |
|---|---|---|
maxTextureSize | int | — |
SetShadowmaskModevoid
public void SetShadowmaskMode(LightmapGIData.ShadowmaskMode mode);| Имя | Тип | По умолчанию |
|---|---|---|
mode | LightmapGIData.ShadowmaskMode | — |
SetSpecularIntensityvoid
public void SetSpecularIntensity(float specularIntensity);| Имя | Тип | По умолчанию |
|---|---|---|
specularIntensity | float | — |
SetSupersamplingEnabledvoid
public void SetSupersamplingEnabled(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetSupersamplingFactorvoid
public void SetSupersamplingFactor(float factor);| Имя | Тип | По умолчанию |
|---|---|---|
factor | float | — |
SetTexelScalevoid
public void SetTexelScale(float texelScale);| Имя | Тип | По умолчанию |
|---|---|---|
texelScale | float | — |
SetUseDenoiservoid
public void SetUseDenoiser(bool useDenoiser);| Имя | Тип | По умолчанию |
|---|---|---|
useDenoiser | bool | — |
SetUseTextureForBouncesvoid
public void SetUseTextureForBounces(bool useTextureForBounces);| Имя | Тип | По умолчанию |
|---|---|---|
useTextureForBounces | bool | — |
LightmapGI.BakeError
| Значение | Описание |
|---|---|
AtlasTooSmall = 11 | Запекание карты освещения не удалось, поскольку карта освещения не смогла поместиться в атлас. ОКРУЖАЮЩАЯ СРЕДА |
CantCreateImage = 7 | Запекание карты освещения не удалось, поскольку полученное изображение не удалось сохранить или импортировать в Reckfell после сохранения. |
ForeignData = 2 | Запекание карты освещения не удалось, так как ресурс данных карты освещения встроен в сторонний ресурс. |
LightmapTooSmall = 10 | Запекание карты освещения не удалось, так как карта освещения слишком мала. БАКЕ_ ТЕРРОРИЗМ_АТЛАС_TOO_SMall |
MeshesInvalid = 6 | Запекание карты освещения не удалось, так как средство создания карты освещения не смогло проанализировать некоторые сетки, отмеченные как статические для запекания. |
NoLightmapper = 3 | Запекание карты освещения не удалось, так как в этой сборке Reckfell отсутствует модуль карты освещения. |
NoMeshes = 5 | Запекание карты освещения не удалось, так как нет сеток, у которых |
NoSavePath = 4 | Не удалось выполнить запекание карты освещения, так как путь сохранения БАКЕ_ ТЕРРОРИЗМ_НО_МЕСЬ |
NoSceneRoot = 1 | Запекание карты освещения не удалось, поскольку не удалось получить доступ к корневому узлу редактируемой сцены. |
Ok = 0 | Запекание карты освещения прошло успешно. |
TextureSizeTooSmall = 9 | Запекание карты освещения не удалось, так как максимальный размер текстуры слишком мал для некоторых сеток, отмеченных для запекания. |
UserAborted = 8 | Пользователь прервал операцию запекания карты освещения (обычно нажав кнопку Отмена в диалоговом окне хода выполнения). |
LightmapGI.BakeQuality
| Значение | Описание |
|---|---|
High = 2 | Высокое качество запекания (медленное время запекания). Качество этого пресета можно настроить, изменив |
Low = 0 | Низкое качество запекания (самое быстрое время запекания). Качество этого пресета можно настроить, изменив БАКЕ_КОЛИЧЕСТВО_МЕДИЯ |
Medium = 1 | Среднее качество запекания (быстрое время запекания). Качество этого пресета можно настроить, изменив |
Ultra = 3 | Высочайшее качество запекания (самое медленное время запекания). Качество этого пресета можно настроить, изменив |
LightmapGI.EnvironmentModeEnum
| Значение | Описание |
|---|---|
CustomColor = 3 | Используйте |
CustomSky = 2 | Используйте ОКРУЖАЮЩАЯ СРЕДА_МОДЕ_КУСТОМ_КОЛОР |
Disabled = 0 | Игнорируйте окружающее освещение при запекании световых карт. ОКРУЖАЮЩАЯ СРЕДА |
Scene = 1 | Используйте освещение среды сцены при запекании карт освещения.
Примечание: Если запекать карты освещения в сцене без узла ОКРУЖАЮЩАЯ СРЕДА |
LightmapGI.GenerateProbes
| Значение | Описание |
|---|---|
Disabled = 0 | Не создавайте зонды карты освещения для освещения динамических объектов. |
Subdiv16 = 3 | Высокий уровень разбиения (медленное время запекания, большие размеры файлов). |
Subdiv32 = 4 | Самый высокий уровень подразделения (самое медленное время запекания, самые большие размеры файлов). |
Subdiv4 = 1 | Самый низкий уровень подразделения (самое быстрое время запекания, наименьшие размеры файлов). |
Subdiv8 = 2 | Низкий уровень подразделения (быстрое время запекания, небольшой размер файлов). |