Change Scene trait to account for material data

This commit is contained in:
hal8174 2025-08-22 21:48:07 +02:00
parent 76448ed442
commit 2bc5ec93fe
Signed by: hal8174
SSH key fingerprint: SHA256:NN98ZYwnrreQLSOV/g+amY7C3yL/mS1heD7bi5t6PPw
19 changed files with 306 additions and 124 deletions

View file

@ -11,6 +11,7 @@ use crate::{
triangle_bvh::{Triangle, TriangleBVH},
ASMaterial, AccelerationStructureScene,
},
examples::ExampleSceneEnum,
parse_obj::ObjData,
};
@ -34,8 +35,8 @@ impl<R: Rng> Default for StanfordDragon<R> {
}
}
impl<R: Rng + 'static> ExampleScene<R> for StanfordDragon<R> {
fn get_scene(&self) -> Box<dyn Scene<R> + Sync> {
impl<R: Rng> ExampleScene<R> for StanfordDragon<R> {
fn get_scene(&self) -> ExampleSceneEnum<R> {
let s = self.scene.get_or_init(|| {
let obj = ObjData::new("ray-tracing-scene/obj/stanford_dragon.obj").unwrap();
@ -111,7 +112,7 @@ impl<R: Rng + 'static> ExampleScene<R> for StanfordDragon<R> {
});
let n: AccelerationStructureScene<_, _> = s.clone();
Box::new(n)
ExampleSceneEnum::AccelerationStructureScene(n)
}
fn get_camera_pos(&self) -> Pos3 {