summaryrefslogtreecommitdiff
path: root/engine/src
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src')
-rw-r--r--engine/src/rendering/main_render_pass.rs20
1 files changed, 14 insertions, 6 deletions
diff --git a/engine/src/rendering/main_render_pass.rs b/engine/src/rendering/main_render_pass.rs
index db1569d..13bb4e4 100644
--- a/engine/src/rendering/main_render_pass.rs
+++ b/engine/src/rendering/main_render_pass.rs
@@ -22,7 +22,7 @@ use crate::lighting::{
use crate::material::{Flags as MaterialFlags, Material};
use crate::mesh::Mesh;
use crate::model::{MaterialSearchResult, Model};
-use crate::projection::ClipVolume as ProjectionClipVolume;
+use crate::projection::{ClipVolume as ProjectionClipVolume, Perspective, Projection};
use crate::rendering::object::{Id as ObjectId, Store as ObjectStore};
use crate::rendering::shader::cursor::{
BindingTextureKind as ShaderBindingTextureKind,
@@ -381,13 +381,21 @@ pub fn add_main_render_pass(
.field("Uniforms")
.field("projection")
.binding(
- camera
- .projection
- .to_matrix_rh(
+ (match camera.projection {
+ Projection::Perspective(_) => camera.projection.to_matrix_rh(
window.inner_size,
ProjectionClipVolume::NegOneToOne,
- )
- .into(),
+ ),
+ Projection::Orthographic(_) => {
+ // A orthographic projection cannot be used for a sky box
+ Perspective::default().to_matrix_rh(
+ window.inner_size.width as f32
+ / window.inner_size.height as f32,
+ ProjectionClipVolume::NegOneToOne,
+ )
+ }
+ })
+ .into(),
)?,
sky_box_shader_cursor
.field("Uniforms")