//! This example shows how to configure Multi-Sample Anti-Aliasing. Setting the sample count higher //! will result in smoother edges, but it will also increase the cost to render those edges. The //! range should generally be somewhere between 1 (no multi sampling, but cheap) to 8 (crisp but //! expensive). //! Note that web currently only supports 1 or 4 samples. use bevy::prelude::*; fn main() { App::new() .insert_resource(Msaa::default()) .add_plugins(DefaultPlugins) .add_systems(Startup, setup) .add_systems(Update, cycle_msaa) .run(); } /// set up a simple 3D scene fn setup( mut commands: Commands, mut meshes: ResMut>, mut materials: ResMut>, ) { info!("Press '1/2/4/8' respectively to set MSAA sample count"); info!("Using 4x MSAA"); // cube commands.spawn(PbrBundle { mesh: meshes.add(Mesh::from(shape::Cube { size: 2.0 })), material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()), ..default() }); // light commands.spawn(PointLightBundle { transform: Transform::from_xyz(4.0, 8.0, 4.0), ..default() }); // camera commands.spawn(Camera3dBundle { transform: Transform::from_xyz(-3.0, 3.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y), ..default() }); } fn cycle_msaa(input: Res>, mut msaa: ResMut) { if input.just_pressed(KeyCode::Key1) { info!("Not using MSAA"); *msaa = Msaa::Off; } if input.just_pressed(KeyCode::Key2) { info!("Using 2x MSAA"); *msaa = Msaa::Sample2; } if input.just_pressed(KeyCode::Key4) { info!("Using 4x MSAA"); *msaa = Msaa::Sample4; } if input.just_pressed(KeyCode::Key8) { info!("Using 8x MSAA"); *msaa = Msaa::Sample8; } }