Extract renderer into own packege
This commit is contained in:
parent
b3fdef8837
commit
c517a836ee
24 changed files with 332 additions and 157 deletions
|
|
@ -4,6 +4,5 @@ version = "0.1.0"
|
|||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
rand = "0.8.5"
|
||||
ray-tracing-core = { path = "../ray-tracing-core" }
|
||||
ray-tracing-material = { path = "../ray-tracing-material" }
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
use rand::Rng;
|
||||
use ray_tracing_core::prelude::*;
|
||||
use ray_tracing_core::scene::{Intersection, Scene};
|
||||
use ray_tracing_material::default::DefaultMaterial;
|
||||
|
|
@ -15,6 +14,12 @@ impl BasicScene {
|
|||
}
|
||||
}
|
||||
|
||||
impl Default for BasicScene {
|
||||
fn default() -> Self {
|
||||
Self::new()
|
||||
}
|
||||
}
|
||||
|
||||
impl<R: Rng> Scene<R> for BasicScene {
|
||||
fn intersect(&self, ray: Ray, min: Float, max: Float) -> Option<Intersection<'_, R>> {
|
||||
let mut intersection: Option<Intersection<'_, R>> = None;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
use rand::Rng;
|
||||
use ray_tracing_core::{
|
||||
prelude::*,
|
||||
scene::{Intersection, Scene},
|
||||
|
|
@ -197,14 +196,14 @@ impl<R: Rng> Scene<R> for TriangleBVH<R> {
|
|||
|
||||
pub mod examples {
|
||||
use super::{BVHMaterial, Triangle, TriangleBVH};
|
||||
use rand::Rng;
|
||||
use ray_tracing_core::{light::AreaLight, prelude::*};
|
||||
use ray_tracing_material::diffuse::DiffuseMaterial;
|
||||
use ray_tracing_material::{diffuse::DiffuseMaterial, mirror::Mirror};
|
||||
|
||||
pub fn cornel<R: Rng>() -> TriangleBVH<R> {
|
||||
let side_length = 1.5;
|
||||
let light_size = 0.5;
|
||||
let light_offset = 0.01;
|
||||
let box_size = 0.3;
|
||||
TriangleBVH::new(
|
||||
vec![
|
||||
Pos3::new(side_length, side_length, side_length),
|
||||
|
|
@ -219,6 +218,11 @@ pub mod examples {
|
|||
Pos3::new(light_size, side_length - light_offset, -light_size),
|
||||
Pos3::new(-light_size, side_length - light_offset, light_size),
|
||||
Pos3::new(-light_size, side_length - light_offset, -light_size),
|
||||
Pos3::new(box_size, -side_length, 0.0),
|
||||
Pos3::new(0.0, -side_length, -box_size),
|
||||
Pos3::new(-box_size, -side_length, 0.0),
|
||||
Pos3::new(0.0, -side_length, box_size),
|
||||
Pos3::new(0.0, box_size - side_length, 0.0),
|
||||
],
|
||||
vec![
|
||||
Triangle::new([0, 1, 2], 0),
|
||||
|
|
@ -233,6 +237,10 @@ pub mod examples {
|
|||
Triangle::new([7, 3, 5], 2),
|
||||
Triangle::new([8, 10, 9], 3),
|
||||
Triangle::new([11, 9, 10], 3),
|
||||
Triangle::new([12, 13, 16], 4),
|
||||
Triangle::new([13, 14, 16], 4),
|
||||
Triangle::new([14, 15, 16], 4),
|
||||
Triangle::new([15, 12, 16], 4),
|
||||
],
|
||||
vec![
|
||||
BVHMaterial {
|
||||
|
|
@ -251,6 +259,10 @@ pub mod examples {
|
|||
material: None,
|
||||
light: Some(Box::new(AreaLight::new(Color::white() * 30.0))),
|
||||
},
|
||||
BVHMaterial {
|
||||
material: Some(Box::new(Mirror::new(Color::new(1.0, 1.0, 1.0)))),
|
||||
light: None,
|
||||
},
|
||||
],
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue