:github_url: hide .. _class_Sky: Sky === **Наследует:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` Определяет фон трехмерной среды с помощью :ref:`Material`. .. rst-class:: classref-introduction-group Описание ---------------- Класс **Sky** использует :ref:`Material` для визуализации фона трехмерной среды и света, который она излучает, путем обновления кубических карт отражения/сияния. .. rst-class:: classref-reftable-group Свойства ---------------- .. table:: :widths: auto +--------------------------------------------+--------------------------------------------------------+-------+ | :ref:`ProcessMode` | :ref:`process_mode` | ``0`` | +--------------------------------------------+--------------------------------------------------------+-------+ | :ref:`RadianceSize` | :ref:`radiance_size` | ``3`` | +--------------------------------------------+--------------------------------------------------------+-------+ | :ref:`Material` | :ref:`sky_material` | | +--------------------------------------------+--------------------------------------------------------+-------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Перечисления ------------------------ .. _enum_Sky_RadianceSize: .. rst-class:: classref-enumeration enum **RadianceSize**: :ref:`🔗` .. _class_Sky_constant_RADIANCE_SIZE_32: .. rst-class:: classref-enumeration-constant :ref:`RadianceSize` **RADIANCE_SIZE_32** = ``0`` Размер текстуры Radiance составляет 32×32 пикселя. .. _class_Sky_constant_RADIANCE_SIZE_64: .. rst-class:: classref-enumeration-constant :ref:`RadianceSize` **RADIANCE_SIZE_64** = ``1`` Размер текстуры Radiance составляет 64×64 пикселя. .. _class_Sky_constant_RADIANCE_SIZE_128: .. rst-class:: classref-enumeration-constant :ref:`RadianceSize` **RADIANCE_SIZE_128** = ``2`` Размер текстуры Radiance составляет 128×128 пикселей. .. _class_Sky_constant_RADIANCE_SIZE_256: .. rst-class:: classref-enumeration-constant :ref:`RadianceSize` **RADIANCE_SIZE_256** = ``3`` Размер текстуры Radiance составляет 256×256 пикселей. .. _class_Sky_constant_RADIANCE_SIZE_512: .. rst-class:: classref-enumeration-constant :ref:`RadianceSize` **RADIANCE_SIZE_512** = ``4`` Размер текстуры Radiance составляет 512×512 пикселей. .. _class_Sky_constant_RADIANCE_SIZE_1024: .. rst-class:: classref-enumeration-constant :ref:`RadianceSize` **RADIANCE_SIZE_1024** = ``5`` Размер текстуры Radiance составляет 1024×1024 пикселей. .. _class_Sky_constant_RADIANCE_SIZE_2048: .. rst-class:: classref-enumeration-constant :ref:`RadianceSize` **RADIANCE_SIZE_2048** = ``6`` Размер текстуры Radiance составляет 2048×2048 пикселей. .. _class_Sky_constant_RADIANCE_SIZE_MAX: .. rst-class:: classref-enumeration-constant :ref:`RadianceSize` **RADIANCE_SIZE_MAX** = ``7`` Представляет размер перечисления :ref:`RadianceSize`. .. rst-class:: classref-item-separator ---- .. _enum_Sky_ProcessMode: .. rst-class:: classref-enumeration enum **ProcessMode**: :ref:`🔗` .. _class_Sky_constant_PROCESS_MODE_AUTOMATIC: .. rst-class:: classref-enumeration-constant :ref:`ProcessMode` **PROCESS_MODE_AUTOMATIC** = ``0`` Автоматически выбирает подходящий режим обработки на основе вашего шейдера неба. Если ваш шейдер использует ``TIME`` или ``POSITION``, это будет использовать :ref:`PROCESS_MODE_REALTIME`. Если ваш шейдер использует любую из переменных ``LIGHT_*`` или любые пользовательские униформы, это будет использовать :ref:`PROCESS_MODE_INCREMENTAL`. В противном случае это по умолчанию :ref:`PROCESS_MODE_QUALITY`. .. _class_Sky_constant_PROCESS_MODE_QUALITY: .. rst-class:: classref-enumeration-constant :ref:`ProcessMode` **PROCESS_MODE_QUALITY** = ``1`` Использует выборку важности высокого качества для обработки карты сияния. В целом, это приводит к гораздо более высокому качеству, чем :ref:`PROCESS_MODE_REALTIME`, но генерация занимает гораздо больше времени. Это не следует использовать, если вы планируете изменять небо во время выполнения. Если вы обнаружите, что отражение недостаточно размыто и показывает искры или светлячков, попробуйте увеличить :ref:`ProjectSettings.rendering/reflections/sky_reflections/ggx_samples`. .. _class_Sky_constant_PROCESS_MODE_INCREMENTAL: .. rst-class:: classref-enumeration-constant :ref:`ProcessMode` **PROCESS_MODE_INCREMENTAL** = ``2`` Использует ту же выборку высокого качества важности для обработки карты сияния, что и :ref:`PROCESS_MODE_QUALITY`, но обновляет в течение нескольких кадров. Количество кадров определяется :ref:`ProjectSettings.rendering/reflections/sky_reflections/roughness_layers`. Используйте это, когда вам нужны карты сияния самого высокого качества, но у вас есть небо, которое медленно обновляется. .. _class_Sky_constant_PROCESS_MODE_REALTIME: .. rst-class:: classref-enumeration-constant :ref:`ProcessMode` **PROCESS_MODE_REALTIME** = ``3`` Использует алгоритм быстрой фильтрации для обработки карты сияния. В целом это приводит к снижению качества, но существенному ускорению времени выполнения. Если вам нужно лучшее качество, но при этом нужно обновлять небо в каждом кадре, рассмотрите возможность включения :ref:`ProjectSettings.rendering/reflections/sky_reflections/fast_filter_high_quality`. \ **Примечание:** Алгоритм быстрой фильтрации ограничен кубическими картами 256×256, поэтому :ref:`radiance_size` должен быть установлен на :ref:`RADIANCE_SIZE_256`. В противном случае выводится предупреждение, а переопределенный размер сияния игнорируется. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описания свойств -------------------------------- .. _class_Sky_property_process_mode: .. rst-class:: classref-property :ref:`ProcessMode` **process_mode** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_process_mode**\ (\ value\: :ref:`ProcessMode`\ ) - :ref:`ProcessMode` **get_process_mode**\ (\ ) Метод генерации карты сияния из неба. Карта сияния представляет собой кубическую карту с все более размытыми версиями неба, соответствующими различным уровням шероховатости. Карты сияния могут быть дорогими для расчета. .. rst-class:: classref-item-separator ---- .. _class_Sky_property_radiance_size: .. rst-class:: classref-property :ref:`RadianceSize` **radiance_size** = ``3`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_radiance_size**\ (\ value\: :ref:`RadianceSize`\ ) - :ref:`RadianceSize` **get_radiance_size**\ (\ ) Размер карты сияния **Sky**. Чем больше размер карты сияния, тем более подробным будет освещение от **Sky**. \ **Примечание:** У некоторого оборудования могут возникнуть проблемы с более высокими размерами сияния, особенно :ref:`RADIANCE_SIZE_512` и выше. Используйте такие высокие значения только на высокопроизводительном оборудовании. .. rst-class:: classref-item-separator ---- .. _class_Sky_property_sky_material: .. rst-class:: classref-property :ref:`Material` **sky_material** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_material**\ (\ value\: :ref:`Material`\ ) - :ref:`Material` **get_material**\ (\ ) :ref:`Material` используется для рисования фона. Может быть :ref:`PanoramaSkyMaterial`, :ref:`ProceduralSkyMaterial`, :ref:`PhysicalSkyMaterial` или даже :ref:`ShaderMaterial`, если вы хотите использовать свой собственный шейдер. .. |virtual| replace:: :abbr:`virtual (Этот метод обычно должен быть переопределен пользователем, чтобы иметь какой-либо эффект.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (Этот метод не имеет побочных эффектов. Он не изменяет ни одну из переменных-членов экземпляра.)` .. |vararg| replace:: :abbr:`vararg (Этот метод принимает любое количество аргументов после описанных здесь.)` .. |constructor| replace:: :abbr:`constructor (Этот метод используется для создания типа.)` .. |static| replace:: :abbr:`static (Этот метод не нуждается в вызове экземпляра, поэтому его можно вызвать напрямую, используя имя класса.)` .. |operator| replace:: :abbr:`operator (Этот метод описывает допустимый оператор для использования с этим типом в качестве левого операнда.)` .. |bitfield| replace:: :abbr:`BitField (Это значение является целым числом, составленным как битовая маска следующих флагов.)` .. |void| replace:: :abbr:`void (Нет возвращаемого значения.)`