summaryrefslogtreecommitdiff
path: root/src/camera.rs
diff options
context:
space:
mode:
authorRosyid Haryadi <rosyid_haryadi@protonmail.com>2025-03-03 04:23:27 +0700
committerRosyid Haryadi <rosyid_haryadi@protonmail.com>2025-03-03 04:23:27 +0700
commit3fe52d7b88f1e99bcffc5ea31e3e2cf9fcacec6d (patch)
treebc53f29dec30b12d6135fbf6dbea0aa1f225cdec /src/camera.rs
parent8eec1dd60e966f068cd62fba87ca5dbc1aeb1978 (diff)
camera
Diffstat (limited to 'src/camera.rs')
-rw-r--r--src/camera.rs17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/camera.rs b/src/camera.rs
index 033f962..e58c13e 100644
--- a/src/camera.rs
+++ b/src/camera.rs
@@ -1,7 +1,6 @@
use crate::calculus::calculus::{deg2rad, sample_square, Point3, Ray, Vec3};
-use crate::common::{get_image_height, Color, DisplayBuffer, Pixel, ASPECT_RATIO, CAMERA_CENTER, FOCAL_LENGTH, IMG_WIDTH, LOOK_AT, LOOK_FROM, MAX_DEPTH, SAMPLES_PER_PIXEL, VFOV, VIEWPORT_HEIGHT, VUP};
+use crate::common::{get_image_height, Color, DisplayBuffer, Pixel, ASPECT_RATIO, IMG_WIDTH, LOOK_AT, LOOK_FROM, MAX_DEPTH, SAMPLES_PER_PIXEL, VFOV, VUP};
use crate::interval::Interval;
-use crate::material::{Material, MaterialType};
use crate::object::{HitRecord, Hittable, HittableList};
pub struct Camera {
@@ -48,18 +47,18 @@ impl Default for Camera {
let viewport_height = 2.0 * h * focal_length;
let viewport_width = viewport_height * (image_width as f32 / image_height as f32);
- let viewport_hor_vector = u.scalar_mul(viewport_height);
- let viewport_ver_vector = v.scalar_mul(-1.0 * viewport_width);
+ let viewport_u = u.scalar_mul(viewport_width);
+ let viewport_v = v.scalar_mul(-1.0).scalar_mul(viewport_height);
- let delta_pixel_u = viewport_hor_vector.scalar_mul(1.0 / image_width as f32);
- let delta_pixel_v = viewport_ver_vector.scalar_mul(1.0 / image_height as f32);
+ let delta_pixel_u = viewport_u.scalar_mul(1.0 / image_width as f32);
+ let delta_pixel_v = viewport_v.scalar_mul(1.0 / image_height as f32);
let viewport_upper_left = center
.sub(&w.scalar_mul(focal_length))
- .sub(&viewport_hor_vector.scalar_mul(0.5))
- .sub(&viewport_ver_vector.scalar_mul(0.5));
+ .sub(&viewport_u.scalar_mul(0.5))
+ .sub(&viewport_v.scalar_mul(0.5));
let pixel_upper_left = viewport_upper_left.add(
- &delta_pixel_u.add(&delta_pixel_u).scalar_mul(0.5)
+ &delta_pixel_u.add(&delta_pixel_v).scalar_mul(0.5)
);
let max_depth = MAX_DEPTH;