Add initial MIS implementation

This commit is contained in:
hal8174 2025-01-05 23:52:41 +01:00
parent ba2d853319
commit d43d60bb85
10 changed files with 161 additions and 3 deletions

View file

@ -329,13 +329,16 @@ impl<R: Rng> Scene<R> for TriangleBVH<R> {
let triangle = self.triangles[i as usize];
let material = &self.materials[triangle.material as usize];
let n = triangle_normal(self.get_vertices_from_index(i)).normalize();
let n = triangle_normal(self.get_vertices_from_index(i));
let area = n.length() * 0.5;
Some(Intersection::new(
t,
n,
n.normalize(),
material.material.as_deref(),
material.light.as_deref(),
1.0 / ((self.lights.len() as Float) * area),
))
}