mirror of
https://github.com/godotengine/godot-docs.git
synced 2025-12-31 17:49:03 +03:00
Update List of features for 4.0alpha4
This commit is contained in:
@@ -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 and WOFF1.
|
||||
- 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).
|
||||
to CPU lightmapping). Baking can only be performed from the editor,
|
||||
not in exported projects.
|
||||
|
||||
- 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.
|
||||
- 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
|
||||
|
||||
Reference in New Issue
Block a user