@@ -32,7 +32,7 @@ Rendering methods
32
32
-----------------
33
33
34
34
Forward+
35
- ^^^^^^^^
35
+ ~~~~~~~~
36
36
37
37
This is a forward renderer that uses a *clustered * approach to lighting.
38
38
@@ -45,7 +45,7 @@ This approach can greatly speed up rendering performance on desktop hardware,
45
45
but is substantially less efficient on mobile.
46
46
47
47
Mobile
48
- ^^^^^^
48
+ ~~~~~~
49
49
50
50
This is a forward renderer that uses a traditional single-pass approach to lighting.
51
51
Internally, it is called **Forward Mobile **.
@@ -104,7 +104,7 @@ post-processing effects are also not available.
104
104
.. _doc_internal_rendering_architecture_compatibility :
105
105
106
106
Compatibility
107
- ^^^^^^^^^^^^^
107
+ ~~~~~~~~~~~~~
108
108
109
109
.. note ::
110
110
@@ -139,7 +139,7 @@ rendering features (even less so compared to Mobile). Most
139
139
post-processing effects are not available.
140
140
141
141
Why not deferred rendering?
142
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^
142
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
143
143
144
144
Forward rendering generally provides a better tradeoff for performance versus
145
145
flexibility, especially when a clustered approach to lighting is used. While
@@ -161,7 +161,7 @@ Rendering drivers
161
161
Godot 4 supports the following graphics APIs:
162
162
163
163
Vulkan
164
- ^^^^^^
164
+ ~~~~~~
165
165
166
166
This is the main driver in Godot 4, with most of the development focus going
167
167
towards this driver.
@@ -185,7 +185,7 @@ Vulkan driver.
185
185
- `drivers/d3d12/d3d12_context.cpp <https://github.com/godotengine/godot/blob/master/drivers/d3d12/d3d12_context.cpp >`__
186
186
187
187
Direct3D 12
188
- ^^^^^^^^^^^
188
+ ~~~~~~~~~~~
189
189
190
190
Like Vulkan, the Direct3D 12 driver targets modern platforms only. It is
191
191
designed to target both Windows and Xbox (whereas Vulkan can't be used directly on Xbox).
@@ -206,7 +206,7 @@ See the `pull request that introduced Direct3D 12 support <https://github.com/go
206
206
for more information.
207
207
208
208
Metal
209
- ^^^^^
209
+ ~~~~~
210
210
211
211
Godot supports Metal rendering via `MoltenVK <https://github.com/KhronosGroup/MoltenVK >`__,
212
212
as macOS and iOS do not support Vulkan natively.
@@ -224,7 +224,7 @@ A native Metal driver is planned in the future for better performance and
224
224
compatibility.
225
225
226
226
OpenGL
227
- ^^^^^^
227
+ ~~~~~~
228
228
229
229
This driver uses OpenGL ES 3.0 and targets legacy and low-end devices that don't
230
230
support Vulkan. OpenGL 3.3 Core Profile is used on desktop platforms to run this
@@ -246,7 +246,7 @@ Many advanced features are not supported with this driver, as it targets low-end
246
246
devices first and foremost.
247
247
248
248
Summary of rendering drivers/methods
249
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
249
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
250
250
251
251
The following rendering API + rendering method combinations are currently possible:
252
252
@@ -447,14 +447,14 @@ used to calculate particle collisions in 2D.
447
447
-----------------------
448
448
449
449
Batching and instancing
450
- ^^^^^^^^^^^^^^^^^^^^^^^
450
+ ~~~~~~~~~~~~~~~~~~~~~~~
451
451
452
452
In the Forward+ renderer, Vulkan instancing is used to group rendering
453
453
of identical objects for performance. This is not as fast as static mesh
454
454
merging, but it still allows instances to be culled individually.
455
455
456
456
Light, decal and reflection probe rendering
457
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
457
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
458
458
459
459
.. note ::
460
460
@@ -497,7 +497,7 @@ Clustering is also used for reflection probes and decal rendering in the
497
497
Forward+ renderer.
498
498
499
499
Shadow mapping
500
- ^^^^^^^^^^^^^^
500
+ ~~~~~~~~~~~~~~
501
501
502
502
Both Forward+ and Mobile methods use
503
503
:abbr: `PCF ( Percentage Closer Filtering ) ` to filter shadow maps and create a
@@ -517,7 +517,7 @@ The Compatibility renderer supports shadow mapping for DirectionalLight3D,
517
517
OmniLight3D, and SpotLight3D lights.
518
518
519
519
Temporal antialiasing
520
- ^^^^^^^^^^^^^^^^^^^^^
520
+ ~~~~~~~~~~~~~~~~~~~~~
521
521
522
522
.. note ::
523
523
@@ -549,7 +549,7 @@ RenderingDevice abstraction as opposed to using AMD's reference code directly.
549
549
- `thirdparty/amd-fsr2/ <https://github.com/godotengine/godot/tree/master/thirdparty/amd-fsr2 >`__
550
550
551
551
Global illumination
552
- ^^^^^^^^^^^^^^^^^^^
552
+ ~~~~~~~~~~~~~~~~~~~
553
553
554
554
.. note ::
555
555
@@ -600,7 +600,7 @@ This would allow baking lightmaps while using the Compatibility renderer.
600
600
- `modules/lightmapper_rd/lm_blendseams.glsl <https://github.com/godotengine/godot/blob/4.2/modules/lightmapper_rd/lm_blendseams.glsl >`__
601
601
602
602
Depth of field
603
- ^^^^^^^^^^^^^^
603
+ ~~~~~~~~~~~~~~
604
604
605
605
.. note ::
606
606
@@ -629,7 +629,7 @@ when temporal antialiasing is enabled.
629
629
- `servers/rendering/renderer_rd/shaders/effects/bokeh_dof_raster.glsl <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_rd/shaders/effects/bokeh_dof_raster.glsl >`__
630
630
631
631
Screen-space effects (SSAO, SSIL, SSR, SSS)
632
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
632
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
633
633
634
634
.. note ::
635
635
@@ -678,7 +678,7 @@ SSR is always performed at half resolution to improve performance.
678
678
- `servers/rendering/renderer_rd/shaders/effects/subsurface_scattering.glsl <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_rd/shaders/effects/subsurface_scattering.glsl >`__
679
679
680
680
Sky rendering
681
- ^^^^^^^^^^^^^
681
+ ~~~~~~~~~~~~~
682
682
683
683
.. seealso ::
684
684
@@ -705,7 +705,7 @@ article.
705
705
**Sky rendering GLSL shader: **
706
706
707
707
Volumetric fog
708
- ^^^^^^^^^^^^^^
708
+ ~~~~~~~~~~~~~~
709
709
710
710
.. note ::
711
711
@@ -740,7 +740,7 @@ article.
740
740
- `servers/rendering/renderer_rd/shaders/environment/volumetric_fog_process.glsl <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_rd/shaders/environment/volumetric_fog_process.glsl >`__
741
741
742
742
Occlusion culling
743
- ^^^^^^^^^^^^^^^^^
743
+ ~~~~~~~~~~~~~~~~~
744
744
745
745
While modern GPUs can handle drawing a lot of triangles, the number of draw
746
746
calls in complex scenes can still be a bottleneck (even with Vulkan and Direct3D 12).
@@ -782,7 +782,7 @@ RendererSceneOcclusionCull.
782
782
- `servers/rendering/renderer_scene_occlusion_cull.cpp <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_scene_occlusion_cull.cpp >`__
783
783
784
784
Visibility range (LOD)
785
- ^^^^^^^^^^^^^^^^^^^^^^^
785
+ ~~~~~~~~~~~~~~~~~~~~~~
786
786
787
787
Godot supports manually authored hierarchical level of detail (HLOD), with
788
788
distances specified by the user in the inspector.
@@ -796,7 +796,7 @@ same mesh with different LODs (to allow for split screen rendering to look corre
796
796
- `servers/rendering/renderer_scene_cull.cpp <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_scene_cull.cpp >`__
797
797
798
798
Automatic mesh LOD
799
- ^^^^^^^^^^^^^^^^^^
799
+ ~~~~~~~~~~~~~~~~~~
800
800
801
801
The ImporterMesh class is used for the 3D mesh import workflow in the editor.
802
802
Its ``generate_lods() `` function handles generating using the
0 commit comments