diff --git a/src/camera.rs b/src/camera.rs index 290de7f..9dbc78b 100644 --- a/src/camera.rs +++ b/src/camera.rs @@ -1,4 +1,3 @@ - use crate::{ray::Ray, util::deg_to_rad, vec3::Vec3}; #[derive(Debug)] diff --git a/src/main.rs b/src/main.rs index 99691bd..6f7bc6c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,11 +1,11 @@ #![feature(core_float_math)] -mod util; mod camera; mod objects; mod ray; mod raytracer; mod scenes; +mod util; mod vec3; use std::{env, fs}; diff --git a/src/objects/materials.rs b/src/objects/materials.rs index cbba327..6f53cfa 100644 --- a/src/objects/materials.rs +++ b/src/objects/materials.rs @@ -1,6 +1,6 @@ +pub mod colour_source; pub mod dielectric; pub mod lambertian; pub mod normal; -pub mod traits; pub mod texture; -pub mod colour_source; +pub mod traits; diff --git a/src/objects/materials/texture.rs b/src/objects/materials/texture.rs index ed55130..4645826 100644 --- a/src/objects/materials/texture.rs +++ b/src/objects/materials/texture.rs @@ -1,10 +1,7 @@ use image::{DynamicImage, ImageReader}; use log::trace; -use crate::{ - objects::hit::Hit, - vec3::Vec3, -}; +use crate::{objects::hit::Hit, vec3::Vec3}; #[derive(Debug)] pub struct Texture { @@ -47,7 +44,7 @@ impl Texture { } fn _idx(&self, u: f32, v: f32) -> usize { - let x: usize = (u * ((self.width - 1) as f32)) as usize; + let x: usize = (u * ((self.width - 1) as f32)) as usize; let y: usize = (v * ((self.height - 1) as f32)) as usize; y * self.width as usize + x diff --git a/src/objects/materials/traits.rs b/src/objects/materials/traits.rs index 72971a7..05307e3 100644 --- a/src/objects/materials/traits.rs +++ b/src/objects/materials/traits.rs @@ -1,6 +1,6 @@ use crate::{objects::hit::Hit, ray::Ray, vec3::Colour}; use std::fmt::Debug; -pub trait Material: Debug + Send + Sync{ +pub trait Material: Debug + Send + Sync { fn scatter(&self, hit: &Hit, ray: &Ray) -> Option<(Option, Colour)>; } diff --git a/src/objects/mesh.rs b/src/objects/mesh.rs index e69de29..8b13789 100644 --- a/src/objects/mesh.rs +++ b/src/objects/mesh.rs @@ -0,0 +1 @@ + diff --git a/src/objects/sphere.rs b/src/objects/sphere.rs index 83a9f88..36820b8 100644 --- a/src/objects/sphere.rs +++ b/src/objects/sphere.rs @@ -3,11 +3,11 @@ use std::f32::consts::PI; use std::fmt::{self, Debug}; use std::sync::Arc; -use crate::Vec3; use crate::objects::hit::Hit; use crate::objects::materials::traits::Material; use crate::objects::traits::Hittable; use crate::ray::Ray; +use crate::Vec3; pub struct Sphere { center: Vec3, diff --git a/src/objects/traits.rs b/src/objects/traits.rs index 5e332bb..0ce603a 100644 --- a/src/objects/traits.rs +++ b/src/objects/traits.rs @@ -1,10 +1,10 @@ use std::fmt::Debug; -use crate::Ray; use crate::objects::hit::Hit; use crate::vec3::Vec3; +use crate::Ray; pub trait Hittable: Debug + Send + Sync { - fn to_uv(&self, point: &Vec3) -> Vec3; + fn to_uv(&self, point: &Vec3) -> Vec3; fn hit(&self, r: &Ray) -> Option; } diff --git a/src/raytracer.rs b/src/raytracer.rs index 603bc0e..25d4a62 100644 --- a/src/raytracer.rs +++ b/src/raytracer.rs @@ -1,4 +1,4 @@ -use image::{ExtendedColorType, ImageEncoder, codecs::png::PngEncoder}; +use image::{codecs::png::PngEncoder, ExtendedColorType, ImageEncoder}; use log::{error, info, trace}; use rayon::iter::IntoParallelIterator; use rayon::prelude::*; diff --git a/src/scenes.rs b/src/scenes.rs index a15f5c3..9fac59e 100644 --- a/src/scenes.rs +++ b/src/scenes.rs @@ -1,4 +1,4 @@ -pub mod raw_camera; -pub mod material_def; pub mod hittable_def; +pub mod material_def; +pub mod raw_camera; pub mod scene; diff --git a/src/scenes/material_def.rs b/src/scenes/material_def.rs index fb6522a..b8d5b07 100644 --- a/src/scenes/material_def.rs +++ b/src/scenes/material_def.rs @@ -2,8 +2,13 @@ use std::sync::Arc; use serde::Deserialize; -use crate::objects::materials::{dielectric::Dielectric, lambertian::{Lambertian, Metal}, normal::Normal, texture::Texture, traits::Material}; - +use crate::objects::materials::{ + dielectric::Dielectric, + lambertian::{Lambertian, Metal}, + normal::Normal, + texture::Texture, + traits::Material, +}; #[derive(Deserialize)] #[serde(tag = "type", rename_all = "lowercase")] diff --git a/src/util.rs b/src/util.rs index 692e3f0..c39b45f 100644 --- a/src/util.rs +++ b/src/util.rs @@ -3,4 +3,3 @@ use std::f32::consts::PI; pub(crate) fn deg_to_rad(deg: f32) -> f32 { deg * PI / 180. } - diff --git a/src/vec3.rs b/src/vec3.rs index 48ec86a..9dc11f2 100644 --- a/src/vec3.rs +++ b/src/vec3.rs @@ -67,7 +67,11 @@ impl Vec3 { pub fn random_unit_hemisphere(n: &Self) -> Self { let v = Self::random_unit(); - if n.dot(&v) > 0.0 { v } else { -v } + if n.dot(&v) > 0.0 { + v + } else { + -v + } } pub fn x(&self) -> &f32 {