Cleaned up command line options. Removed old procedural scene code.
This commit is contained in:
parent
039943e0cb
commit
43c5a94ebb
74
src/main.rs
74
src/main.rs
|
@ -40,23 +40,21 @@ const USAGE: &'static str = r#"
|
||||||
Psychopath <VERSION>
|
Psychopath <VERSION>
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
psychopath [options] <imgpath>
|
|
||||||
psychopath [options] -i <file>
|
psychopath [options] -i <file>
|
||||||
psychopath (-h | --help)
|
psychopath (-h | --help)
|
||||||
psychopath --version
|
psychopath --version
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
-i <file>, --input <file> Input .psy file
|
-i <file>, --input <file> Input .psy file.
|
||||||
-s <n>, --spp <n> Number of samples per pixel [default: 16].
|
-s <n>, --spp <n> Number of samples per pixel.
|
||||||
-h, --help Show this screen.
|
-h, --help Show this screen.
|
||||||
--version Show version.
|
--version Show version.
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
#[derive(Debug, RustcDecodable)]
|
#[derive(Debug, RustcDecodable)]
|
||||||
struct Args {
|
struct Args {
|
||||||
arg_imgpath: String,
|
|
||||||
flag_input: Option<String>,
|
flag_input: Option<String>,
|
||||||
flag_spp: Option<u32>,
|
flag_spp: Option<usize>,
|
||||||
flag_version: bool,
|
flag_version: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,64 +84,6 @@ fn main() {
|
||||||
panic!()
|
panic!()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Generate a scene of triangles
|
|
||||||
// let mesh = TriangleMesh::from_triangles(2, {
|
|
||||||
// let mut triangles = Vec::new();
|
|
||||||
// let xres = 32;
|
|
||||||
// let yres = 32;
|
|
||||||
// let xinc = 512.0 / (xres as f32);
|
|
||||||
// let yinc = 512.0 / (yres as f32);
|
|
||||||
// for x in 0..xres {
|
|
||||||
// for y in 0..yres {
|
|
||||||
// let i = y * xres + x;
|
|
||||||
// let cx = halton::sample(0, i) * 512.0;
|
|
||||||
// let cy = halton::sample(1, i) * 512.0;
|
|
||||||
// let cz = halton::sample(2, i) * 512.0;
|
|
||||||
// let cx = x as f32 * xinc;
|
|
||||||
// let cy = y as f32 * yinc;
|
|
||||||
// let cz = 1.0;
|
|
||||||
// triangles.push((Point::new(cx, cy, cz + 1.0),
|
|
||||||
// Point::new(cx + xinc, cy, cz + 1.1),
|
|
||||||
// Point::new(cx, cy + yinc, cz + 1.2)));
|
|
||||||
// triangles.push((Point::new(cx + 25.0, cy, cz + 1.0),
|
|
||||||
// Point::new(cx + 25.0 + xinc, cy, cz + 1.1),
|
|
||||||
// Point::new(cx + 25.0, cy + yinc, cz + 1.2)));
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// triangles
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// let cam = Camera::new(vec![Matrix4x4::from_location(Point::new(256.0, 256.0, -1024.0))],
|
|
||||||
// vec![0.785],
|
|
||||||
// vec![20.0],
|
|
||||||
// vec![1026.0]);
|
|
||||||
//
|
|
||||||
// let mut assembly_b = AssemblyBuilder::new();
|
|
||||||
// assembly_b.add_object("yar", Object::Surface(Box::new(mesh)));
|
|
||||||
// assembly_b.add_object_instance("yar",
|
|
||||||
// Some(&[Matrix4x4::from_location(Point::new(25.0, 0.0, 0.0))]));
|
|
||||||
// let assembly = assembly_b.build();
|
|
||||||
//
|
|
||||||
// let scene = Scene {
|
|
||||||
// name: None,
|
|
||||||
// background_color: (0.0, 0.0, 0.0),
|
|
||||||
// camera: cam,
|
|
||||||
// root: assembly,
|
|
||||||
// };
|
|
||||||
//
|
|
||||||
// let r = Renderer {
|
|
||||||
// output_file: args.arg_imgpath.clone(),
|
|
||||||
// resolution: (512, 512),
|
|
||||||
// spp: samples_per_pixel as usize,
|
|
||||||
// scene: scene,
|
|
||||||
// };
|
|
||||||
//
|
|
||||||
println!("Scene built.");
|
|
||||||
|
|
||||||
let samples_per_pixel = args.flag_spp.unwrap_or_else(|| 16);
|
|
||||||
println!("Sample count: {}", samples_per_pixel);
|
|
||||||
|
|
||||||
println!("Ray size: {} bytes", mem::size_of::<Ray>());
|
println!("Ray size: {} bytes", mem::size_of::<Ray>());
|
||||||
|
|
||||||
// Iterate through scenes and render them
|
// Iterate through scenes and render them
|
||||||
|
@ -151,7 +91,13 @@ fn main() {
|
||||||
for child in children {
|
for child in children {
|
||||||
if child.type_name() == "Scene" {
|
if child.type_name() == "Scene" {
|
||||||
println!("Parsing scene...");
|
println!("Parsing scene...");
|
||||||
let r = parse_scene(child).unwrap();
|
let mut r = parse_scene(child).unwrap();
|
||||||
|
|
||||||
|
if let Some(spp) = args.flag_spp {
|
||||||
|
println!("Overriding scene spp: {}", spp);
|
||||||
|
r.spp = spp;
|
||||||
|
}
|
||||||
|
|
||||||
println!("Rendering scene...");
|
println!("Rendering scene...");
|
||||||
r.render();
|
r.render();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user