Browse Source

Merge pull request #5709 from Calinou/update-list-of-features-4.0alpha

Update List of features for 4.0alpha4
Max Hilbrunner 3 years ago
parent
commit
706599af7b
2 changed files with 134 additions and 43 deletions
  1. 132 43
      about/list_of_features.rst
  2. 2 0
      community/asset_library/using_assetlib.rst

+ 132 - 43
about/list_of_features.rst

@@ -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

+ 2 - 0
community/asset_library/using_assetlib.rst

@@ -101,6 +101,8 @@ new functions:
 You can learn how to submit assets to the Library, and what the asset submission
 guidelines are, in the next part of this tutorial, :ref:`doc_submitting_to_assetlib`.
 
+.. _doc_using_assetlib_editor:
+
 In the editor
 -------------