Renderers
Voir aussi
This page gives an overview of Godot's renderers, focusing on the differences between their rendering features. For more technical details on the renderers, see Internal rendering architecture.
Introduction
Godot 4 comprend trois moteurs de rendu :
Forward+. Le moteur de rendu le plus avancé, adapté uniquement aux plateformes de bureau. Utilisé par défaut sur les plateformes de bureau. Ce moteur de rendu utilise Vulkan, Direct3D 12, ou Metal comme pilote de rendu, et il utilise le backend RenderingDevice.
Mobile. Moins de fonctionnalités, mais rend des scènes simples plus rapidement. Adapté aux plateformes mobiles et de bureau. Utilisé par défaut sur les plateformes mobiles. Ce rendu utilise Vulkan, Direct3D 12, ou Metal comme pilote de rendu, et il utilise le backend RenderingDevice.
Compatibilité, parfois appelé Compatibilité GL. Le moteur de rendu le moins avancé, adapté aux plateformes de bureau bas de gamme et aux plateformes mobiles. Utilisé par défaut sur la plateforme web. Ce moteur de rendu utilise OpenGL comme driver de rendu.
Renderers, rendering drivers, and RenderingDevice
Les couches d'abstraction de rendu de Godot.
The renderer, or rendering method, determines which features are available. Most of the time, this is the only thing you need to think about. Godot's renderers are Forward+, Mobile, and Compatibility.
The rendering driver tells the GPU what to do, using a graphics API. Godot can use the OpenGL, Vulkan, Direct3D 12, and Metal rendering drivers. Not every GPU supports every rendering driver, and therefore not every GPU supports all renderers. Vulkan, Direct3D 12, and Metal are modern, low-level graphics APIs, and requires newer hardware. OpenGL is an older graphics API that runs on most hardware.
RenderingDevice is a rendering backend, an abstraction layer between the renderer and the rendering driver. It is used by the Forward+ and Mobile renderers, and these renderers are sometimes called "RenderingDevice-based renderers".
Choosing a renderer
Choosing a renderer is a complex question, and depends on your hardware and the which platforms you are developing for. As a starting point:
Choisissez Forward+ si :
You are developing for desktop.
You have relatively new hardware which supports Vulkan, Direct3D 12, or Metal.
You are developing a 3D game.
You want to use the most advanced rendering features.
Choisissez Mobile si :
You are developing for newer mobile devices, desktop XR, or desktop.
You have relatively new hardware which supports Vulkan, Direct3D 12, or Metal.
You are developing a 3D game.
You want to use advanced rendering features, subject to the limitations of mobile hardware.
Choisissez Compatibilité si :
Vous développez pour des appareils mobiles plus anciens, des appareils de bureau plus anciens ou des appareils XR autonomes. Le moteur de rendu Compatibilité prend en charge la plus large gamme de matériel.
You are developing for web. In this case, Compatibility is the only choice.
You have older hardware which does not support Vulkan. In this case, Compatibility is the only choice.
You are developing a 2D game, or a 3D game which does not need advanced rendering features.
You want the best performance possible on all devices and don't need advanced rendering features.
Gardez en tête que chaque jeu est unique, et ce n'est qu'un point de départ. Par exemple, vous pouvez choisir d'utiliser le moteur de rendu Compatibilité même si vous avez le dernier GPU, de sorte à ce que vous puissiez soutenir la plus large gamme de matériel. Ou vous pourriez vouloir utiliser le rendu Forward+ pour un jeu 2D, de sorte que vous pouvez des fonctionnalités avancées comme les shaders de calcul.
Basculer entre les moteurs de rendu
Dans l'éditeur, vous pouvez toujours basculer entre les moteurs de rendu en cliquant sur le nom du moteur dans le coin supérieur droit de l'éditeur.
Switching between renderers may require some manual tweaks to your scene, lighting, and environment, since each renderer is different. In general, switching between the Mobile and Forward+ renderers will require fewer adjustments than switching between the Compatibility renderer and the Forward+ or Mobile renderers.
Since Godot 4.4, when using Forward+ or Mobile, if Vulkan is not supported, the engine will fall back to Direct3D 12 and vice versa. If the attempted fallback driver is not supported either, the engine will then fall back to Compatibility when the RenderingDevice backend is not supported. This allows the project to run anyway, but it may look different than the intended appearance due to the more limited renderer. This behavior can be disabled in the project settings by unchecking Rendering > Rendering Device > Fallback to OpenGL 3.
Feature comparison
This is not a complete list of the features of each renderer. If a feature is not listed here, it is available in all renderers, though it may be much faster on some renderers. For a list of all features in Godot, see Liste des fonctionnalités.
Hardware with RenderingDevice support is hardware which can run Vulkan, Direct3D 12, or Metal.
Overall comparison
Fonctionnalité |
Compatibilité |
Mobile |
Forward+ |
|---|---|---|---|
Matériel requis |
Plus vieux ou bas de gamme. |
Newer or high-end. Requires Vulkan, Direct3D 12, or Metal support. |
Newer or high-end. Requires Vulkan, Direct3D 12, or Metal support. |
Runs on new hardware |
✔️ Oui. |
✔️ Oui. |
✔️ Oui. |
Runs on old and low-end hardware |
✔️ Oui. |
✔️ Yes, but slower than Compatibility. |
✔️ Yes, but slowest of all renderers. |
Runs on hardware without RenderingDevice support |
✔️ Oui. |
❌ Non. |
❌ Non. |
Target platforms |
Mobile, low-end desktop, web. |
Mobile, bureau. |
Bureau. |
Bureau |
✔️ Oui. |
✔️ Oui. |
✔️ Oui. |
Mobile |
✔️ Oui (bas de gamme). |
✔️ Oui (haut de gamme). |
⚠️ Supported, but poorly optimized. Use Mobile or Compatibility instead. |
XR |
✔️ Yes. Recommended for standalone headsets. |
|
⚠️ Supported, but poorly optimized. Use Mobile or Compatibility instead. |
Web |
✔️ Oui. |
❌ Non. |
❌ Non. |
2D Games |
✔️ Oui. |
✔️ Yes, but Compatibility is usually good enough for 2D. |
✔️ Yes, but Compatibility is usually good enough for 2D. |
3D Games |
✔️ Oui. |
✔️ Oui. |
✔️ Oui. |
Feature set |
Fonctionnalités 2D, et 3D de base. |
Most rendering features. |
Toutes les fonctionnalités de rendu. |
2D rendering features |
✔️ Oui. |
✔️ Oui. |
✔️ Oui. |
Core 3D rendering features |
✔️ Oui. |
✔️ Oui. |
✔️ Oui. |
Advanced rendering features |
❌ Non. |
⚠️ Yes, limited by mobile hardware. |
✔️ Yes. All rendering features are supported. |
New features |
⚠️ Some new rendering features are added to Compatibility. Features are added after Mobile and Forward+. |
✔️ Most new rendering features are added to Mobile. Mobile usually gets new features as Forward+ does. |
✔️ All new features are added to Forward+. As the focus of new development, Forward+ gets features first. |
Rendering cost |
Low base cost, but high scaling cost. |
Medium base cost, and medium scaling cost. |
Highest base cost, and low scaling cost. |
Rendering driver |
OpenGL. |
Vulkan, Direct3D 12, ou Metal. |
Vulkan, Direct3D 12, ou Metal. |
Lights and shadows
Voir Les lumières et ombres 3D pour plus d'informations.
Fonctionnalité |
Compatibilité |
Mobile |
Forward+ |
|---|---|---|---|
Lighting approach |
Forward |
Forward |
Clustered Forward |
Maximum d'OmniLights |
8 per mesh. Can be increased. |
8 per mesh, 256 per view. |
512 per cluster. Can be increased. |
Maximum de SpotLights |
8 per mesh. Can be increased. |
8 per mesh, 256 per view. |
512 per cluster. Can be increased. |
Maximum DirectionalLights |
8 |
8 |
8 |
PCSS for OmniLight and SpotLight |
❌ Non supporté. |
✔️ Supporté. |
✔️ Supporté. |
PCSS for DirectionalLight |
❌ Non supporté. |
❌ Non supporté. |
✔️ Supporté. |
Light projector textures |
❌ Non supporté. |
✔️ Supporté. |
✔️ Supporté. |
Global Illumination
Voir Introduction to global illumination pour plus d'informations.
Fonctionnalité |
Compatibilité |
Mobile |
Forward+ |
|---|---|---|---|
ReflectionProbe |
✔️ Supported, 2 per mesh. |
✔️ Supported, 8 per mesh. |
✔️ Supporté, illimité. |
LightmapGI |
⚠️ Rendering of baked lightmaps is supported. Baking requires hardware with RenderingDevice support. |
✔️ Supporté. |
✔️ Supporté. |
VoxelGI |
❌ Non supporté. |
❌ Non supporté. |
✔️ Supporté. |
Screen-Space Indirect Lighting (SSIL) |
❌ Non supporté. |
❌ Non supporté. |
✔️ Supporté. |
Signed Distance Field Global Illumination (SDFGI) |
❌ Non supporté. |
❌ Non supporté. |
✔️ Supporté. |
Les environnements et les effets post-rendu
Voir Les environnements et les effets post-rendu pour plus d'informations.
Fonctionnalité |
Compatibilité |
Mobile |
Forward+ |
|---|---|---|---|
Fog (Depth and Height) |
✔️ Supporté. |
✔️ Supporté. |
✔️ Supporté. |
Brouillard volumétrique |
❌ Non supporté. |
❌ Non supporté. |
✔️ Supporté. |
Tonemapping |
✔️ Supporté. |
✔️ Supporté. |
✔️ Supporté. |
Screen-Space Reflections |
❌ Non supporté. |
❌ Non supporté. |
✔️ Supporté. |
Screen-Space Ambient Occlusion (SSAO) |
❌ Non supporté. |
❌ Non supporté. |
✔️ Supporté. |
Screen-Space Indirect Lighting (SSIL) |
❌ Non supporté. |
❌ Non supporté. |
✔️ Supporté. |
Signed Distance Field Global Illumination (SDFGI) |
❌ Non supporté. |
❌ Non supporté. |
✔️ Supporté. |
Luisance |
✔️ Supporté. |
✔️ Supporté. |
✔️ Supporté. |
Ajustements |
✔️ Supporté. |
✔️ Supporté. |
✔️ Supporté. |
Custom post-processing with fullscreen quad |
✔️ Supporté. |
✔️ Supporté. |
✔️ Supporté. |
Custom post-processing with CompositorEffects |
❌ Non supporté. |
✔️ Supporté. |
✔️ Supporté. |
Anticrénelage
Voir Anticrénelage 3D pour plus d'informations.
Fonctionnalité |
Compatibilité |
Mobile |
Forward+ |
|---|---|---|---|
MSAA 3D |
✔️ Supporté. |
✔️ Supporté. |
✔️ Supporté. |
MSAA 2D |
❌ Non supporté. |
✔️ Supporté. |
✔️ Supporté. |
TAA |
❌ Non supporté. |
❌ Non supporté. |
✔️ Supporté. |
FSR2 |
❌ Non supporté. |
❌ Non supporté. |
✔️ Supporté. |
FXAA |
❌ Non supporté. |
✔️ Supporté. |
✔️ Supporté. |
SSAA |
✔️ Supporté. |
✔️ Supporté. |
✔️ Supporté. |
Screen-space roughness limiter |
❌ Non supporté. |
✔️ Supporté. |
✔️ Supporté. |
StandardMaterial features
Voir Standard Material 3D and ORM Material 3D pour plus d'informations.
Fonctionnalité |
Compatibilité |
Mobile |
Forward+ |
|---|---|---|---|
Sub-surface scattering |
❌ Non supporté. |
❌ Non supporté. |
✔️ Supporté. |
Shader features
Voir Référence de shading pour plus d'informations.
Fonctionnalité |
Compatibilité |
Mobile |
Forward+ |
|---|---|---|---|
Texture d'écran |
✔️ Supporté. |
✔️ Supporté. |
✔️ Supporté. |
Texture de profondeur |
✔️ Supporté. |
✔️ Supporté. |
✔️ Supporté. |
Normal/Roughness texture |
❌ Non supporté. |
❌ Non supporté. |
✔️ Supporté. |
Shaders de calcul |
❌ Non supporté. |
⚠️ Supported, but comes with a performance penalty on older devices. |
✔️ Supporté. |
Other features
Fonctionnalité |
Compatibilité |
Mobile |
Forward+ |
|---|---|---|---|
Variable rate shading |
❌ Non supporté. |
✔️ Supporté. |
✔️ Supporté. |
Decals |
❌ Non supporté. |
✔️ Supporté. |
✔️ Supporté. |
Depth of field blur |
❌ Non supporté. |
✔️ Supporté. |
✔️ Supporté. |
Adaptive and Mailbox VSync modes |
❌ Non supporté. |
✔️ Supporté. |
✔️ Supporté. |
2D HDR Viewport |
❌ Non supporté. |
✔️ Supporté. |
✔️ Supporté. |
RenderingDevice access |
❌ Non supporté. |
✔️ Supporté. |
✔️ Supporté. |