summaryrefslogtreecommitdiff
path: root/engine/src/rendering
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src/rendering')
-rw-r--r--engine/src/rendering/main_render_pass.rs8
-rw-r--r--engine/src/rendering/shader/default.rs32
2 files changed, 19 insertions, 21 deletions
diff --git a/engine/src/rendering/main_render_pass.rs b/engine/src/rendering/main_render_pass.rs
index 622a087..c3278fa 100644
--- a/engine/src/rendering/main_render_pass.rs
+++ b/engine/src/rendering/main_render_pass.rs
@@ -56,7 +56,7 @@ use crate::texture::{
Wrapping as TextureWrapping,
WHITE_1X1_ASSET_LABEL as TEXTURE_WHITE_1X1_ASSET_LABEL,
};
-use crate::transform::WorldPosition;
+use crate::transform::Transform;
use crate::vector::Vec3;
use crate::windowing::window::Window;
@@ -88,7 +88,7 @@ pub fn add_main_render_pass(
renderable_query: Query<RenderableEntity<'_>>,
camera_query: Query<(
&Camera,
- &WorldPosition,
+ &Transform,
&ActiveCamera,
Traverse<(With<Scene>, With<ActiveScene>), TraverseUp, ChildOf>,
)>,
@@ -117,7 +117,7 @@ pub fn add_main_render_pass(
return Ok(());
};
- let Some((camera, camera_world_pos, _)) = camera_query.iter().next() else {
+ let Some((camera, camera_transform, _)) = camera_query.iter().next() else {
tracing::trace!("No active camera");
return Ok(());
};
@@ -350,7 +350,7 @@ pub fn add_main_render_pass(
.unwrap(),
);
- let mut view = camera.to_view_matrix(camera_world_pos.position);
+ let mut view = camera.to_view_matrix(camera_transform.position);
view.translate(&Vec3 { x: 0.0, y: 0.0, z: 0.0 });
diff --git a/engine/src/rendering/shader/default.rs b/engine/src/rendering/shader/default.rs
index 4c59a1b..59d0c9e 100644
--- a/engine/src/rendering/shader/default.rs
+++ b/engine/src/rendering/shader/default.rs
@@ -35,7 +35,7 @@ use crate::rendering::{
};
use crate::scene::{Active as ActiveScene, Scene};
use crate::texture::WHITE_1X1_ASSET_LABEL as TEXTURE_WHITE_1X1_ASSET_LABEL;
-use crate::transform::{Scale, Transform, WorldPosition};
+use crate::transform::Transform;
use crate::windowing::window::Window;
pub static ASSET_LABEL: LazyLock<AssetLabel> = LazyLock::new(|| AssetLabel {
@@ -63,14 +63,14 @@ pub fn enqueue_set_shader_bindings(
renderable_query: Query<RenderableEntity<'_>>,
camera_query: Query<(
&Camera,
- &WorldPosition,
+ &Transform,
&ActiveCamera,
Traverse<(With<Scene>, With<ActiveScene>), TraverseUp, ChildOf>,
)>,
window_query: Query<(&Window, &SurfaceSpec, With<RenderingTargetWindow>)>,
point_light_query: Query<(
&PointLight,
- &WorldPosition,
+ &Transform,
Traverse<(With<Scene>, With<ActiveScene>), TraverseUp, ChildOf>,
)>,
directional_light_query: Query<(
@@ -85,7 +85,7 @@ pub fn enqueue_set_shader_bindings(
let assets = assets.get()?;
let shader_context = shader_context.get()?;
- let Some((camera, camera_world_pos, _)) = camera_query.iter().next() else {
+ let Some((camera, camera_transform, _)) = camera_query.iter().next() else {
tracing::trace!("No active camera");
return Ok(());
};
@@ -100,8 +100,7 @@ pub fn enqueue_set_shader_bindings(
model,
environmental_lighting,
material_flags,
- world_pos,
- scale,
+ transform,
shader,
mut pending_shader_bindings,
),
@@ -143,12 +142,12 @@ pub fn enqueue_set_shader_bindings(
.unwrap(),
);
- let model_matrix = Transform {
- position: world_pos.as_deref().cloned().unwrap_or_default().position,
- scale: scale.as_deref().cloned().unwrap_or_default().scale,
- }
- .to_matrix();
+ let transform = match transform.as_deref() {
+ Some(transform) => transform,
+ None => &Transform::default(),
+ };
+ let model_matrix = transform.to_matrix();
let inverted_model_matrix = model_matrix.inverse();
let model_material = match model_spec.find_first_material(&assets) {
@@ -190,7 +189,7 @@ pub fn enqueue_set_shader_bindings(
let lighting_shader_cursor = shader_cursor.field("Uniforms").field("lighting");
let material_shader_cursor = lighting_shader_cursor.field("material");
- let view = camera.to_view_matrix(camera_world_pos.position);
+ let view = camera.to_view_matrix(camera_transform.position);
shader_bindings.bindings.extend([
model_3d_shader_cursor
@@ -202,7 +201,7 @@ pub fn enqueue_set_shader_bindings(
model_3d_shader_cursor.field("view").binding(view.into())?,
lighting_shader_cursor
.field("view_pos")
- .binding(camera_world_pos.position.into())?,
+ .binding(camera_transform.position.into())?,
material_shader_cursor.field("ambient").binding(
(if material_flags.use_ambient_color {
&model_material.ambient
@@ -256,7 +255,7 @@ pub fn enqueue_set_shader_bindings(
.bindings
.reserve(point_light_query.iter().count() * 6);
- for (point_light_index, (point_light, point_light_world_pos)) in
+ for (point_light_index, (point_light, point_light_transform)) in
point_light_query.iter().enumerate()
{
let point_light_shader_cursor = lighting_shader_cursor
@@ -276,7 +275,7 @@ pub fn enqueue_set_shader_bindings(
.field("specular")
.binding(point_light.specular.clone().into())?,
point_light_shader_cursor.field("position").binding(
- (point_light_world_pos.position + point_light.local_position).into(),
+ (point_light_transform.position + point_light.local_position).into(),
)?,
attenuation_props_shader_cursor
.field("constant")
@@ -399,8 +398,7 @@ type RenderableEntity<'a> = (
ChildOf,
>,
Option<&'a MaterialFlags>,
- Option<&'a WorldPosition>,
- Option<&'a Scale>,
+ Option<&'a Transform>,
Option<&'a Shader>,
Option<&'a mut PendingShaderBindings>,
Without<NoDraw>,