@@ -44,10 +44,11 @@ affect that pixel.
4444This approach can greatly speed up rendering performance on desktop hardware,
4545but is substantially less efficient on mobile.
4646
47- Forward Mobile
48- ^^^^^^^^^^^^^^
47+ Mobile
48+ ^^^^^^
4949
5050This is a forward renderer that uses a traditional single-pass approach to lighting.
51+ Internally, it is called **Forward Mobile **.
5152
5253Intended for mobile platforms, but can also run on desktop platforms. This
5354rendering method is optimized to perform well on mobile GPUs. Mobile GPUs have a
@@ -92,7 +93,7 @@ features result in a notable performance penalty.
9293
9394On desktop platforms, the use of sub-passes won't have any impact on
9495performance. However, this rendering method can still perform better than
95- Clustered Forward in simple scenes thanks to its lower complexity and lower
96+ Forward+ in simple scenes thanks to its lower complexity and lower
9697bandwidth usage. This is especially noticeable on low-end GPUs, integrated
9798graphics or in VR applications.
9899
@@ -110,11 +111,11 @@ Compatibility
110111 This is the only rendering method available when using the OpenGL driver.
111112 This rendering method is not available when using Vulkan or Direct3D 12.
112113
113- This is a traditional (non-clustered) forward renderer. It's intended for old
114- GPUs that don't have Vulkan support, but still works very efficiently on newer
115- hardware. Specifically, it is optimized for older and lower-end mobile devices
116- However, many optimizations carry over making it a good choice for older and
117- lower-end desktop as well.
114+ This is a traditional (non-clustered) forward renderer. Internally, it is called
115+ ** GL Compatibility **. It's intended for old GPUs that don't have Vulkan support,
116+ but still works very efficiently on newer hardware. Specifically, it is optimized
117+ for older and lower-end mobile devices. However, many optimizations carry over
118+ making it a good choice for older and lower-end desktop as well.
118119
119120Like the Mobile renderer, the Compatibility renderer uses an R10G10B10A2 UNORM
120121texture for 3D rendering. Unlike the mobile renderer, colors are tonemapped and
@@ -134,7 +135,7 @@ looks and needs to be kept in mind when designing scenes for the Compatibility
134135renderer.
135136
136137Given its low-end focus, this rendering method does not provide high-end
137- rendering features (even less so compared to Forward Mobile). Most
138+ rendering features (even less so compared to Mobile). Most
138139post-processing effects are not available.
139140
140141Why not deferred rendering?
@@ -250,11 +251,11 @@ Summary of rendering drivers/methods
250251The following rendering API + rendering method combinations are currently possible:
251252
252253- Vulkan + Forward+
253- - Vulkan + Forward Mobile
254+ - Vulkan + Mobile
254255- Direct3D 12 + Forward+
255- - Direct3D 12 + Forward Mobile
256+ - Direct3D 12 + Mobile
256257- Metal + Forward+ (via MoltenVK)
257- - Metal + Forward Mobile (via MoltenVK)
258+ - Metal + Mobile (via MoltenVK)
258259- OpenGL + Compatibility
259260
260261Each combination has its own limitations and performance characteristics. Make
@@ -352,14 +353,14 @@ this.
352353**Core GLSL material shaders: **
353354
354355- Forward+: `servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl >`__
355- - Forward Mobile: `servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl >`__
356+ - Mobile: `servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl >`__
356357- Compatibility: `drivers/gles3/shaders/scene.glsl <https://github.com/godotengine/godot/blob/4.2/drivers/gles3/shaders/scene.glsl >`__
357358
358359**Material shader generation: **
359360
360361- `scene/resources/material.cpp <https://github.com/godotengine/godot/blob/4.2/scene/resources/material.cpp >`__
361362
362- **Other GLSL shaders for Forward+ and Forward Mobile rendering methods: **
363+ **Other GLSL shaders for Forward+ and Mobile rendering methods: **
363364
364365- `servers/rendering/renderer_rd/shaders/ <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_rd/shaders/ >`__
365366- `modules/lightmapper_rd/ <https://github.com/godotengine/godot/blob/4.2/modules/lightmapper_rd >`__
@@ -373,9 +374,9 @@ this.
373374
374375.. note ::
375376
376- The following is only applicable in the Forward+ and Forward Mobile
377+ The following is only applicable in the Forward+ and Mobile
377378 rendering methods, not in Compatibility. Multiple Viewports can be used to
378- emulate this when using the Compatibility backend , or to perform 2D
379+ emulate this when using the Compatibility renderer , or to perform 2D
379380 resolution scaling.
380381
3813822D and 3D are rendered to separate buffers, as 2D rendering in Godot is performed
@@ -424,7 +425,7 @@ with large amounts of lights.
424425 The Forward+ and Mobile rendering methods don't feature 2D batching yet, but
425426it's planned for a future release.
426427
427- The Compatibility backend features 2D batching to improve performance, which is
428+ The Compatibility renderer features 2D batching to improve performance, which is
428429especially noticeable with lots of text on screen.
429430
430431MSAA can be enabled in 2D to provide "automatic" line and polygon antialiasing,
@@ -448,7 +449,7 @@ used to calculate particle collisions in 2D.
448449Batching and instancing
449450^^^^^^^^^^^^^^^^^^^^^^^
450451
451- In the Forward+ backend , Vulkan instancing is used to group rendering
452+ In the Forward+ renderer , Vulkan instancing is used to group rendering
452453of identical objects for performance. This is not as fast as static mesh
453454merging, but it still allows instances to be culled individually.
454455
@@ -457,10 +458,9 @@ Light, decal and reflection probe rendering
457458
458459.. note ::
459460
460- Reflection probe and decal rendering are currently not available in the
461- Compatibility backend.
461+ Decal rendering is currently not available in the Compatibility renderer.
462462
463- As its name implies, the Forward+ backend uses clustered lighting. This
463+ The Forward+ renderer uses clustered lighting. This
464464allows using as many lights as you want; performance largely depends on screen
465465coverage. Shadow-less lights can be almost free if they don't occupy much space
466466on screen.
@@ -469,12 +469,12 @@ All rendering methods also support rendering up to 8 directional lights at the
469469same time (albeit with lower shadow quality when more than one light has shadows
470470enabled).
471471
472- The Forward Mobile backend uses a single-pass lighting approach, with a
472+ The Mobile renderer uses a single-pass lighting approach, with a
473473limitation of 8 OmniLights + 8 SpotLights affecting each Mesh *resource * (plus a
474474limitation of 256 OmniLights + 256 SpotLights in the camera view). These limits
475475are hardcoded and can't be adjusted in the project settings.
476476
477- The Compatibility backend uses a hybrid single-pass + multi-pass lighting
477+ The Compatibility renderer uses a hybrid single-pass + multi-pass lighting
478478approach. Lights without shadows are rendered in a single pass. Lights with
479479shadows are rendered in multiple passes. This is required for performance
480480reasons on mobile devices. As a result, performance does not scale well with
@@ -494,34 +494,34 @@ separate static shadow rendering from dynamic shadow rendering, but this is
494494planned in a future release.
495495
496496Clustering is also used for reflection probes and decal rendering in the
497- Forward+ backend .
497+ Forward+ renderer .
498498
499499Shadow mapping
500500^^^^^^^^^^^^^^
501501
502- Both Forward+ and Forward Mobile methods use
502+ Both Forward+ and Mobile methods use
503503:abbr: `PCF ( Percentage Closer Filtering ) ` to filter shadow maps and create a
504504soft penumbra. Instead of using a fixed PCF pattern, these methods use a vogel
505505disk pattern which allows for changing the number of samples and smoothly
506506changing the quality.
507507
508508Godot also supports percentage-closer soft shadows (PCSS) for more realistic
509- shadow penumbra rendering. PCSS shadows are limited to the Forward+
510- backend as they're too demanding to be usable in the Forward Mobile backend .
509+ shadow penumbra rendering. PCSS shadows are limited to the Forward+ renderer
510+ as they're too demanding to be usable in the Mobile renderer .
511511PCSS also uses a vogel-disk shaped kernel.
512512
513513Additionally, both shadow-mapping techniques rotate the kernel on a per-pixel
514514basis to help soften under-sampling artifacts.
515515
516- The Compatibility backend doesn't support shadow mapping for any light types yet.
516+ The Compatibility renderer supports shadow mapping for DirectionalLight3D,
517+ OmniLight3D, and SpotLight3D lights.
517518
518519Temporal antialiasing
519520^^^^^^^^^^^^^^^^^^^^^
520521
521522.. note ::
522523
523- Only available in the Forward+ backend, not the Forward Mobile or
524- Compatibility methods.
524+ Only available in the Forward+ renderer, not the Mobile or Compatibility renderers.
525525
526526Godot uses a custom TAA implementation based on the old TAA implementation from
527527`Spartan Engine <https://github.com/PanosK92/SpartanEngine >`__.
@@ -553,13 +553,12 @@ Global illumination
553553
554554.. note ::
555555
556- VoxelGI and SDFGI are only available in the Forward+ backend , not the
557- Forward Mobile or Compatibility methods .
556+ VoxelGI and SDFGI are only available in the Forward+ renderer , not the
557+ Mobile or Compatibility renderers .
558558
559- LightmapGI *baking * is only available in the Forward+ and Forward Mobile
560- methods, and can only be performed within the editor (not in an exported
561- project). LightmapGI *rendering * will eventually be supported by the
562- Compatibility backend.
559+ LightmapGI *baking * is only available in the Forward+ and Mobile renderers,
560+ and can only be performed within the editor (not in an exported
561+ project). LightmapGI *rendering * is supported by the Compatibility renderer.
563562
564563Godot supports voxel-based GI (VoxelGI), signed distance field GI (SDFGI) and
565564lightmap baking and rendering (LightmapGI). These techniques can be used
@@ -569,7 +568,7 @@ Lightmap baking happens on the GPU using Vulkan compute shaders. The GPU-based
569568lightmapper is implemented in the LightmapperRD class, which inherits from the
570569Lightmapper class. This allows for implementing additional lightmappers, paving
571570the way for a future port of the CPU-based lightmapper present in Godot 3.x.
572- This would allow baking lightmaps while using the Compatibility backend .
571+ This would allow baking lightmaps while using the Compatibility renderer .
573572
574573**Core GI C++ code: **
575574
@@ -605,14 +604,13 @@ Depth of field
605604
606605.. note ::
607606
608- Only available in the Forward+ and Forward Mobile methods , not the
609- Compatibility backend .
607+ Only available in the Forward+ and Mobile renderers , not the
608+ Compatibility renderer .
610609
611- The Forward+ and Forward Mobile methods use different approaches to
612- DOF rendering, with different visual results. This is done to best
613- match the performance characteristics of the target hardware. In Clustered
614- Forward, DOF is performed using a compute shader. In Forward Mobile, DOF is
615- performed using a fragment shader (raster).
610+ The Forward+ and Mobile renderers use different approaches to DOF rendering, with
611+ different visual results. This is done to best match the performance characteristics
612+ of the target hardware. In Forward+, DOF is performed using a compute shader. In
613+ Mobile, DOF is performed using a fragment shader (raster).
616614
617615Box, hexagon and circle bokeh shapes are available (from fastest to slowest).
618616Depth of field can optionally be jittered every frame to improve its appearance
@@ -626,7 +624,7 @@ when temporal antialiasing is enabled.
626624
627625- `servers/rendering/renderer_rd/shaders/effects/bokeh_dof.glsl <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_rd/shaders/effects/bokeh_dof.glsl >`__
628626
629- **Depth of field GLSL shader (raster - used for Forward Mobile): **
627+ **Depth of field GLSL shader (raster - used for Mobile): **
630628
631629- `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 >`__
632630
@@ -635,10 +633,9 @@ Screen-space effects (SSAO, SSIL, SSR, SSS)
635633
636634.. note ::
637635
638- Only available in the Forward+ backend, not the Forward Mobile or
639- Compatibility methods.
636+ Only available in the Forward+ renderer, not the Mobile or Compatibility renderers.
640637
641- The Forward+ backend supports screen-space ambient occlusion,
638+ The Forward+ renderer supports screen-space ambient occlusion,
642639screen-space indirect lighting, screen-space reflections and subsurface scattering.
643640
644641SSAO uses an implementation derived from Intel's
@@ -712,8 +709,7 @@ Volumetric fog
712709
713710.. note ::
714711
715- Only available in the Forward+ backend, not the Forward Mobile or
716- Compatibility methods.
712+ Only available in the Forward+ renderer, not the Mobile or Compatibility renderers.
717713
718714.. seealso ::
719715
0 commit comments