Обзор рендереров
См. также
На этой странице представлен обзор рендереров Godot с акцентом на различия в их функциях. Более подробную техническую информацию о рендерерах см. в документе Внутренняя архитектура рендеринга.
Введение
Godot 4 включает в себя три рендера:
Forward+. Самый продвинутый рендерер, подходящий только для настольных платформ. Используется по умолчанию на настольных платформах. Этот рендерер использует Vulkan, Direct3D 12, или Metal в качестве драйвера рендеринга, и использует бэкенд RenderingDevice.
Mobile. Меньше возможностей, однако рендерит простые сцены быстрее. Предназначен для мобильных и настольных платформ. Используется по умолчанию на мобильных платформах. Этот рендерер использует Vulkan, Direct3D 12, или Metal в качестве драйвера рендеринга, и RenderingDevice как бэкенд.
Compatibility, иногда называемый GL Compatibility. Наименее продвинутый отрисовщик, подходящий для бюджетных настольных и мобильных платформ. Используется по умолчанию на веб-платформе. Этот отрисовщик использует OpenGL в качестве драйвера рендеринга.
Рендереры, драйверы рендеринга и RenderingDevice
Godot рендерит слои абстракции.
Renderer, или rendering method, определяет доступные функции. В большинстве случаев это единственное, о чём нужно думать. В Godot есть рендереры Forward+, Mobile и Compatibility.
Драйвер рендеринга сообщает графическому процессору, что делать, используя графический API. Godot может использовать драйверы рендеринга OpenGL, Vulkan, Direct3D 12 и Metal. Не каждый графический процессор поддерживает все драйверы рендеринга, и, следовательно, не каждый графический процессор поддерживает все рендереры. Vulkan, Direct3D 12 и Metal — это современные низкоуровневые графические API, требующие более нового оборудования. OpenGL — это старый графический API, работающий на большинстве устройств.
RenderingDevice — это бэкенд рендеринга, уровень абстракции между рендерером и драйвером рендеринга. Он используется рендерерами Forward+ и Mobile, которые иногда называют "рендерерами на базе RenderingDevice".
Выбор рендерера
Выбор рендерера — сложный вопрос, зависящий от вашего оборудования и платформ, для которых вы разрабатываете. Для начала:
Выберите Forward+, если:
Вы разрабатываете для настольных компьютеров.
У вас относительно новое оборудование, поддерживающее Vulkan, Direct3D 12 или Metal.
Вы разрабатываете 3D-игру.
Вы хотите использовать самые передовые функции рендеринга.
Выберите Mobile, если:
Вы разрабатываете приложения для новых мобильных устройств, настольных ПК или XR.
У вас относительно новое оборудование, поддерживающее Vulkan, Direct3D 12 или Metal.
Вы разрабатываете 3D-игру.
Вы хотите использовать расширенные функции рендеринга с учетом ограничений мобильного оборудования.
Выберите Compatibility, если:
Вы разрабатываете приложения для старых мобильных устройств, старых настольных компьютеров или отдельных XR. Модуль Compatibility Renderer поддерживает самый широкий спектр оборудования.
Вы разрабатываете веб-приложение. В этом случае единственный вариант — Compatibility.
У вас устаревшее оборудование, которое не поддерживает Vulkan. В этом случае единственный вариант — Compatibility.
Вы разрабатываете 2D-игру или 3D-игру, которой не нужны расширенные функции рендеринга.
Вам нужна максимально возможная производительность на всех устройствах, и вам не нужны расширенные функции рендеринга.
Keep in mind every game is unique, and this is only a starting point. For example, you might choose to use the Compatibility renderer even though you have the latest GPU, so you can support the widest range of hardware. Or you might want to use the Forward+ renderer for a 2D game, so you can use advanced features like compute shaders.
Переключение между рендерерами
В редакторе вы всегда можете переключаться между рендерерами, нажимая на имя рендерера в правом верхнем углу редактора.
Переключение между рендерами может потребовать ручной настройки сцены, освещения и окружения, поскольку каждый рендер отличается. В целом, переключение между мобильным рендером и рендером Forward+ потребует меньше настроек, чем переключение между рендером Compatibility и рендерами Forward+ или Mobile.
Начиная с Godot 4.4, при использовании Forward+ или Mobile, если Vulkan не поддерживается, движок переходит на Direct3D 12 и наоборот. Если используемый резервный драйвер также не поддерживается, движок переходит на режим совместимости, если бэкенд RenderingDevice не поддерживается. Это позволяет проекту работать в любом случае, но из-за более ограниченного рендерера его внешний вид может отличаться от ожидаемого. Это поведение можно отключить в настройках проекта, сняв флажок Rendering > Rendering Device > Fallback to OpenGL 3.
Сравнение характеристик
Это не полный список функций каждого рендерера. Если функция не указана здесь, она доступна во всех рендерерах, хотя на некоторых она может работать значительно быстрее. Список всех функций Godot см. в Список функций.
Оборудование с поддержкой RenderingDevice — это оборудование, которое может запускать Vulkan, Direct3D 12 или Metal.
Общее сравнение
Особенность |
Совместимость |
Мобильные устройства |
Forward+ |
|---|---|---|---|
Требуемое оборудование |
Старые или бюджетные. |
Более новая или высокопроизводительная. Требуется поддержка Vulkan, Direct3D 12 или Metal. |
Более новая или высокопроизводительная. Требуется поддержка Vulkan, Direct3D 12 или Metal. |
Работает на новом оборудовании |
✔️ Да. |
✔️ Да. |
✔️ Да. |
Работает на старом и некачественном оборудовании |
✔️ Да. |
✔️ Да, но медленнее, чем Compatibility. |
✔️ Да, но самый медленный из всех рендереров. |
Работает на оборудовании без поддержки RenderingDevice |
✔️ Да. |
❌ Нет. |
❌ Нет. |
Целевые платформы |
Мобильные устройства, недорогие настольные компьютеры, веб-браузеры. |
Мобильные устройства, настольные компьютеры. |
Desktop (Рабочий стол). |
Настольные |
✔️ Да. |
✔️ Да. |
✔️ Да. |
Мобильные устройства |
✔️ Да (низкий уровень). |
✔️ Да (высокого класса). |
⚠️ Поддерживается, но плохо оптимизировано. Вместо этого используйте Mobile или Compatibility.. |
XR |
✔️ Да. Рекомендуется для автономных гарнитур. |
✔️ Да. Рекомендуется для настольных гарнитур. |
⚠️ Поддерживается, но плохо оптимизировано. Вместо этого используйте Mobile или Compatibility.. |
Web |
✔️ Да. |
❌ Нет. |
❌ Нет. |
2D Игры |
✔️ Да. |
✔️ Да, но для 2D Compatibility обычно достаточна. |
✔️ Да, но для 2D Compatibility обычно достаточна. |
3D Игры |
✔️ Да. |
✔️ Да. |
✔️ Да. |
Набор функций |
2D и основные 3D-функции. |
Большинство функций рендеринга. |
Все функции рендеринга. |
Возможности 2D-рендеринга |
✔️ Да. |
✔️ Да. |
✔️ Да. |
Основные функции 3D-рендеринга |
✔️ Да. |
✔️ Да. |
✔️ Да. |
Расширенные функции рендеринга |
❌ Нет. |
⚠️ Да, ограничено мобильным оборудованием. |
✔️ Да. Поддерживаются все функции рендеринга. |
Новые функции |
⚠️ В раздел Compatibility добавлены новые функции рендеринга. Функции добавлены после Mobile и Forward+. |
✔️ Большинство новых функций рендеринга добавлено в Mobile версию. Mobile версия обычно получает новые функции вместе с Forward+. |
✔️ Все новые функции добавляются в Forward+. Forward+ — это платформа, которая в первую очередь разрабатывается и получает новые функции. |
Стоимость рендеринга |
Низкая базовая стоимость, но высокая стоимость масштабирования. |
Средняя базовая стоимость и средняя стоимость масштабирования. |
Самая высокая базовая стоимость и низкая стоимость масштабирования. |
Драйвер рендеринга |
OpenGL. |
Vulkan, Direct3D 12, или Metal. |
Vulkan, Direct3D 12, или Metal. |
Свет и тени
Более подробную информацию смотрите в 3D свет и тени.
Особенность |
Совместимость |
Мобильные устройства |
Forward+ |
|---|---|---|---|
Подход к освещению |
Forward (Вперед) |
Forward (Вперед) |
Кластеризованный Forward |
Максимум OmniLights |
8 на ячейку. Можно увеличить. |
8 на сетку, 256 на вид. |
512 на кластер. Можно увеличить. |
Максимум SpotLights |
8 на ячейку. Можно увеличить. |
8 на сетку, 256 на вид. |
512 на кластер. Можно увеличить. |
Максимум DirectionalLights |
8 |
8 |
8 |
PCSS для OmniLight и SpotLight |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
PCSS для DirectionalLight |
❌ Не поддерживается. |
❌ Не поддерживается. |
✔️ Поддерживается. |
Текстуры проектора света |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Глобальное освещение
Более подробную информацию см. в документе Введение в глобальное освещение.
Особенность |
Совместимость |
Мобильные устройства |
Forward+ |
|---|---|---|---|
ReflectionProbe (Зонд отражения) |
✔️ Поддерживается, 2 на сетку. |
✔️ Поддерживается, 8 на сетку. |
✔️ Поддерживается, без ограничений. |
LightmapGI |
⚠️ Поддерживается рендеринг запечённых карт освещения. Для запекания требуется оборудование с поддержкой RenderingDevice. |
✔️ Поддерживается. |
✔️ Поддерживается. |
VoxelGI |
❌ Не поддерживается. |
❌ Не поддерживается. |
✔️ Поддерживается. |
Screen-Space Indirect Lighting (SSIL) (непрямое освещение в экранном пространстве) |
❌ Не поддерживается. |
❌ Не поддерживается. |
✔️ Поддерживается. |
Глобальное освещение на основе полей знаковых расстояний (SDFGI) |
❌ Не поддерживается. |
❌ Не поддерживается. |
✔️ Поддерживается. |
Окружающая среда и постобработка
Более подробную информацию см. в документе Окружающая среда и постобработка.
Особенность |
Совместимость |
Мобильные устройства |
Forward+ |
|---|---|---|---|
Туман (глубина и высота) |
✔️ Поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Объемный туман |
❌ Не поддерживается. |
❌ Не поддерживается. |
✔️ Поддерживается. |
Tonemapping (Тоновое отображение) |
✔️ Поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Screen-Space Reflections (Отражения в экранном пространстве) |
❌ Не поддерживается. |
❌ Не поддерживается. |
✔️ Поддерживается. |
Затенение окружающего пространства экрана (SSAO) |
✔️ Поддерживается. |
❌ Не поддерживается. |
✔️ Поддерживается. |
Screen-Space Indirect Lighting (SSIL) (непрямое освещение в экранном пространстве) |
❌ Не поддерживается. |
❌ Не поддерживается. |
✔️ Поддерживается. |
Глобальное освещение на основе полей знаковых расстояний (SDFGI) |
❌ Не поддерживается. |
❌ Не поддерживается. |
✔️ Поддерживается. |
Свечение |
✔️ Поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Adjustments (настройки) |
✔️ Поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Пользовательская постобработка с полноэкранным квадро-режимом |
✔️ Поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Пользовательская постобработка с помощью CompositorEffects |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Сглаживание
Более подробную информацию см. в разделе 3D сглаживание.
Особенность |
Совместимость |
Мобильные устройства |
Forward+ |
|---|---|---|---|
MSAA 3D |
✔️ Поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
MSAA 2D |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
TAA |
❌ Не поддерживается. |
❌ Не поддерживается. |
✔️ Поддерживается. |
FSR2 |
❌ Не поддерживается. |
❌ Не поддерживается. |
✔️ Поддерживается. |
FXAA |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
SSAA |
✔️ Поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Ограничитель шероховатости в экранном пространстве |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Свойства StandardMaterial
Более подробную информацию см. в документе Стандартный материал 3D и материал ORM 3D.
Особенность |
Совместимость |
Мобильные устройства |
Forward+ |
|---|---|---|---|
Под-поверхностное рассеяние |
❌ Не поддерживается. |
❌ Не поддерживается. |
✔️ Поддерживается. |
Особенности шейдера
Более подробную информацию см. в Ссылки на шейдеры.
Особенность |
Совместимость |
Мобильные устройства |
Forward+ |
|---|---|---|---|
Текстура экрана |
✔️ Поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Текстура глубины |
✔️ Поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Normal/Roughness buffer |
❌ Не поддерживается. |
❌ Не поддерживается. |
✔️ Поддерживается. |
Вычислительные шейдеры |
❌ Не поддерживается. |
⚠️ Поддерживается, но на старых устройствах производительность снижается. |
✔️ Поддерживается. |
Другие особенности
Особенность |
Совместимость |
Мобильные устройства |
Forward+ |
|---|---|---|---|
Затенение с переменной скоростью |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Decals (Наклейки) |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Трейлы частиц |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Particle SDF collision |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Размытие глубины резкости |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Режимы Adaptive и Mailbox VSync |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
2D HDR-Окно просмотра |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |
Доступ к RenderingDevice |
❌ Не поддерживается. |
✔️ Поддерживается. |
✔️ Поддерживается. |