Better viewport
This commit is contained in:
parent
a2646f8f29
commit
cb500033c0
|
|
@ -1,6 +1,6 @@
|
|||
use std::error::Error;
|
||||
|
||||
use glam::{vec2, vec3};
|
||||
use glam::{uvec2, vec2, vec3};
|
||||
use image::ImageReader;
|
||||
use present::Presenter;
|
||||
use trace::{Tracer, TracerData, TracerEnv, Vertex};
|
||||
|
|
@ -17,18 +17,13 @@ mod trace;
|
|||
pub use trace::Sphere;
|
||||
|
||||
fn make_viewport(w: u32, h: u32) -> [Vertex; 4] {
|
||||
let w = w as f32;
|
||||
let h = h as f32;
|
||||
let (w, h) = (1.0f32.max(w / h), 1.0f32.max(h / w));
|
||||
let size = uvec2(w, h).as_vec2();
|
||||
let size = size.normalize();
|
||||
let (w, h) = (size.x, size.y);
|
||||
let r = 1.0f32;
|
||||
let screen_coord = [vec2(-h, -w), vec2(h, -w), vec2(-h, w), vec2(h, w)];
|
||||
let eye = vec3(-r, 0.0, 0.0);
|
||||
let world_coord = [
|
||||
vec3(0.0, -1.0, -1.0),
|
||||
vec3(0.0, 1.0, -1.0),
|
||||
vec3(0.0, -1.0, 1.0),
|
||||
vec3(0.0, 1.0, 1.0),
|
||||
];
|
||||
let screen_coord = [vec2(-1., -1.), vec2(1., -1.), vec2(-1., 1.), vec2(1., 1.)];
|
||||
let eye = vec3(-r, 0., 0.);
|
||||
let world_coord = [vec3(0., -w, -h), vec3(0., w, -h), vec3(0., -w, h), vec3(0., w, h)];
|
||||
[0, 1, 2, 3].map(|k| Vertex {
|
||||
eye,
|
||||
world: world_coord[k],
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user