diff options
author | Rosyid Haryadi <rosyid_haryadi@protonmail.com> | 2025-02-26 17:15:56 +0700 |
---|---|---|
committer | Rosyid Haryadi <rosyid_haryadi@protonmail.com> | 2025-02-26 17:15:56 +0700 |
commit | afa026412fad832c85d28ddedb6b4bb74a4042d1 (patch) | |
tree | f21da6c69922d7785ae0b1005725c389d867bcb1 /src/renderer.rs | |
parent | 2961d488078fd3e8297fa5c98232f1d998069fa7 (diff) |
fix index, add another renderer
Diffstat (limited to 'src/renderer.rs')
-rw-r--r-- | src/renderer.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/renderer.rs b/src/renderer.rs index 28dbb36..7815673 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -1,2 +1,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) + ); }
\ No newline at end of file |