Skip to content

Commit f3710a3

Browse files
authored
affine atmosphere (#20711)
# Objective - dont mat4 inverse ## Solution - use affine ## Testing - atmosphere example
1 parent 783d92f commit f3710a3

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

crates/bevy_pbr/src/atmosphere/resources.rs

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use bevy_ecs::{
1111
world::{FromWorld, World},
1212
};
1313
use bevy_image::ToExtents;
14-
use bevy_math::{Mat4, Vec3};
14+
use bevy_math::{Affine3A, Mat4, Vec3A};
1515
use bevy_render::{
1616
extract_component::ComponentUniforms,
1717
render_resource::{binding_types::*, *},
@@ -530,23 +530,20 @@ pub(super) fn prepare_atmosphere_transforms(
530530
};
531531

532532
for (entity, view) in &views {
533-
let world_from_view = view.world_from_view.to_matrix();
534-
let camera_z = world_from_view.z_axis.truncate();
535-
let camera_y = world_from_view.y_axis.truncate();
533+
let world_from_view = view.world_from_view.affine();
534+
let camera_z = world_from_view.matrix3.z_axis;
535+
let camera_y = world_from_view.matrix3.y_axis;
536536
let atmo_z = camera_z
537537
.with_y(0.0)
538538
.try_normalize()
539539
.unwrap_or_else(|| camera_y.with_y(0.0).normalize());
540-
let atmo_y = Vec3::Y;
540+
let atmo_y = Vec3A::Y;
541541
let atmo_x = atmo_y.cross(atmo_z).normalize();
542-
let world_from_atmosphere = Mat4::from_cols(
543-
atmo_x.extend(0.0),
544-
atmo_y.extend(0.0),
545-
atmo_z.extend(0.0),
546-
world_from_view.w_axis,
547-
);
542+
let world_from_atmosphere =
543+
Affine3A::from_cols(atmo_x, atmo_y, atmo_z, world_from_view.translation);
548544

549-
let atmosphere_from_world = world_from_atmosphere.inverse();
545+
let atmosphere_from_world = Mat4::from(world_from_atmosphere.inverse());
546+
let world_from_atmosphere = Mat4::from(world_from_atmosphere);
550547

551548
commands.entity(entity).insert(AtmosphereTransformsOffset {
552549
index: writer.write(&AtmosphereTransform {

0 commit comments

Comments
 (0)