diff --git a/assets/models/GltfPrimitives/gltf_primitives.glb b/assets/models/GltfPrimitives/gltf_primitives.glb index 9a53f99cfe..81a1300547 100644 Binary files a/assets/models/GltfPrimitives/gltf_primitives.glb and b/assets/models/GltfPrimitives/gltf_primitives.glb differ diff --git a/examples/3d/query_gltf_primitives.rs b/examples/3d/query_gltf_primitives.rs index bbc91737fe..780abeb977 100644 --- a/examples/3d/query_gltf_primitives.rs +++ b/examples/3d/query_gltf_primitives.rs @@ -3,16 +3,10 @@ use std::f32::consts::PI; -use bevy::{ - gltf::GltfMaterialName, - pbr::{CascadeShadowConfigBuilder, DirectionalLightShadowMap}, - prelude::*, - render::mesh::VertexAttributeValues, -}; +use bevy::{gltf::GltfMaterialName, prelude::*, render::mesh::VertexAttributeValues}; fn main() { App::new() - .insert_resource(DirectionalLightShadowMap { size: 4096 }) .add_plugins(DefaultPlugins) .add_systems(Startup, setup) .add_systems(Update, find_top_material_and_mesh) @@ -36,7 +30,7 @@ fn find_top_material_and_mesh( if let Color::Hsla(ref mut hsla) = material.base_color { *hsla = hsla.rotate_hue(time.delta_secs() * 100.0); } else { - material.base_color = Color::from(Hsla::hsl(0.0, 0.8, 0.5)); + material.base_color = Color::from(Hsla::hsl(0.0, 0.9, 0.7)); } } @@ -44,12 +38,14 @@ fn find_top_material_and_mesh( if let Some(VertexAttributeValues::Float32x3(positions)) = mesh.attribute_mut(Mesh::ATTRIBUTE_POSITION) { - positions[0] = ( - ops::sin(2.0 * PI * time.elapsed_secs()), - positions[0][1], - positions[0][2], - ) - .into(); + for position in positions { + *position = ( + position[0], + 1.5 + 0.5 * ops::sin(time.elapsed_secs() / 2.0), + position[2], + ) + .into(); + } } } } @@ -59,38 +55,15 @@ fn find_top_material_and_mesh( fn setup(mut commands: Commands, asset_server: Res) { commands.spawn(( Camera3d::default(), - Transform::from_xyz(0.6, 1.6, 11.3).looking_at(Vec3::new(0.0, 0.0, 3.0), Vec3::Y), - EnvironmentMapLight { - diffuse_map: asset_server.load("environment_maps/pisa_diffuse_rgb9e5_zstd.ktx2"), - specular_map: asset_server.load("environment_maps/pisa_specular_rgb9e5_zstd.ktx2"), - intensity: 500.0, - rotation: Quat::IDENTITY, - }, + Transform::from_xyz(4.0, 4.0, 12.0).looking_at(Vec3::new(0.0, 0.0, 0.5), Vec3::Y), )); commands.spawn(( - 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. - CascadeShadowConfigBuilder { - num_cascades: 1, - maximum_distance: 1.6, - ..default() - } - .build(), - )); - commands.spawn(( - SceneRoot(asset_server.load( - GltfAssetLabel::Scene(0).from_asset("models/GltfPrimitives/gltf_primitives.glb"), - )), - Transform { - rotation: Quat::from_rotation_y(-90.0 / 180.0 * PI), - ..default() - }, + Transform::from_rotation(Quat::from_euler(EulerRot::ZYX, 0.0, 1.0, -PI / 4.)), + DirectionalLight::default(), )); + + commands.spawn(SceneRoot(asset_server.load( + GltfAssetLabel::Scene(0).from_asset("models/GltfPrimitives/gltf_primitives.glb"), + ))); }