diff --git a/about/faq.rst b/about/faq.rst index a5864dba9b4..4f13dd46be7 100644 --- a/about/faq.rst +++ b/about/faq.rst @@ -393,6 +393,11 @@ Some new versions are safer to upgrade to than others. In general, whether you should upgrade depends on your project's circumstances. See :ref:`doc_release_policy_should_i_upgrade_my_project` for more information. +Should I use the Forward+, Mobile, or Compatibility renderer? +------------------------------------------------------------- + +You can find a detailed comparison of the renderers in :ref:`doc_renderers`. + I would like to contribute! How can I get started? -------------------------------------------------- diff --git a/about/list_of_features.rst b/about/list_of_features.rst index 1fa78622871..af5f7094b5c 100644 --- a/about/list_of_features.rst +++ b/about/list_of_features.rst @@ -108,6 +108,8 @@ Rendering advanced graphics backend, suited for low-end desktop and mobile platforms. Used by default on the web platform. +See :ref:`doc_renderers` for a detailed comparison of the rendering methods. + 2D graphics ----------- @@ -279,7 +281,8 @@ Rendering 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 Forward Mobile backend, up to 8 reflection probes can be displayed per mesh - resource. + resource. When using the Compatibility renderer, up to 2 reflection probes can + be displayed per mesh resource. **Decals:** diff --git a/tutorials/2d/2d_antialiasing.rst b/tutorials/2d/2d_antialiasing.rst index 8170f04a699..a867de4020c 100644 --- a/tutorials/2d/2d_antialiasing.rst +++ b/tutorials/2d/2d_antialiasing.rst @@ -55,6 +55,9 @@ nodes, you can use 2D multisample antialiasing instead. Multisample antialiasing (MSAA) ------------------------------- +*This is only available in the Forward+ and Mobile renderers, not the +Compatibility renderer.* + Before enabling MSAA in 2D, it's important to understand what MSAA will operate on. MSAA in 2D follows similar restrictions as in 3D. While it does not introduce any blurriness, its scope of application is limited. The main diff --git a/tutorials/3d/3d_antialiasing.rst b/tutorials/3d/3d_antialiasing.rst index 24582b28241..5eec5ce7a13 100644 --- a/tutorials/3d/3d_antialiasing.rst +++ b/tutorials/3d/3d_antialiasing.rst @@ -41,6 +41,8 @@ detailed below. Multisample antialiasing (MSAA) ------------------------------- +*This is available in all renderers.* + This technique is the "historical" way of dealing with aliasing. MSAA is very effective on geometry edges (especially at higher levels). MSAA does not introduce any blurriness whatsoever. @@ -83,8 +85,8 @@ Note that alpha antialiasing is not used here: Temporal antialiasing (TAA) --------------------------- -*This is only available in the Clustered Forward backend, not the Forward Mobile -or Compatibility backends.* +*This is only available in the Forward+ renderer, not the Mobile or Compatibility +renderers.* Temporal antialiasing works by *converging* the result of previously rendered frames into a single, high-quality frame. This is a continuous process that @@ -115,6 +117,9 @@ Comparison between no antialiasing (left) and TAA (right): AMD FidelityFX Super Resolution 2.2 (FSR2) ------------------------------------------ +*This is only available in the Forward+ renderer, not the Mobile or Compatibility +renderers.* + Since Godot 4.2, there is built-in support for `AMD FidelityFX Super Resolution `__ 2.2. This is an :ref:`upscaling method ` @@ -148,8 +153,8 @@ Comparison between no antialiasing (left) and FSR2 at native resolution (right): Fast approximate antialiasing (FXAA) ------------------------------------ -*This is only available in the Clustered Forward and Forward Mobile backends, -not the Compatibility backend.* +*This is only available in the Forward+ and Mobile renderers, not the Compatibility +renderer.* Fast approximate antialiasing is a post-processing antialiasing solution. It is faster to run than any other antialiasing technique and also supports @@ -175,8 +180,7 @@ Comparison between no antialiasing (left) and FXAA (right): Supersample antialiasing (SSAA) ------------------------------- -*This is only available in the Clustered Forward and Forward Mobile backends, -not the Compatibility backend.* +*This is available in all renderers.* Supersampling provides the highest quality of antialiasing possible, but it's also the most expensive. It works by shading every pixel in the scene multiple @@ -216,8 +220,8 @@ Comparison between no antialiasing (left) and various SSAA levels (right): Screen-space roughness limiter ------------------------------ -*This is only available in the Clustered Forward and Forward Mobile backends, -not the Compatibility backend.* +*This is only available in the Forward+ and Mobile renderers, not the Compatibility +renderer.* This is not an edge antialiasing method, but it is a way of reducing specular aliasing in 3D. diff --git a/tutorials/3d/global_illumination/introduction_to_global_illumination.rst b/tutorials/3d/global_illumination/introduction_to_global_illumination.rst index 3c2d8abcf43..0e52cc3b529 100644 --- a/tutorials/3d/global_illumination/introduction_to_global_illumination.rst +++ b/tutorials/3d/global_illumination/introduction_to_global_illumination.rst @@ -121,7 +121,7 @@ In order of performance from fastest to slowest: - ReflectionProbes with their update mode set to **Always** are much more expensive than probes with their update mode set to **Once** (the default). Suited for integrated graphics when using the **Once** update mode. - *Available when using the Forward Mobile backend. Will be available in the Compatibility backend in later releases.* + *Available in all renderers.* - **LightmapGI:** @@ -131,7 +131,8 @@ In order of performance from fastest to slowest: Directional information can be enabled before baking to improve visuals at a small performance cost (and at the cost of larger file sizes). Suited for integrated graphics. - *Available when using the Forward Mobile backend. Will be available in the Compatibility backend in later releases.* + *Available in all renderers. However, baking lightmaps requires hardware + with RenderingDevice support.* - **VoxelGI:** @@ -139,14 +140,14 @@ In order of performance from fastest to slowest: The VoxelGI rendering quality can be adjusted in the Project Settings. The rendering can optionally be performed at half resolution (and then linearly scaled) to improve performance significantly. - **Not available** *when using the Forward Mobile or Compatibility backends.* + **Not available** *when using the Mobile or Compatibility renderers.* - **Screen-space indirect lighting (SSIL):** - The SSIL quality and number of blur passes can be adjusted in the Project Settings. By default, SSIL rendering is performed at half resolution (and then linearly scaled) to ensure a reasonable performance level. - **Not available** *when using the Forward Mobile or Compatibility backends.* + **Not available** *when using the Mobile or Compatibility renderers.* - **SDFGI:** @@ -154,7 +155,7 @@ In order of performance from fastest to slowest: The number of rays thrown per frame can be adjusted in the Project Settings. The rendering can optionally be performed at half resolution (and then linearly scaled) to improve performance significantly. - **Not available** *when using the Forward Mobile or Compatibility backends.* + **Not available** *when using the Mobile or Compatibility renderers.* Visuals ^^^^^^^ diff --git a/tutorials/3d/standard_material_3d.rst b/tutorials/3d/standard_material_3d.rst index 456acc963bb..5d1a2a619be 100644 --- a/tutorials/3d/standard_material_3d.rst +++ b/tutorials/3d/standard_material_3d.rst @@ -465,6 +465,8 @@ mapping. Subsurface Scattering --------------------- +*This is only available in the Forward+ renderer, not the Mobile or Compatibility +renderers.* This effect emulates light that penetrates an object's surface, is scattered, and then comes out. It is useful to create realistic skin, marble, colored diff --git a/tutorials/rendering/img/renderers_rendering_layers.webp b/tutorials/rendering/img/renderers_rendering_layers.webp new file mode 100644 index 00000000000..32420a8f109 Binary files /dev/null and b/tutorials/rendering/img/renderers_rendering_layers.webp differ diff --git a/tutorials/rendering/index.rst b/tutorials/rendering/index.rst index 4805593054d..2848da179c3 100644 --- a/tutorials/rendering/index.rst +++ b/tutorials/rendering/index.rst @@ -16,3 +16,4 @@ Rendering multiple_resolutions jitter_stutter compositor + renderers diff --git a/tutorials/rendering/renderers.rst b/tutorials/rendering/renderers.rst new file mode 100644 index 00000000000..4b124d599f6 --- /dev/null +++ b/tutorials/rendering/renderers.rst @@ -0,0 +1,356 @@ +.. _doc_renderers: + +Renderers +========= + +.. seealso:: + + 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 :ref:`doc_internal_rendering_architecture`. + +Introduction +------------ + +Godot 4 includes three renderers: + +- **Forward+**, sometimes called **Clustered Forward**. The most advanced renderer, + suited for desktop platforms only. Used by default on desktop platforms. This + renderer uses **Vulkan**, **Direct3D 12**, or **Metal** as the rendering driver, + and it uses the **RenderingDevice** backend. +- **Mobile**, sometimes called **Forward Mobile**. Fewer features, but renders + simple scenes faster. Suited for mobile and desktop platforms. Used by default + on mobile platforms. This renderer uses **Vulkan**, **Direct3D 12**, or **Metal** + as the rendering driver, and it uses the **RenderingDevice** backend. +- **Compatibility**, sometimes called **GL Compatibility**. The least advanced + renderer, suited for low-end desktop and mobile platforms. Used by default on + the web platform. This renderer uses **OpenGL** as the rendering driver. + +Renderers, rendering drivers, and RenderingDevice +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. figure:: img/renderers_rendering_layers.webp + :alt: Diagram of rendering layers. The Compatibility renderer runs on the OpenGL + driver. The Forward+ and Mobile renderers run on RenderingDevice, which can use + Vulkan, Direct3D 12, or Metal as a rendering driver. + :align: center + + Godot's rendering abstraction layers. + +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: + +Choose **Forward+** if: + + - 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. + +Choose **Mobile** if: + + - You are developing for newer mobile devices, 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. + +Choose **Compatibility** if: + + - You are developing for older mobile devices, or older desktop devices. The + Compatibility renderer supports the widest range of hardware. + - 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. + +Keep in mind every game is unique, and this is only a starting point. For example, +you might choose to use the Compatibility renderer even though you have the latest +GPU, so you can support the widest range of hardware. Or you might want to use the +Forward+ renderer for a 2D game, so you can advanced features like compute shaders. + +Switching between renderers +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In the editor, you can always switch between renderers by clicking on the renderer +name in the upper-right corner of the editor. + +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 +:ref:`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 :ref:`doc_list_of_features`. + +Hardware with RenderingDevice support is hardware which can run Vulkan, Direct3D +12, or Metal. + +Overall comparison +~~~~~~~~~~~~~~~~~~ + ++---------------------+--------------------------+--------------------------+--------------------------+ +| Feature | Compatibility | Mobile | Forward+ | ++=====================+==========================+==========================+==========================+ +| **Required** | Older or low-end. | Newer or high-end. | Newer or high-end. | +| **hardware** | | Requires Vulkan, Direct3D| Requires Vulkan, Direct3D| +| | | 12, or Metal support. | 12, or Metal support. | ++---------------------+--------------------------+--------------------------+--------------------------+ +| Runs on new hardware| ✔️ Yes. | ✔️ Yes. | ✔️ Yes. | ++---------------------+--------------------------+--------------------------+--------------------------+ +| Runs on old and | ✔️ Yes. | ✔️ Yes, but slower than | ✔️ Yes, but slowest of | +| low-end hardware | | Compatibility. | all renderers. | ++---------------------+--------------------------+--------------------------+--------------------------+ +| Runs on hardware | ✔️ Yes. | ❌ No. | ❌ No. | +| without | | | | +| RenderingDevice | | | | +| support | | | | ++---------------------+--------------------------+--------------------------+--------------------------+ +| **Target platforms**| Mobile, low-end desktop, | Mobile, desktop. | Desktop. | +| | web. | | | +| | | | | ++---------------------+--------------------------+--------------------------+--------------------------+ +| Desktop | ✔️ Yes. | ✔️ Yes. | ✔️ Yes. | ++---------------------+--------------------------+--------------------------+--------------------------+ +| Mobile | ✔️ Yes (low-end). | ✔️ Yes (high-end). | ⚠️ Supported, but poorly | +| | | | optimized. Use Mobile or | +| | | | Compatibility instead. | ++---------------------+--------------------------+--------------------------+--------------------------+ +| XR | ✔️ Yes. | ✔️ Yes. | ✔️ Yes. | +| | | | | ++---------------------+--------------------------+--------------------------+--------------------------+ +| Web | ✔️ Yes. | ❌ No. | ❌ No. | ++---------------------+--------------------------+--------------------------+--------------------------+ +| 2D Games | ✔️ Yes. | ✔️ Yes, but | ✔️ Yes, but | +| | | Compatibility is usually | Compatibility is usually | +| | | good enough for 2D. | good enough for 2D. | ++---------------------+--------------------------+--------------------------+--------------------------+ +| 3D Games | ✔️ Yes. | ✔️ Yes. | ✔️ Yes. | ++---------------------+--------------------------+--------------------------+--------------------------+ +| **Feature set** | 2D and core 3D features. | Most rendering features. | All rendering features. | ++---------------------+--------------------------+--------------------------+--------------------------+ +| 2D rendering | ✔️ Yes. | ✔️ Yes. | ✔️ Yes. | +| features | | | | ++---------------------+--------------------------+--------------------------+--------------------------+ +| Core 3D rendering | ✔️ Yes. | ✔️ Yes. | ✔️ Yes. | +| features | | | | ++---------------------+--------------------------+--------------------------+--------------------------+ +| Advanced | ❌ No. | ⚠️ Yes, limited by | ✔️ Yes. All rendering | +| rendering features | | mobile hardware. | features are supported. | ++---------------------+--------------------------+--------------------------+--------------------------+ +| New features | ⚠️ Some new rendering | ✔️ Most new rendering | ✔️ All new features are | +| | features are added to | features are added to | added to Forward+. As the| +| | Compatibility. Features | Mobile. Mobile usually | focus of new development,| +| | are added after Mobile | gets new features as | Forward+ gets features | +| | and Forward+. | Forward+ does. | first. | ++---------------------+--------------------------+--------------------------+--------------------------+ +| Rendering cost | Low base cost, but | Medium base cost, and | Highest base cost, and | +| | high scaling cost. | medium scaling cost. | low scaling cost. | ++---------------------+--------------------------+--------------------------+--------------------------+ +| Rendering driver | OpenGL. | Vulkan, Direct3D 12, or | Vulkan, Direct3D 12, or | +| | | Metal. | Metal. | ++---------------------+--------------------------+--------------------------+--------------------------+ + +Lights and shadows +~~~~~~~~~~~~~~~~~~ + +See :ref:`doc_lights_and_shadows` for more information. + ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Feature | Compatibility | Mobile | Forward+ | ++=========================+==========================+==========================+==========================+ +| Lighting approach | Forward | Forward | Clustered Forward | +| | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Maximum | 8 per mesh. Can be | 8 per mesh, 256 per view.| 512 per cluster. Can be | +| OmniLights | increased. | | increased. | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Maximum | 8 per mesh. Can be | 8 per mesh, 256 per view.| 512 per cluster. Can be | +| SpotLights | increased. | | increased. | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Maximum | 8 | 8 | 8 | +| DirectionalLights | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| PCSS for | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. | +| OmniLight and SpotLight | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| PCSS for | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. | +| DirectionalLight | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Light projector | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. | +| textures | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ + +Global Illumination +~~~~~~~~~~~~~~~~~~~ + +See :ref:`doc_introduction_to_global_illumination` for more information. + ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Feature | Compatibility | Mobile | Forward+ | ++=========================+==========================+==========================+==========================+ +| ReflectionProbe | ✔️ Supported, 2 per | ✔️ Supported, 8 per | ✔️ Supported, unlimited. | +| | mesh. | mesh. | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| LightmapGI | ⚠️ Rendering of baked | ✔️ Supported. | ✔️ Supported. | +| | lightmaps is supported. | | | +| | Baking requires hardware | | | +| | with RenderingDevice | | | +| | support. | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| VoxelGI | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. | +| | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Screen-Space | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. | +| Indirect Lighting (SSIL)| | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Signed Distance Field | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. | +| Global Illumination | | | | +| (SDFGI) | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ + +Environment and post-processing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +See :ref:`doc_environment_and_post_processing` for more information. + ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Feature | Compatibility | Mobile | Forward+ | ++=========================+==========================+==========================+==========================+ +| Fog (Depth and Height) | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Volumetric Fog | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Tonemapping | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Screen-Space Reflections| ❌ Not supported. | ❌ Not supported. | ✔️ Supported. | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Screen-Space Ambient | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. | +| Occlusion (SSAO) | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Screen-Space | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. | +| Indirect Lighting (SSIL)| | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Signed Distance Field | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. | +| Global Illumination | | | | +| (SDFGI) | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Glow | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Adjustments | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Custom post-processing | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. | +| with fullscreen quad | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Custom post-processing | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. | +| with CompositorEffects | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ + +Antialiasing +~~~~~~~~~~~~ + +See :ref:`doc_3d_antialiasing` for more information. + ++-------------------+--------------------------+--------------------------+--------------------------+ +| Feature | Compatibility | Mobile | Forward+ | ++===================+==========================+==========================+==========================+ +| MSAA 3D | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. | ++-------------------+--------------------------+--------------------------+--------------------------+ +| MSAA 2D | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. | ++-------------------+--------------------------+--------------------------+--------------------------+ +| TAA | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. | ++-------------------+--------------------------+--------------------------+--------------------------+ +| FSR2 | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. | ++-------------------+--------------------------+--------------------------+--------------------------+ +| FXAA | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. | ++-------------------+--------------------------+--------------------------+--------------------------+ +| SSAA | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. | ++-------------------+--------------------------+--------------------------+--------------------------+ +| Screen-space | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. | +| roughness limiter | | | | ++-------------------+--------------------------+--------------------------+--------------------------+ + +StandardMaterial features +~~~~~~~~~~~~~~~~~~~~~~~~~ + +See :ref:`doc_standard_material_3d` for more information. + ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Feature | Compatibility | Mobile | Forward+ | ++=========================+==========================+==========================+==========================+ +| Sub-surface scattering | ❌ Not supported. | ❌ Not supported. | ✔️ Supported. | +| | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ + +Shader features +~~~~~~~~~~~~~~~ + +See :ref:`doc_shading_reference` for more information. + ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Feature | Compatibility | Mobile | Forward+ | ++=========================+==========================+==========================+==========================+ +| Screen texture | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Depth texture | ✔️ Supported. | ✔️ Supported. | ✔️ Supported. | +| | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Normal/Roughness texture| ❌ Not supported. | ❌ Not supported. | ✔️ Supported. | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Compute shaders | ❌ Not supported. | ⚠️ Supported, but comes | ✔️ Supported. | +| | | with a performance | | +| | | penalty on older devices.| | ++-------------------------+--------------------------+--------------------------+--------------------------+ + +Other features +~~~~~~~~~~~~~~ + ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Feature | Compatibility | Mobile | Forward+ | ++=========================+==========================+==========================+==========================+ +| Variable rate | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. | +| shading | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Decals | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Depth of field blur | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| Adaptive and Mailbox | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. | +| VSync modes | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| 2D HDR Viewport | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. | ++-------------------------+--------------------------+--------------------------+--------------------------+ +| RenderingDevice | ❌ Not supported. | ✔️ Supported. | ✔️ Supported. | +| access | | | | ++-------------------------+--------------------------+--------------------------+--------------------------+ diff --git a/tutorials/shaders/shader_reference/index.rst b/tutorials/shaders/shader_reference/index.rst index e6822c55b34..ab82b325641 100644 --- a/tutorials/shaders/shader_reference/index.rst +++ b/tutorials/shaders/shader_reference/index.rst @@ -1,5 +1,7 @@ :allow_comments: False +.. _doc_shading_reference: + Shading reference =================