Unity 6.3
0 онлайн 44 гостей 3 в системе
Вход

DynamicGI

класс в UnityEngine

Выполнено в:UnityEngine.CoreModule

Описание

Запрашивает состояние Enlighten Realtime Global Illumination и управляет им.

Используйте DynamicGI статический класс, чтобы запрашивать глобальный экземпляр Enlighten и управлять им. Enlighten — подсистема, обеспечивающая Realtime Global Illumination. Этот класс применим только тогда, когда Глобальное освещение в реальном времени включен в Scene вкладка Освещение окно.

С помощью этого класса можно запросить внутреннее состояние Enlighten. Например, вы можете использовать DynamicGI.isConverged чтобы определить, следует ли показывать экран загрузки.

Некоторые свойства позволяют вам контролировать стоимость runtime Enlighten. Например, вы можете использовать DynamicGI.materialUpdateTimeSlice чтобы определить, сколько вычислений выполняется в каждом кадре, и DynamicGI.updateThreshold чтобы контролировать, как часто обновляются светокарты в реальном времени.

Enlighten Realtime Global Illumination учитывает назначенный Skybox Материал в своих расчетах освещения. В большинстве случаев, он автоматически обнаруживает и обрабатывает любые изменения в Skybox Материале (например, при изменении Skybox Материала). Однако, бывают ситуации, когда Enlighten не может автоматически обнаружить изменения (например, когда шейдер Skybox Материала зависит от глобальных переменных, таких как системное время). В этом случае вы можете вызвать DynamicGI.UpdateEnvironment чтобы вручную запланировать оценку текущего материала Skybox. Вы также можете использовать DynamicGI.SetEnvironmentData чтобы пропустить оценку Skybox Материала и передать вместо этого необработанные значения кубической карты.

Для получения дополнительной информации о Enlighten, см. Введение в глобальное освещение в реальном времени с помощью Enlighten.

Дополнительные ресурсы: RendererExtensions.UpdateGIMaterials, TerrainExtensions.UpdateGIMaterials.

using UnityEngine;

// Attach this script to a Game Object to animate the emission used // by Enlighten Realtime GI. The Game Object's Material is unaffected. public class AnimateEmission : MonoBehaviour { public Color color1 = Color.red; public Color color2 = Color.blue; public float intensity = 2.0f; public float speed = 0.5f;

void Update() { // This value changes gradually from 0 to 1 to 0 in a cycle. var pingpong = Mathf.PingPong(Time.time * speed, 1.0f);

// Determine the new color for this frame. var newColor = Color.Lerp(color1, color2, pingpong) * intensity;

// Extract the MeshRenderer from the game object. var renderer = gameObject.GetComponent<MeshRenderer>();

// Apply the new emissive color using the MeshRenderer. DynamicGI.SetEmissive(renderer, newColor); } }

Статические свойства

Свойство Описание
indirectScaleПозволяет масштабировать вклад карт освещения реального времени & запечённых карт освещения. Примечание: это значение можно задать в окне Lighting, и оно сериализуется, чего нельзя сказать о других свойствах этого класса.
isConvergedЯвляется ли предварительно рассчитанный выход Enlighten Realtime Global Illumination конвергентным?
materialUpdateTimeSliceЧисло миллисекунд, которые могут быть потрачены на обновление материалов.
synchronousModeПри включении, новый динамический выход Global Illumination показывается в каждом кадре.
updateThresholdОпределяет процентное изменение интенсивности освещения, которое вызывает Unity для перерасчета карты освещения в реальном времени.

Статические методы

Метод Описание
SetEmissiveПозволяет быстро установить эмиссионный цвет для данного рендерера, без необходимости рендировать эмиссионный вход для всей системы.
SetEnvironmentDataПозволяет переопределить освещение окружающей среды для Enlighten Realtime Global Illumination, без изменения Skybox Материала.
UpdateEnvironmentРасписывает обновление сопоставления кубов среды.
UpdateMaterialsРасписывает обновление текстур альбедо и эмиссии системы, которая содержит рендерер или рельеф.