use bevy::{pbr::{CascadeShadowConfigBuilder, DirectionalLightShadowMap}, prelude::*}; use bevy_inspector_egui::quick::WorldInspectorPlugin; use dexterous_developer::{hot_bevy_main, InitialPlugins}; #[hot_bevy_main] pub fn bevy_main(initial_plugins: impl InitialPlugins) { App::new() .add_plugins(initial_plugins.initialize::()) .add_plugins(WorldInspectorPlugin::new()) .insert_resource(DirectionalLightShadowMap { size: 4096 }) .add_systems(Startup, setup) .run(); } fn setup(mut commands: Commands, asset_server: Res) { commands.spawn( Camera3dBundle { transform: Transform::from_xyz(0.7, 0.7, 1.0) .looking_at(Vec3::new(0.0, 0.3, 0.0), Vec3::Y), ..default() } ); commands.spawn(DirectionalLightBundle { directional_light: DirectionalLight { shadows_enabled: true, ..default() }, // This is a relatively small scene, so use tighter shadow // cascade bounds than the default for better quality. // We also adjusted the shadow map to be larger since we're // only using a single cascade. cascade_shadow_config: CascadeShadowConfigBuilder { num_cascades: 1, maximum_distance: 1.6, ..default() } .into(), ..default() }); commands.spawn(SceneBundle { scene: asset_server.load("example.gltf#Scene0"), ..default() }); }