439 Commits

Author SHA1 Message Date
ca4a385438 Stub cube impl. 2018-09-14 13:03:26 -07:00
896ae20196 Add motion blur and MovingSphere type to exercise it.
Also changes Ray implementation to use public struct members instead of
accessor functions.
2018-09-14 12:06:29 -07:00
919fa5f8d5 Add --model flag to select model to render. 2018-09-13 21:35:39 -07:00
802b4f69a8 Parallelize across subsample frames and dump intermediates. 2018-09-13 20:36:47 -07:00
9bd29660ff Move Opt from library to CLI. 2018-09-12 20:11:11 -07:00
23058d1268 Move tracing logic to renderer module and add CLI flags. 2018-09-12 16:15:10 -07:00
c4e958975c Initial clumsy parallel renderer. 2018-09-12 15:24:52 -07:00
672dc3cdd2 Save .png output directly from rust. 2018-09-11 09:46:50 -07:00
0c9edd9e61 Fullres book cover and add timing.
Squelch clippy warning in camera.rs.
2018-09-11 09:08:32 -07:00
823e75da88 Add boolean for drawing book cover. 2018-09-10 21:50:40 -07:00
f2c5cf48ad Update camera to implement defocused blur.
Removed tracer programs that no longer compile with new Camera API.
2018-09-10 21:43:39 -07:00
5ba579a374 Use Box<Hit> instead of reference in HitableList. 2018-09-10 21:01:40 -07:00
196a4b76bc Implement positional camera.
Bug fix for cross()
2018-09-09 21:27:34 -07:00
b342e00d4c Implement dielectrics (glassy) materials.
Add Neg to Vec3.
2018-09-09 20:23:28 -07:00
7c213e3a2b Implement Lambertian and Metal materials.
Fixed bug with Vec3::unit_vector().
Had to remove old example programs because Sphere::new() API changed to
allow materials.
2018-09-09 17:01:52 -07:00
73ca5c8454 Implement diffuse lighting, and gamma correction. 2018-09-09 14:49:21 -07:00
4584eeb08f Always in-progress renderer.
It is copied to an appropriately named render as chapters are
implemented.
2018-09-09 13:37:51 -07:00
9698afce43 Implement sub-sampling anti-aliasing.
Move camera to code to separate module.
2018-09-09 13:37:35 -07:00
35722b57b1 Closer to correct shading, but still not there. 2018-09-08 23:13:11 -07:00
15fe1e632c Add more abstraction.
Implement Sphere as its own module.
Create HitableList that can hold multiple objects.
Fixed shading problem in the process.
2018-09-08 23:10:26 -07:00
c16ba06a53 Normal shading of sphere.
Doesn't quite work right.
2018-09-08 21:53:15 -07:00
20c79a655b Implement Vec3 + f32 2018-09-08 21:52:49 -07:00
5ca6cc0809 Add sphere.
Move original tracer1 to tracer_blue_sky and create new tracer as
tracer_red_dot.
2018-09-08 21:17:46 -07:00
e45bb8ddad First fake raytracer. 2018-09-08 21:03:38 -07:00
cdd2d585a7 Clippy cleanup and module visibility cleanup. 2018-09-08 20:19:46 -07:00
b8861b7f8d Add simple ray module. 2018-09-08 19:58:24 -07:00
e1199611f0 Visibility cleanups. 2018-09-08 19:58:12 -07:00
577fa32b2d Use Vec3 in main program. 2018-09-08 19:50:13 -07:00
7f7b1d6d34 Implement Vec3 library. Lacks most inplace operators. 2018-09-08 19:42:31 -07:00
3dfd71282b simple_ppm writer. 2018-09-08 17:32:12 -07:00
0c5c6381fc Start of surface normal support. 2018-09-08 17:17:29 -07:00
e8d05eeaee Add sky Plane. 2018-08-12 21:23:19 -07:00
197c6df4a4 Add Plane rendering.
Add Element enum type that can hold Plane and Sphere.
2018-08-12 21:20:19 -07:00
a1de85036d Support multiple spheres. 2018-08-12 20:58:28 -07:00
277c6ef60b Implementation of part 1. The green circle. 2018-08-03 21:56:09 -07:00
ca3aa6c8b7 Move aobench into subdirectory. 2018-08-03 17:03:05 -07:00
548f4106bc Couldn't get -verbose to work, remove it. 2018-07-21 20:10:23 -07:00
f69704b7b1 Working renderer. 2018-07-21 19:24:30 -07:00
5a549957c4 Stub program to generate a simple ppm image and define basic types. 2018-07-18 22:11:20 -07:00