triangle
This commit is contained in:
parent
27905c888f
commit
3343133e9d
21
src/main.rs
21
src/main.rs
|
@ -6,6 +6,7 @@ use rand::{rng, Rng};
|
||||||
use crate::hittable::HittableList;
|
use crate::hittable::HittableList;
|
||||||
use crate::material::{Dielectric, Lambertian, MaterialKind, Metal};
|
use crate::material::{Dielectric, Lambertian, MaterialKind, Metal};
|
||||||
use crate::ppm_writer::PPMWriter;
|
use crate::ppm_writer::PPMWriter;
|
||||||
|
use crate::triangle::Triangle;
|
||||||
use crate::types_defined::{Camera, Color, Point, Sphere, Vec3};
|
use crate::types_defined::{Camera, Color, Point, Sphere, Vec3};
|
||||||
mod camera;
|
mod camera;
|
||||||
mod color;
|
mod color;
|
||||||
|
@ -17,6 +18,7 @@ mod vec3;
|
||||||
mod math_utils;
|
mod math_utils;
|
||||||
mod ppm_writer;
|
mod ppm_writer;
|
||||||
mod material;
|
mod material;
|
||||||
|
mod triangle;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
camera_render();
|
camera_render();
|
||||||
|
@ -25,11 +27,11 @@ fn main() {
|
||||||
fn camera_render() {
|
fn camera_render() {
|
||||||
|
|
||||||
let fov: f32 = 90.;
|
let fov: f32 = 90.;
|
||||||
let scale = 4;
|
let scale = 1;
|
||||||
let width: i32 = 1920/scale;
|
let width: i32 = 1920/scale;
|
||||||
let height: i32 = 1080/scale;
|
let height: i32 = 1080/scale;
|
||||||
let sample_times = 50;
|
let sample_times = 20;
|
||||||
let reflect_depth = 64;
|
let reflect_depth = 20;
|
||||||
|
|
||||||
|
|
||||||
let pw_r = PPMWriter::new(
|
let pw_r = PPMWriter::new(
|
||||||
|
@ -77,6 +79,19 @@ fn camera_render() {
|
||||||
// world.put(Box::new(Sphere::new(Point::new(1.0, 0.0, -1.0), 0.5, right_m)));
|
// world.put(Box::new(Sphere::new(Point::new(1.0, 0.0, -1.0), 0.5, right_m)));
|
||||||
world.put(Box::new(Sphere::new(Point::new(0.0, -500.5, -1.0), 500.0, plane_m)));
|
world.put(Box::new(Sphere::new(Point::new(0.0, -500.5, -1.0), 500.0, plane_m)));
|
||||||
|
|
||||||
|
// world.put(Box::new(Triangle::new(
|
||||||
|
// Point::new(0.0, 0.5, 0.0),
|
||||||
|
// Point::new(5.5, 0.5, 0.0),
|
||||||
|
// Point::new(5.5, 5.5, 0.0),
|
||||||
|
// Some(MaterialKind::Metal(Metal { albedo: Color::new(0.8, 0.6, 0.2), fuzz: 0.00001 }))
|
||||||
|
// )));
|
||||||
|
world.put(Box::new(Triangle::new(
|
||||||
|
Point::new(0.0, 0.5, 5.0),
|
||||||
|
Point::new(0.0, 5.5, -5.0),
|
||||||
|
Point::new(5.5, 0.5, 0.0),
|
||||||
|
Some(MaterialKind::Dielectric(Dielectric { albedo: Color::new(1.0, 1.0, 1.0), refraction_index: 1./1.5 }))
|
||||||
|
)));
|
||||||
|
|
||||||
gen_spheres(&mut world);
|
gen_spheres(&mut world);
|
||||||
|
|
||||||
camera.render(&world);
|
camera.render(&world);
|
||||||
|
|
Loading…
Reference in New Issue