Add dedicated skinned rendering, pose restoration, shared Material and Material Instance slots, registry-driven components, Surface/Solari integration, transactional schema upgrades, navigation authoring, documentation, and evaluation evidence.
60 lines
2.0 KiB
Rust
60 lines
2.0 KiB
Rust
#![expect(missing_docs, reason = "Not all docs are written yet, see #3492.")]
|
|
|
|
//! Provides raytraced lighting.
|
|
//!
|
|
//! See [`SolariPlugins`] for more info.
|
|
//!
|
|
//! 
|
|
|
|
extern crate alloc;
|
|
|
|
pub mod pathtracer;
|
|
pub mod realtime;
|
|
pub mod scene;
|
|
|
|
/// The solari prelude.
|
|
///
|
|
/// This includes the most common types in this crate, re-exported for your convenience.
|
|
pub mod prelude {
|
|
pub use super::SolariPlugins;
|
|
pub use crate::realtime::SolariLighting;
|
|
pub use crate::scene::RaytracingMesh3d;
|
|
}
|
|
|
|
use crate::realtime::SolariLightingPlugin;
|
|
use crate::scene::RaytracingScenePlugin;
|
|
use bevy_app::{PluginGroup, PluginGroupBuilder};
|
|
use bevy_render::settings::WgpuFeatures;
|
|
|
|
/// An experimental set of plugins for raytraced lighting.
|
|
///
|
|
/// This plugin group provides:
|
|
/// * [`SolariLightingPlugin`] - Raytraced direct and indirect lighting.
|
|
/// * [`RaytracingScenePlugin`] - BLAS building, resource and lighting binding.
|
|
///
|
|
/// There's also:
|
|
/// * [`pathtracer::PathtracingPlugin`] - A non-realtime pathtracer for validation purposes (not added by default).
|
|
///
|
|
/// To get started, add this plugin to your app, and then add `RaytracingMesh3d` plus either a Bevy
|
|
/// standard material or a validated Blacksite Surface material to your entities.
|
|
pub struct SolariPlugins;
|
|
|
|
impl PluginGroup for SolariPlugins {
|
|
fn build(self) -> PluginGroupBuilder {
|
|
PluginGroupBuilder::start::<Self>()
|
|
.add(RaytracingScenePlugin)
|
|
.add(SolariLightingPlugin)
|
|
}
|
|
}
|
|
|
|
impl SolariPlugins {
|
|
/// [`WgpuFeatures`] required for these plugins to function.
|
|
pub fn required_wgpu_features() -> WgpuFeatures {
|
|
WgpuFeatures::EXPERIMENTAL_RAY_QUERY
|
|
| WgpuFeatures::BUFFER_BINDING_ARRAY
|
|
| WgpuFeatures::TEXTURE_BINDING_ARRAY
|
|
| WgpuFeatures::SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING
|
|
| WgpuFeatures::PARTIALLY_BOUND_BINDING_ARRAY
|
|
}
|
|
}
|