pub enum RenderPath {
BasicForward,
HighFidelity,
}Expand description
Determines the pipeline topology — which render passes are assembled, whether HDR intermediates are allocated, and which post-processing chain is available.
Anti-aliasing is configured independently via
[RendererSettings::aa_mode], keeping rasterization state orthogonal
to topology selection.
§Path Comparison
| Capability | BasicForward | HighFidelity |
|---|---|---|
| Hardware MSAA | ✅ (configurable) | ✅ (configurable) |
| HDR render targets | ❌ | ✅ |
| Bloom | ❌ | ✅ |
| Tone Mapping | ❌ | ✅ |
| FXAA (post-process AA) | ❌ | ✅ |
| TAA | ❌ | ✅ |
| Depth-Normal Prepass | ❌ | ✅ (auto-skipped w/ MSAA) |
| SSAO | ❌ | ✅ |
| SSSS | ❌ | ✅ |
Variants§
BasicForward
Lightweight forward rendering pipeline.
Renders the scene directly to the surface (or an LDR intermediate when MSAA is active). No HDR render targets, no bloom, no tone mapping.
Best suited for:
- Low-end / mobile devices
- Simple 3D or 2D/UI scenes that do not need advanced lighting
- Scenarios where hardware MSAA is preferred over post-process AA
HighFidelity
High-fidelity hybrid rendering pipeline.
Uses HDR floating-point render targets and a full post-processing chain
(Bloom → Tone Mapping → FXAA / TAA). When MSAA is enabled via
AntiAliasingMode::MSAA, scene-drawing passes render into
multi-sampled intermediates that are resolved at the appropriate
pipeline stages.
Includes Depth-Normal Prepass (auto-managed), SSAO, SSSS, and TAA.
Best suited for:
- Desktop / high-end mobile with modern GPUs
- PBR scenes requiring physically-correct lighting and effects
- Any application that benefits from bloom, tone mapping, or SSAO
Implementations§
Source§impl RenderPath
impl RenderPath
Sourcepub fn supports_post_processing(&self) -> bool
pub fn supports_post_processing(&self) -> bool
Returns true when this path enables post-processing (HDR targets,
bloom, tone mapping, FXAA, etc.).
Sourcepub fn requires_z_prepass(&self) -> bool
pub fn requires_z_prepass(&self) -> bool
Returns true when this path supports a depth-normal prepass.
When hardware MSAA is enabled, the prepass Early-Z benefit is lost for the main scene draw; the prepass may still be scheduled to supply depth/normals to SSAO and SSSS.
Sourcepub fn main_color_format(&self, surface_format: TextureFormat) -> TextureFormat
pub fn main_color_format(&self, surface_format: TextureFormat) -> TextureFormat
Returns the main color attachment format for scene rendering.
HighFidelity: HDR float format (Rgba16Float)BasicForward: the supplied surface format (LDR)
Trait Implementations§
Source§impl Clone for RenderPath
impl Clone for RenderPath
Source§fn clone(&self) -> RenderPath
fn clone(&self) -> RenderPath
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RenderPath
impl Debug for RenderPath
Source§impl Default for RenderPath
impl Default for RenderPath
Source§fn default() -> RenderPath
fn default() -> RenderPath
Source§impl Hash for RenderPath
impl Hash for RenderPath
Source§impl PartialEq for RenderPath
impl PartialEq for RenderPath
impl Copy for RenderPath
impl Eq for RenderPath
impl StructuralPartialEq for RenderPath
Auto Trait Implementations§
impl Freeze for RenderPath
impl RefUnwindSafe for RenderPath
impl Send for RenderPath
impl Sync for RenderPath
impl Unpin for RenderPath
impl UnsafeUnpin for RenderPath
impl UnwindSafe for RenderPath
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().