summaryrefslogtreecommitdiff
path: root/src/renderer.rs
blob: 7815673d4e3e23ee59519717c05296918b9a2fbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::calculus::calculus::Vec3;
use crate::global::{CAMERA_CENTER, FOCAL_LENGTH, VIEWPORT_HEIGHT, VIEWPORT_WIDTH};

fn render() {
    let viewport_hor_vector = Vec3{ x: VIEWPORT_WIDTH as f32, y: 0.0, z: 0.0 };
    let viewport_ver_vector = Vec3 { x: 0.0, y: -1f32 * VIEWPORT_HEIGHT as f32, z: 0.0 };

    let delta_pixel_u = viewport_hor_vector.scalar_mul(1.0 / VIEWPORT_WIDTH as f32);
    let delta_u = viewport_ver_vector.scalar_mul(1.0 / VIEWPORT_WIDTH as f32);

    let viewport_upper_left = CAMERA_CENTER
        .sub(&Vec3 { x: 0f32, y: 0f32, z: FOCAL_LENGTH})
        .sub(&viewport_hor_vector.scalar_mul(0.5))
        .sub(&viewport_ver_vector.scalar_mul(0.5));
    let pixel_upper_left = viewport_upper_left.add(
        &delta_pixel_u.add(&delta_pixel_u).scalar_mul(0.5)
    );
}