rtiow: tweak scenes and cleanup lint
This commit is contained in:
parent
a2f9166b5a
commit
f51d3396f4
@ -52,7 +52,7 @@ impl Material for Box<dyn Material> {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct Isotropic<T>
|
||||
where
|
||||
T: Texture,
|
||||
@ -83,7 +83,7 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct Lambertian<T>
|
||||
where
|
||||
T: Texture,
|
||||
@ -115,7 +115,7 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct Metal {
|
||||
albedo: Vec3,
|
||||
fuzzy: f32,
|
||||
@ -170,7 +170,7 @@ fn schlick(cosine: f32, ref_idx: f32) -> f32 {
|
||||
r0 + (1. - r0) * (1. - cosine).powf(5.)
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct Dielectric {
|
||||
ref_idx: f32,
|
||||
}
|
||||
|
||||
@ -1,14 +1,10 @@
|
||||
use std::{
|
||||
io::{BufReader, Cursor},
|
||||
sync::Arc,
|
||||
};
|
||||
use std::io::{BufReader, Cursor};
|
||||
|
||||
use stl::STL;
|
||||
|
||||
use crate::{
|
||||
bvh_triangles::BVHTriangles,
|
||||
camera::Camera,
|
||||
cuboid::Cuboid,
|
||||
hitable::Hit,
|
||||
hitable_list::HitableList,
|
||||
kdtree::KDTree,
|
||||
@ -17,6 +13,7 @@ use crate::{
|
||||
scale::Scale,
|
||||
sphere::Sphere,
|
||||
texture::{ConstantTexture, EnvMap},
|
||||
translate::Translate,
|
||||
vec3::Vec3,
|
||||
};
|
||||
|
||||
@ -46,8 +43,7 @@ pub fn new(opt: &Opt) -> Scene {
|
||||
|
||||
let stl_cube = STL::parse(
|
||||
BufReader::new(Cursor::new(include_bytes!(
|
||||
"../../stls/cube.stl"
|
||||
//"../../stls/stanford_dragon-lowres.stl" //"../../stls/stanford_dragon.stl"
|
||||
"../../stls/stanford_dragon-lowres.stl" //"../../stls/stanford_dragon.stl"
|
||||
))),
|
||||
false,
|
||||
)
|
||||
@ -81,20 +77,9 @@ pub fn new(opt: &Opt) -> Scene {
|
||||
Lambertian::new(ConstantTexture::new(Vec3::new(1.0, 0.2, 0.2))),
|
||||
)),
|
||||
// STL Mesh
|
||||
Box::new(Scale::new(
|
||||
BVHTriangles::new(
|
||||
&stl_cube,
|
||||
Dielectric::new(1.5),
|
||||
//Metal::new(Vec3::new(0.8, 0.8, 0.8), 0.2),
|
||||
//Lambertian::new(ConstantTexture::new(Vec3::new(1.0, 0.2, 0.2))),
|
||||
),
|
||||
1.,
|
||||
//250.,
|
||||
)),
|
||||
Box::new(Cuboid::new(
|
||||
[-20., 0., 0.].into(),
|
||||
[0., 20., 20.].into(),
|
||||
Arc::new(Dielectric::new(1.5)),
|
||||
Box::new(Translate::new(
|
||||
Scale::new(BVHTriangles::new(&stl_cube, Dielectric::new(1.5)), 250.),
|
||||
[0., -10., 0.],
|
||||
)),
|
||||
];
|
||||
let world: Box<dyn Hit> = if opt.use_accel {
|
||||
|
||||
@ -12,7 +12,7 @@ use crate::{
|
||||
hitable::Hit,
|
||||
hitable_list::HitableList,
|
||||
kdtree::KDTree,
|
||||
material::{Dielectric, Lambertian},
|
||||
material::{Dielectric, Lambertian, Metal},
|
||||
renderer::{Opt, Scene},
|
||||
sphere::Sphere,
|
||||
texture::{ConstantTexture, EnvMap},
|
||||
@ -43,13 +43,20 @@ pub fn new(opt: &Opt) -> Scene {
|
||||
ConstantTexture::new(Vec3::new(0.4, 0.4, 0.4))
|
||||
};
|
||||
|
||||
let glass = Dielectric::new(1.5);
|
||||
let metal = Metal::new(Vec3::new(0.8, 0.8, 0.8), 0.2);
|
||||
let red = Lambertian::new(ConstantTexture::new(Vec3::new(1.0, 0.2, 0.2)));
|
||||
|
||||
let box_material = glass;
|
||||
let _ = glass;
|
||||
let _ = metal;
|
||||
let _ = red;
|
||||
|
||||
let stl_cube = STL::parse(
|
||||
BufReader::new(Cursor::new(include_bytes!("../../stls/cube.stl"))),
|
||||
false,
|
||||
)
|
||||
.expect("failed to parse cube");
|
||||
let _light_size = 50.;
|
||||
let _light_height = 200.;
|
||||
let objects: Vec<Box<dyn Hit>> = vec![
|
||||
// Light from above - white
|
||||
// Earth sized sphere
|
||||
@ -77,16 +84,11 @@ pub fn new(opt: &Opt) -> Scene {
|
||||
Lambertian::new(ConstantTexture::new(Vec3::new(1.0, 0.2, 0.2))),
|
||||
)),
|
||||
// STL Mesh
|
||||
Box::new(BVHTriangles::new(
|
||||
&stl_cube,
|
||||
Dielectric::new(1.5),
|
||||
//Metal::new(Vec3::new(0.8, 0.8, 0.8), 0.2),
|
||||
//Lambertian::new(ConstantTexture::new(Vec3::new(1.0, 0.2, 0.2))),
|
||||
)),
|
||||
Box::new(BVHTriangles::new(&stl_cube, box_material.clone())),
|
||||
Box::new(Cuboid::new(
|
||||
[-20., 0., 0.].into(),
|
||||
[0., 20., 20.].into(),
|
||||
Arc::new(Dielectric::new(1.5)),
|
||||
Arc::new(box_material),
|
||||
)),
|
||||
];
|
||||
let world: Box<dyn Hit> = if opt.use_accel {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
use crate::{texture::Texture, vec3::Vec3};
|
||||
|
||||
#[derive(Debug, PartialEq)]
|
||||
#[derive(Clone, Debug, PartialEq)]
|
||||
pub struct ConstantTexture {
|
||||
color: Vec3,
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user