First mesh render

This commit is contained in:
Jonathan Flueren 2022-07-17 02:22:09 +02:00
parent 36cf9c10c5
commit e09b0a9e1d

View file

@ -171,7 +171,6 @@ fn random_world() -> HittableList {
}
fn from_obj(path: &str) -> HittableList {
let mut world = HittableList::new();
let material_ground = Arc::new(Lambertian::new(&Color::new(0.05, 0.05, 0.05)));
@ -216,30 +215,31 @@ fn from_obj(path: &str) -> HittableList {
Point3::new(
mesh.positions[3 * index_a] as f64,
mesh.positions[3 * index_a + 1] as f64,
mesh.positions[3 * index_a + 2] as f64
mesh.positions[3 * index_a + 2] as f64,
),
Point3::new(
mesh.positions[3 * index_b] as f64,
mesh.positions[3 * index_b + 1] as f64,
mesh.positions[3 * index_b + 2] as f64
mesh.positions[3 * index_b + 2] as f64,
),
Point3::new(
mesh.positions[3 * index_c] as f64,
mesh.positions[3 * index_c + 1] as f64,
mesh.positions[3 * index_c + 2] as f64
mesh.positions[3 * index_c + 2] as f64,
),
material.clone()
material.clone(),
)));
}
}
return world;
}
// The output is wrapped in a Result to allow matching on errors
// Returns an Iterator to the Reader of the lines of the file.
fn read_lines<P>(filename: P) -> io::Result<io::Lines<io::BufReader<File>>>
where P: AsRef<Path>, {
where
P: AsRef<Path>,
{
let file = File::open(filename)?;
Ok(io::BufReader::new(file).lines())
}
@ -264,10 +264,10 @@ fn main() {
// Image
let aspect_ratio = 16.0 / 9.0;
let image_width = 200;
let image_width = 600;
let image_height = (image_width as f64 / aspect_ratio) as u32;
let samples_per_pixel = 100_u32;
let max_depth = 5;
let samples_per_pixel = 50_u32;
let max_depth = 50;
let vfov = 50.0;
let lookfrom = Point3::new(30.0, 20.0, 30.0);
@ -276,6 +276,12 @@ fn main() {
let dist_to_focus = 40.0;
let aperture = 0.1;
// limit rayon multithreading thread count
let thread_count = 4; // if 0, for each logical cpu core a thread wil be created
if thread_count > 0 {
env::set_var("RAYON_NUM_THREADS", "4");
}
let world = from_obj("obj/Lowpoly_tree_sample copy.obj");
// World