|
@@ -8,7 +8,7 @@ This page aims to list all features currently supported by Godot.
|
|
|
.. note::
|
|
|
|
|
|
This page lists features supported by the current development version of
|
|
|
- Godot (4.0.dev). Some of these features may not be available in the
|
|
|
+ Godot (4.0.alpha). Some of these features may not be available in the
|
|
|
`current stable release series (3.x) <https://docs.godotengine.org/en/stable/about/list_of_features.html>`__.
|
|
|
|
|
|
Features
|
|
@@ -32,7 +32,6 @@ Platforms
|
|
|
|
|
|
- Android 4.4 and later.
|
|
|
- iOS 10.0 and later.
|
|
|
-- HTML5 via WebAssembly (Firefox, Chrome, Edge, Opera).
|
|
|
- :ref:`Consoles <doc_consoles>`.
|
|
|
|
|
|
Godot aims to be as platform-independent as possible and can be ported to new
|
|
@@ -44,13 +43,14 @@ Editor
|
|
|
**Features:**
|
|
|
|
|
|
- Scene tree editor.
|
|
|
-- Script editor.
|
|
|
+- Built-in script editor.
|
|
|
- Support for :ref:`external script editors <doc_external_editor>` such as
|
|
|
Visual Studio Code or Vim.
|
|
|
- GDScript :ref:`debugger <doc_debugger_panel>`.
|
|
|
|
|
|
- No support for debugging in threads yet.
|
|
|
-- Visual profiler with CPU and GPU time indications.
|
|
|
+- Visual profiler with CPU and GPU time indications for each step of the
|
|
|
+ rendering pipeline.
|
|
|
- Performance monitoring tools.
|
|
|
- Live script reloading.
|
|
|
- Live scene editing.
|
|
@@ -65,14 +65,17 @@ Editor
|
|
|
|
|
|
- Move the in-editor camera and see the result in the running project.
|
|
|
|
|
|
+- Built-in offline class reference documentation.
|
|
|
- Use the editor in dozens of languages contributed by the community.
|
|
|
|
|
|
**Plugins:**
|
|
|
|
|
|
- Editor plugins can be downloaded from the
|
|
|
:ref:`asset library <doc_what_is_assetlib>` to extend editor functionality.
|
|
|
-- Create your own plugins using GDScript to add new features or speed up your workflow.
|
|
|
-- Download projects from the asset library in the project manager and import them directly.
|
|
|
+- :ref:`Create your own plugins <doc_making_plugins>` using GDScript to add new
|
|
|
+ features or speed up your workflow.
|
|
|
+- :ref:`Download projects from the asset library <doc_using_assetlib_editor>`
|
|
|
+ in the project manager and import them directly.
|
|
|
|
|
|
2D graphics
|
|
|
^^^^^^^^^^^
|
|
@@ -86,11 +89,15 @@ Vulkan renderer.
|
|
|
- AnimatedSprite2D as a helper for creating animated sprites.
|
|
|
- Parallax layers.
|
|
|
|
|
|
- - Pseudo-3D support by automatically duplicating a layer several times.
|
|
|
+ - Pseudo-3D support including preview in the editor.
|
|
|
|
|
|
- 2D lighting with normal maps and specular maps.
|
|
|
|
|
|
- - Hard or soft shadows.
|
|
|
+ - Point (omni/spot) and directional 2D lights.
|
|
|
+ - Hard or soft shadows (adjustable on a per-light basis).
|
|
|
+ - Custom shaders can access a real-time :abbr:`SDF (Signed Distance Field)`
|
|
|
+ representation of the 2D scene, which can be used for improved 2D lighting
|
|
|
+ effects including 2D global illumination.
|
|
|
|
|
|
- Font rendering using bitmaps, rasterization using FreeType or
|
|
|
multi-channel signed distance fields (MSDF).
|
|
@@ -99,8 +106,11 @@ Vulkan renderer.
|
|
|
- Dynamic fonts support monochrome fonts as well as colored fonts (e.g. for emoji).
|
|
|
Supported formats are TTF, OTF, WOFF1 and WOFF2.
|
|
|
- Dynamic fonts support optional font outlines with adjustable width and color.
|
|
|
- - Dynamic fonts support variable fonts and OpenType features.
|
|
|
+ - Dynamic fonts support variable fonts and OpenType features including ligatures.
|
|
|
+ - Dynamic fonts support simulated bold and italic when the font file lacks
|
|
|
+ those styles.
|
|
|
- Dynamic fonts support oversampling to keep fonts sharp at higher resolutions.
|
|
|
+ - Dynamic fonts support subpixel positioning to make fonts crisper at low sizes.
|
|
|
- Signed distance field fonts can be scaled at any resolution without
|
|
|
requiring re-rasterization. Multi-channel usage makes SDF fonts scale down
|
|
|
to lower sizes better compared to monochrome SDF fonts.
|
|
@@ -139,23 +149,36 @@ Vulkan renderer.
|
|
|
3D graphics
|
|
|
^^^^^^^^^^^
|
|
|
|
|
|
-Vulkan renderer.
|
|
|
+Vulkan renderer compatible with desktop and mobile platforms. Requires full support for
|
|
|
+Vulkan 1.0, with Vulkan 1.1 and 1.2 features optionally used.
|
|
|
|
|
|
- HDR rendering with sRGB.
|
|
|
- Perspective, orthographic and frustum-offset cameras.
|
|
|
+- When using the Vulkan Clustered backend (default on desktop), a depth prepass
|
|
|
+ is used to improve performance in complex scenes by reducing the cost of overdraw.
|
|
|
- Support for rendering 3D at a lower resolution while keeping 2D rendering at
|
|
|
- the original scale. This can be used to improve performance on low-end systems.
|
|
|
+ the original scale. This can be used to improve performance on low-end systems
|
|
|
+ or improve visuals on high-end systems.
|
|
|
+
|
|
|
+ - 3D rendering can be scaled with bilinear filtering or
|
|
|
+ `AMD FidelityFX Super Resolution 1.0 https://www.amd.com/en/technologies/fidelityfx-super-resolution`__.
|
|
|
+
|
|
|
- `OpenGL support planned for a future Godot 4.x release <https://godotengine.org/article/about-godot4-vulkan-gles3-and-gles2>`__.
|
|
|
|
|
|
- If you need OpenGL support, use Godot 3.x which remains supported.
|
|
|
|
|
|
-**Physically-based rendering:**
|
|
|
+**Physically-based rendering (built-in material features):**
|
|
|
|
|
|
- Follows the Disney PBR model.
|
|
|
+- Supports Lambert, Lambert Wrap (half-Lambert) and Toon diffuse shading modes.
|
|
|
+- Supports Schlick-GGX, Toon and Disabled specular shading modes.
|
|
|
- Uses a roughness-metallic workflow with support for ORM textures.
|
|
|
+- Uses horizon specular occlusion (Filament model) to improve material appearance.
|
|
|
- Normal mapping.
|
|
|
- Parallax/relief mapping with automatic level of detail based on distance.
|
|
|
+- Detail mapping for the albedo and normal maps.
|
|
|
- Sub-surface scattering and transmittance.
|
|
|
+- Refraction with support for material roughness (resulting in blurry refraction).
|
|
|
- Proximity fade (soft particles) and distance fade.
|
|
|
- Distance fade can use alpha blending or dithering to avoid going through
|
|
|
the transparent pipeline.
|
|
@@ -166,9 +189,15 @@ Vulkan renderer.
|
|
|
- Directional lights (sun/moon). Up to 4 per scene.
|
|
|
- Omnidirectional lights.
|
|
|
- Spot lights with adjustable cone angle and attenuation.
|
|
|
+- Specular energy can be adjusted on a per-light basis.
|
|
|
- Adjustable light "size" for fake area lights (will also make shadows blurrier).
|
|
|
-- Lights are rendered with clustered forward optimizations to decrease their
|
|
|
- individual cost.
|
|
|
+- Optional distance fade system to fade distant lights and their shadows, improving performance.
|
|
|
+- When using the Vulkan Clustered backend (default on desktop), lights are
|
|
|
+ rendered with clustered forward optimizations to decrease their individual cost.
|
|
|
+ Clustered rendering also lifts any limits on the number of lights that can be used on a mesh.
|
|
|
+- When using the Vulkan Mobile backend, up to 8 omni lights and 8 spot lights can
|
|
|
+ be displayed per mesh resource. Baked lighting can be used to overcome this limit
|
|
|
+ if needed.
|
|
|
|
|
|
**Shadow mapping:**
|
|
|
|
|
@@ -177,10 +206,11 @@ Vulkan renderer.
|
|
|
- *OmniLight:* Dual paraboloid (fast) or cubemap (slower but more accurate).
|
|
|
Supports colored projector textures in the form of panoramas.
|
|
|
- *SpotLight:* Single texture. Supports colored projector textures.
|
|
|
-- Shadow pancaking to decrease the amount of visible shadow acne and peter-panning.
|
|
|
+- Shadow normal offset bias and shadow pancaking to decrease the amount of
|
|
|
+ visible shadow acne and peter-panning.
|
|
|
- PCSS-like shadow blur based on the light size and distance from the surface
|
|
|
the shadow is cast on.
|
|
|
-- Adjustable blur on a per-light basis.
|
|
|
+- Adjustable shadow blur on a per-light basis.
|
|
|
|
|
|
**Global illumination with indirect lighting:**
|
|
|
|
|
@@ -190,32 +220,60 @@ Vulkan renderer.
|
|
|
The bake mode can be adjusted on a per-light basis to allow for hybrid light
|
|
|
baking setups.
|
|
|
- Supports lighting dynamic objects using automatic and manually placed probes.
|
|
|
- - Optionally supports directional lighting and reflections based on spherical
|
|
|
+ - Optionally supports directional lighting and rough reflections based on spherical
|
|
|
harmonics.
|
|
|
- Lightmaps are baked on the GPU using compute shaders (much faster compared
|
|
|
- to CPU lightmapping).
|
|
|
-
|
|
|
-- GI probes (slower, fully real-time). Supports reflections.
|
|
|
-- Signed-distance field GI (intermediate, supports dynamic lights but not
|
|
|
- dynamic occluders). Supports reflections.
|
|
|
-- Global illumination uses a deferred pass to allow for rendering GI at half
|
|
|
- resolution to improve performance.
|
|
|
+ to CPU lightmapping). Baking can only be performed from the editor,
|
|
|
+ not in exported projects.
|
|
|
+
|
|
|
+- Voxel-based GI probes. Supports dynamic lights *and* dynamic occluders, while
|
|
|
+ also supporting reflections. Requires a fast baking step which can be
|
|
|
+ performed in the editor or at run-time (including from an exported project).
|
|
|
+- Signed-distance field GI designed for large open worlds.
|
|
|
+ Supports dynamic lights, but not dynamic occluders. Supports reflections.
|
|
|
+ No baking required.
|
|
|
+- Screen-space indirect lighting (SSIL) at half or full resolution.
|
|
|
+ Fully real-time and supports any kind of emissive light source (including decals).
|
|
|
+- VoxelGI and SDFGI use a deferred pass to allow for rendering GI at half
|
|
|
+ resolution to improve performance (while still having working MSAA support).
|
|
|
|
|
|
**Reflections:**
|
|
|
|
|
|
- Voxel-based reflections (when using GI probes) and SDF-based reflections
|
|
|
(when using signed distance field GI).
|
|
|
- Fast baked reflections or slow real-time reflections using ReflectionProbe.
|
|
|
- Parallax correction can optionally be enabled.
|
|
|
-- Screen-space reflections.
|
|
|
+ Parallax box correction can optionally be enabled.
|
|
|
+- Screen-space reflections with support for material roughness.
|
|
|
- Reflection techniques can be mixed together for greater accuracy or scalability.
|
|
|
+- When using the Vulkan Clustered backend (default on desktop), reflection probes are
|
|
|
+ rendered with clustered forward optimizations to decrease their individual cost.
|
|
|
+ Clustered rendering also lifts any limits on the number of reflection probes that can be used on a mesh.
|
|
|
+- When using the Vulkan Mobile backend, up to 8 reflection probes can be displayed per mesh
|
|
|
+ resource.
|
|
|
+
|
|
|
+**Decals:**
|
|
|
+
|
|
|
+- Supports albedo, emissive, :abbr:`ORM (Occlusion Roughness Metallic)` and normal mapping.
|
|
|
+- Texture channels are smoothly overlaid on top of the underlying material,
|
|
|
+ with support for normal/ORM-only decals.
|
|
|
+- Support for normal fade to fade the decal depending on its incidence angle.
|
|
|
+- Does not rely on run-time mesh generation. This means decals can be used on
|
|
|
+ complex skinned meshes with no performance penalty, even if the decal moves every frame.
|
|
|
+- Support for nearest, bilinear, trilinear or anisotropic texture filtering (configured globally).
|
|
|
+- Optional distance fade system to fade distant lights and their shadows, improving performance.
|
|
|
+- When using the Vulkan Clustered backend (default on desktop), decals are
|
|
|
+ rendered with clustered forward optimizations to decrease their individual cost.
|
|
|
+ Clustered rendering also lifts any limits on the number of decals that can be used on a mesh.
|
|
|
+- When using the Vulkan Mobile backend, up to 8 decals can be displayed per mesh
|
|
|
+ resource.
|
|
|
|
|
|
**Sky:**
|
|
|
|
|
|
- Panorama sky (using an HDRI).
|
|
|
- Procedural sky and Physically-based sky that respond to the DirectionalLights in the scene.
|
|
|
- Support for custom sky shaders, which can be animated.
|
|
|
-- Radiance can be updated in real-time depending on the quality settings chosen.
|
|
|
+- The radiance map used for ambient and specular light can be updated in
|
|
|
+ real-time depending on the quality settings chosen.
|
|
|
|
|
|
**Fog:**
|
|
|
|
|
@@ -224,6 +282,14 @@ Vulkan renderer.
|
|
|
- Support for automatic fog color depending on the sky color (aerial perspective).
|
|
|
- Support for sun scattering in the fog.
|
|
|
|
|
|
+**Volumetric fog:**
|
|
|
+
|
|
|
+- Global volumetric fog that reacts to lights and shadows.
|
|
|
+- Volumetric fog can take indirect light into account when using VoxelGI or SDFGI.
|
|
|
+- Fog volume nodes that can be placed to add fog to specific areas (or remove fog from specific areas).
|
|
|
+- Each fog volume can have its own custom shader.
|
|
|
+- Can be used together with traditional fog.
|
|
|
+
|
|
|
**Particles:**
|
|
|
|
|
|
- GPU-based particles with support for subemitters (2D + 3D), trails (2D + 3D),
|
|
@@ -241,12 +307,13 @@ Vulkan renderer.
|
|
|
**Post-processing:**
|
|
|
|
|
|
- Tonemapping (Linear, Reinhard, Filmic, ACES).
|
|
|
-- Automatic exposure adjustments based on viewport brightness.
|
|
|
-- Near and far depth of field with adjustable bokeh simulation.
|
|
|
-- Screen-space ambient occlusion at half or full resolution.
|
|
|
+- Automatic exposure adjustments based on viewport brightness (and manual exposure override).
|
|
|
+- Near and far depth of field with adjustable bokeh simulation (box, hexagon, circle).
|
|
|
+- Screen-space ambient occlusion (SSAO) at half or full resolution.
|
|
|
- Glow/bloom with optional bicubic upscaling and several blend modes available:
|
|
|
Screen, Soft Light, Add, Replace, Mix.
|
|
|
-- Color correction using a one-dimensional ramp.
|
|
|
+- Glow can have a colored dirt map texture, acting as a lens dirt effect.
|
|
|
+- Color correction using a one-dimensional ramp or a 3D LUT texture.
|
|
|
- Roughness limiter to reduce the impact of specular aliasing.
|
|
|
- Brightness, contrast and saturation adjustments.
|
|
|
|
|
@@ -266,6 +333,8 @@ Vulkan renderer.
|
|
|
|
|
|
- Fast approximate antialiasing (FXAA).
|
|
|
- Multi-sample antialiasing (MSAA).
|
|
|
+- Super-sample antialiasing (SSAA) using bilinear 3D scaling and a 3D resolution scale above 1.0.
|
|
|
+- Alpha antialiasing, alpha to coverage and alpha hashing on a per-material basis.
|
|
|
|
|
|
Most of these effects can be adjusted for better performance or to further
|
|
|
improve quality. This can be helpful when using Godot for offline rendering.
|
|
@@ -273,7 +342,7 @@ improve quality. This can be helpful when using Godot for offline rendering.
|
|
|
3D tools
|
|
|
^^^^^^^^
|
|
|
|
|
|
-- Built-in meshes: cube, cylinder/cone, (hemi)sphere, prism, plane, quad.
|
|
|
+- Built-in meshes: cube, cylinder/cone, (hemi)sphere, prism, plane, quad, ribbon, tube.
|
|
|
- Tools for :ref:`procedural geometry generation <doc_procedural_geometry>`.
|
|
|
- :ref:`Constructive solid geometry <doc_csg_tools>` (intended for prototyping).
|
|
|
- Path3D node to represent a path in 3D space.
|
|
@@ -282,6 +351,8 @@ improve quality. This can be helpful when using Godot for offline rendering.
|
|
|
- PathFollow3D node to make nodes follow a Path3D.
|
|
|
|
|
|
- 3D geometry helper class.
|
|
|
+- Support for exporting the current scene as a glTF 2.0 file, both from the editor
|
|
|
+ and at run-time from an exported project.
|
|
|
|
|
|
3D physics
|
|
|
^^^^^^^^^^
|
|
@@ -373,7 +444,11 @@ Audio
|
|
|
|
|
|
- Support for re-routable :ref:`audio buses <doc_audio_buses>` and effects
|
|
|
with dozens of effects included.
|
|
|
-- Listener3D node to listen from a position different than the camera in 3D.
|
|
|
+- Support for polyphony (playing several sounds from a single AudioStreamPlayer node).
|
|
|
+- Support for real-time pitch scaling and random pitch.
|
|
|
+- Support for sequential/random sample selection, including repetition prevention
|
|
|
+ when using random sample selection.
|
|
|
+- Listener2D and Listener3D nodes to listen from a position different than the camera.
|
|
|
- Audio input to record microphones.
|
|
|
- MIDI input.
|
|
|
|
|
@@ -408,6 +483,8 @@ Import
|
|
|
- Collada (.dae).
|
|
|
- Wavefront OBJ (static scenes only, can be loaded directly as a mesh).
|
|
|
|
|
|
+- Support for loading glTF 2.0 scenes at run-time, including from an exported project.
|
|
|
+
|
|
|
Input
|
|
|
^^^^^
|
|
|
|
|
@@ -434,7 +511,7 @@ Navigation
|
|
|
|
|
|
- A* algorithm in 2D and 3D.
|
|
|
- Navigation meshes with dynamic obstacle avoidance.
|
|
|
-- Generate navigation meshes from the editor.
|
|
|
+- Generate navigation meshes from the editor or at run-time (including from an exported project).
|
|
|
|
|
|
Networking
|
|
|
^^^^^^^^^^
|
|
@@ -462,10 +539,15 @@ Internationalization
|
|
|
- Full support for Unicode including emoji.
|
|
|
- Store localization strings using :ref:`CSV <doc_internationalizing_games>`
|
|
|
or :ref:`gettext <doc_localization_using_gettext>`.
|
|
|
+
|
|
|
+ - Support for generating gettext POT and PO files from the editor.
|
|
|
+
|
|
|
- Use localized strings in your project automatically in GUI elements or by
|
|
|
using the ``tr()`` function.
|
|
|
-- Support for bidirectional typesetting and text shaping and OpenType localized forms.
|
|
|
+- Support for pluralization and translation contexts when using gettext translations.
|
|
|
+- Support for bidirectional typesetting, text shaping and OpenType localized forms.
|
|
|
- Automatic UI mirroring for right-to-left locales.
|
|
|
+- Support for pseudolocalization to test your project for i18n-friendliness.
|
|
|
|
|
|
Windowing and OS integration
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
@@ -475,16 +557,22 @@ Windowing and OS integration
|
|
|
- Request attention (will cause the title bar to blink on most platforms).
|
|
|
- Fullscreen mode.
|
|
|
|
|
|
- - Doesn't use exclusive fullscreen, so the screen resolution can't be changed this way.
|
|
|
- Use a Viewport with a different resolution instead.
|
|
|
+ - Doesn't use exclusive fullscreen, which allows for fast alt-tabbing. The
|
|
|
+ downside is that the screen resolution can't be changed this way. For 3D
|
|
|
+ resolution scaling, use the appropriatee project settings or the equivalent
|
|
|
+ Viewport property. For 2D resolution scaling, use a second Viewport node
|
|
|
+ to render the game world with a different size.
|
|
|
|
|
|
- Borderless windows (fullscreen or non-fullscreen).
|
|
|
- Ability to keep a window always on top.
|
|
|
-- Transparent windows with per-pixel transparency.
|
|
|
- Global menu integration on macOS.
|
|
|
- Execute commands in a blocking or non-blocking manner.
|
|
|
- Open file paths and URLs using default or custom protocol handlers (if registered on the system).
|
|
|
- Parse custom command line arguments.
|
|
|
+- Any Godot binary (editor or exported project) can be
|
|
|
+ :ref:`used as a headless server <doc_exporting_for_dedicated_servers>`
|
|
|
+ by starting it with the ``--headless`` command line argument.
|
|
|
+ This allows running the engine without a GPU or display server.
|
|
|
|
|
|
Mobile
|
|
|
^^^^^^
|
|
@@ -518,7 +606,8 @@ The editor UI can easily be extended in many ways using add-ons.
|
|
|
- Labels.
|
|
|
- RichTextLabel for :ref:`text formatted using BBCode <doc_bbcode_in_richtextlabel>`.
|
|
|
- Trees (can also be used to represent tables).
|
|
|
-- Containers (horizontal, vertical, grid, center, margin, draggable splitter, ...).
|
|
|
+- Color picker with RGB and HSV modes.
|
|
|
+- Containers (horizontal, vertical, grid, flow, center, margin, aspect ratio, draggable splitter, ...).
|
|
|
- Controls can be rotated and scaled.
|
|
|
|
|
|
**Sizing:**
|
|
@@ -543,7 +632,7 @@ The editor UI can easily be extended in many ways using add-ons.
|
|
|
|
|
|
- Procedural vector-based theming using :ref:`class_StyleBoxFlat`.
|
|
|
|
|
|
- - Supports rounded/beveled corners, drop shadows and per-border widths.
|
|
|
+ - Supports rounded/beveled corners, drop shadows, per-border widths and antialiasing.
|
|
|
|
|
|
- Texture-based theming using :ref:`class_StyleBoxTexture`.
|
|
|
|
|
@@ -574,7 +663,7 @@ File formats
|
|
|
- Read and write :ref:`class_JSON` files.
|
|
|
- Read and write INI-style configuration files using :ref:`class_ConfigFile`.
|
|
|
|
|
|
- - Can (de)serialize any Godot datatype, including Vector, Color, ...
|
|
|
+ - Can (de)serialize any Godot datatype, including Vector2/3, Color, ...
|
|
|
|
|
|
- Read XML files using :ref:`class_XMLParser`.
|
|
|
- Pack game data into a PCK file (custom format optimized for fast seeking),
|
|
@@ -587,10 +676,10 @@ Miscellaneous
|
|
|
|
|
|
- :ref:`Low-level access to servers <doc_using_servers>` which allows bypassing
|
|
|
the scene tree's overhead when needed.
|
|
|
-- Command line interface for automation.
|
|
|
+- :ref:`Command line interface <doc_command_line_tutorial>` for automation.
|
|
|
|
|
|
- Export and deploy projects using continuous integration platforms.
|
|
|
- - `Completion scripts <https://github.com/godotengine/godot/tree/master/misc/dist/shell>`__
|
|
|
+ - `Shell completion scripts <https://github.com/godotengine/godot/tree/master/misc/dist/shell>`__
|
|
|
are available for Bash, zsh and fish.
|
|
|
|
|
|
- Support for :ref:`C++ modules <doc_custom_modules_in_c++>` statically linked
|