Commit Graph

38 Commits

Author SHA1 Message Date
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