Fix MIS bugs

This commit is contained in:
hal8174 2025-01-08 22:31:57 +01:00
parent 27ea5c5d93
commit 908efa79c2
5 changed files with 33 additions and 15 deletions

View file

@ -52,9 +52,10 @@ impl<R: Rng, D: MicrofacetDistribution + Debug + Sync + Send> Material<R> for Mi
ray_tracing_core::material::SampleResult::new(
w_out,
self.color * fresnel_real(Dir3::dot(w_in, w_h), 1.0, 1.5) * g,
false,
)
} else {
ray_tracing_core::material::SampleResult::new(w_out, Color::black())
ray_tracing_core::material::SampleResult::new(w_out, Color::black(), false)
}
}

View file

@ -19,7 +19,7 @@ impl<R: Rng> Material<R> for Mirror {
fn sample(&self, w_in: Dir3, _rng: &mut R) -> ray_tracing_core::material::SampleResult {
let w_out = (2.0 * Dir3::up() * w_in.y()) - w_in;
ray_tracing_core::material::SampleResult::new(w_out, self.color)
ray_tracing_core::material::SampleResult::new(w_out, self.color, true)
}
fn pdf(&self, w_in: Dir3, w_out: Dir3) -> Float {