ft: ran linter

This commit is contained in:
2026-04-29 02:11:41 +02:00
parent e88422cb2f
commit 388fbcbb8a
12 changed files with 80 additions and 63 deletions

View File

@@ -17,15 +17,15 @@ pub struct Dielectric {
impl Dielectric {
pub fn new(refraction_index: f32) -> Self {
Self {
refraction_index: refraction_index,
refraction_index,
}
}
fn _reflectance(cos: f32, refraction_index: f32) -> f32 {
fn reflectance(cos: f32, refraction_index: f32) -> f32 {
// Shlick's approximation
let mut r0 = (1. - refraction_index) / (1. + refraction_index);
r0 *= r0;
return r0 + (1. - r0) * (1. - cos).powf(5.);
r0 + (1. - r0) * (1. - cos).powf(5.)
}
}
@@ -45,13 +45,12 @@ impl Material for Dielectric {
let sin_theta = sqrt(1. - cos_theta * cos_theta);
let cannot_refract = ri * sin_theta > 1.;
let dir: Vec3;
let mut rng = rand::rng();
if cannot_refract || Dielectric::_reflectance(cos_theta, ri) > rng.random::<f32>() {
dir = unit.reflect(hit.n());
let dir = if cannot_refract || Dielectric::reflectance(cos_theta, ri) > rng.random::<f32>() {
unit.reflect(hit.n())
} else {
dir = unit.refract(hit.n(), ri);
}
unit.refract(hit.n(), ri)
};
Some((Ray::new(*hit.p(), dir), Colour::new(1., 1., 1.)))
}
}