From 0bf732a3c0f7385a3da0519d07f07da2173cf044 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Tue, 22 Mar 2022 15:24:30 +0100 Subject: [PATCH] Update List of features for 4.0alpha4 --- about/list_of_features.rst | 175 ++++++++++++++++----- community/asset_library/using_assetlib.rst | 2 + 2 files changed, 134 insertions(+), 43 deletions(-) diff --git a/about/list_of_features.rst b/about/list_of_features.rst index 23b72d0d977..2ebb29c098c 100644 --- a/about/list_of_features.rst +++ b/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) `__. 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 `. 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 ` such as Visual Studio Code or Vim. - GDScript :ref:`debugger `. - 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 ` 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 ` using GDScript to add new + features or speed up your workflow. +- :ref:`Download projects from the asset library ` + 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 `__. - 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 `. - :ref:`Constructive solid geometry ` (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 ` 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 ` or :ref:`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 ` + 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 `. - 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 ` which allows bypassing the scene tree's overhead when needed. -- Command line interface for automation. +- :ref:`Command line interface ` for automation. - Export and deploy projects using continuous integration platforms. - - `Completion scripts `__ + - `Shell completion scripts `__ are available for Bash, zsh and fish. - Support for :ref:`C++ modules ` statically linked diff --git a/community/asset_library/using_assetlib.rst b/community/asset_library/using_assetlib.rst index 3ca1a6e31ab..0bc7bde5307 100644 --- a/community/asset_library/using_assetlib.rst +++ b/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 -------------