bevy-hikari
is an implementation of global illumination for Bevy.
After Bevy releasing 0.8, the plugin moves to deferred hybrid path tracing.
For the old version (0.1.x) which uses voxel cone tracing with anisotropic mip-mapping, please check the bevy-0.6
branch.
| bevy
| bevy-hikari
|
| ------ | ------------- |
| 0.6 | 0.1 |
| 0.8 | 0.2 |
HikariPlugin
to your App
after PbrPlugin
camera_render_graph
to CameraRenderGraph::new(bevy_hikari::graph::NAME)
```rust use bevy::{pbr::PbrPlugin, prelude::, render::camera::CameraRenderGraph}; use bevy_hikari::prelude::; use std::f32::consts::PI;
fn main() { App::new() .addplugins(DefaultPlugins) .addplugin(PbrPlugin) // Add Hikari after PBR .addplugin(HikariPlugin) .addstartup_system(setup) .run(); }
fn setup(
mut commands: Commands,
mut meshes: ResMut
// Only directional light is supported
commands.spawn_bundle(DirectionalLightBundle {
directional_light: DirectionalLight {
illuminance: 10000.0,
..Default::default()
},
transform: Transform {
translation: Vec3::new(0.0, 5.0, 0.0),
rotation: Quat::from_euler(EulerRot::XYZ, -PI / 4.0, PI / 4.0, 0.0),
..Default::default()
},
..Default::default()
});
// Camera
commands.spawn_bundle(Camera3dBundle {
// Set the camera's render graph to Hikari's
camera_render_graph: CameraRenderGraph::new(bevy_hikari::graph::NAME),
transform: Transform::from_xyz(-2.0, 2.5, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
..Default::default()
});
} ```
You can check the video here.
Just like Bevy, all code in this repository is dual-licensed under either:
at your option.
"Fire Extinguisher" model and textures Copyright (C) 2021 by Cameron 'cron' Fraser. Released under Creative Commons Attribution-ShareAlike 4.0 International (CC-BY-SA 4.0) license.