35 lines
857 B
Rust
35 lines
857 B
Rust
#![feature(core_float_math)]
|
|
|
|
mod camera;
|
|
mod objects;
|
|
mod ray;
|
|
mod raytracer;
|
|
mod scenes;
|
|
mod vec3;
|
|
|
|
use std::{env, fs};
|
|
|
|
use crate::ray::Ray;
|
|
use crate::raytracer::render;
|
|
use crate::scenes::scene::Scene;
|
|
use crate::vec3::Vec3;
|
|
use dotenv::dotenv;
|
|
|
|
// TODO (low priority): implement scene serialization
|
|
fn main() {
|
|
dotenv().ok();
|
|
pretty_env_logger::init();
|
|
|
|
// TODO (medium priority): better cli parsing || add random flag to generate random scene
|
|
let mut json_file = "./scenes/scene.json";
|
|
let args: Vec<String> = env::args().collect();
|
|
if args.len() > 1 {
|
|
json_file = &args[1];
|
|
}
|
|
|
|
let json_str = fs::read_to_string(json_file).expect("Reading specified scene file failed!");
|
|
let mut scene: Scene = serde_json::from_str(&json_str).unwrap();
|
|
let mut scene: Scene = Scene::random();
|
|
render(&mut scene);
|
|
}
|