Struct mallumo::AnisotropicVXGIModule
[−]
[src]
pub struct AnisotropicVXGIModule { pub voxel_albedo_base: Texture3D, pub voxel_albedo_mip: [Texture3D; 6], pub voxel_normal_base: Texture3D, pub voxel_emission_base: Texture3D, pub voxel_radiance_base: Texture3D, pub voxel_radiance_mip: [Texture3D; 6], pub voxel_static_flag: Texture3D, pub shadowmap_evsm_texture: Texture2D, pub shadowmap_texture: Texture2D, // some fields omitted }
Holds all structures and pipelines required for Anisotropic VXGI.
Fields
voxel_albedo_base: Texture3D
voxel_albedo_mip: [Texture3D; 6]
voxel_normal_base: Texture3D
voxel_emission_base: Texture3D
voxel_radiance_base: Texture3D
voxel_radiance_mip: [Texture3D; 6]
voxel_static_flag: Texture3D
shadowmap_evsm_texture: Texture2D
shadowmap_texture: Texture2D
Methods
impl AnisotropicVXGIModule
[src]
fn new(
levels: usize,
shadowmap_resolution: usize
) -> Result<AnisotropicVXGIModule, Error>
[src]
levels: usize,
shadowmap_resolution: usize
) -> Result<AnisotropicVXGIModule, Error>
Constructs new Anisotropic VXGI Module.
In most cases levels 8 or 9 are enough(10 levels take ~15.6 GB of GPU memory).
fn clear_base_volume(&mut self, voxel_type: TextureType) -> Result<(), Error>
[src]
Clears base level 3D texture.
fn clear_base_volumes(&mut self) -> Result<(), Error>
[src]
Clears base level 3D textures.
fn voxelize(
&mut self,
renderer: &mut Renderer,
shape_lists: &[&ShapeList],
static_geometry: bool
) -> Result<(), Error>
[src]
&mut self,
renderer: &mut Renderer,
shape_lists: &[&ShapeList],
static_geometry: bool
) -> Result<(), Error>
Voxelizes given scene.
fn mipmap_voxels(
&mut self,
renderer: &mut Renderer,
voxel_type: TextureType
) -> Result<(), Error>
[src]
&mut self,
renderer: &mut Renderer,
voxel_type: TextureType
) -> Result<(), Error>
Mipmaps base volume 3D textures into secondary mipmap 3D textures.
fn inject_radiance(
&mut self,
renderer: &mut Renderer,
sun: &Sun
) -> Result<(), Error>
[src]
&mut self,
renderer: &mut Renderer,
sun: &Sun
) -> Result<(), Error>
Injects Sun light into voxels.
fn draw_voxels(
&self,
renderer: &mut Renderer,
camera: &Camera,
voxel_type: TextureType,
level: usize,
_side: usize
) -> Result<(), Error>
[src]
&self,
renderer: &mut Renderer,
camera: &Camera,
voxel_type: TextureType,
level: usize,
_side: usize
) -> Result<(), Error>
Draws debug voxels.
fn render_shadowmap(
&mut self,
renderer: &mut Renderer,
sun: &Sun,
shape_lists: &[&ShapeList]
) -> Result<(), Error>
[src]
&mut self,
renderer: &mut Renderer,
sun: &Sun,
shape_lists: &[&ShapeList]
) -> Result<(), Error>
Renders exponential variance shadow map.
fn render<T: Camera>(
&mut self,
renderer: &mut Renderer,
deferred_collector: &DefferedCollector,
camera: &T,
point_lights: Option<&LightGroup>,
sun: Option<&Sun>,
mode: LightPassMode
) -> Result<(), Error>
[src]
&mut self,
renderer: &mut Renderer,
deferred_collector: &DefferedCollector,
camera: &T,
point_lights: Option<&LightGroup>,
sun: Option<&Sun>,
mode: LightPassMode
) -> Result<(), Error>
Renders scene with given mode into main framebuffer.