15 Commits

Author SHA1 Message Date
83515c60bf Fix 'dyn' lint on trait objects. 2019-10-12 08:38:19 -07:00
c8f5bf9e19 cargo fix --edition and add edition="2018" to Cargo.toml. 2019-02-07 16:36:55 -08:00
bf633756f6 Add scene representing the final image in raytracingthenextweek. 2018-10-06 07:26:49 -07:00
aeaf4994fe Implement isotropic scattering for ConstantMedium volumes. 2018-10-05 18:16:42 -07:00
6a1e8b2784 Add ConstantMedium and cornell_smoke scene.
Shows the ability to compute smoke as a wrapper for anything implementing Hit.
2018-10-04 21:43:05 -07:00
36b2fba5b7 De-boxed many uses of Hit and Material.
Use of generic parameter directly where possible in structures instead
of Box'd values.
Added Material implementations for Box<Material> and Arc<Material> to
aid in the automatic conversion when necessary to use a Sized value for
Material.
Implement From trait for [f32;3] to Vec3 to make some APIs Into<Vec3>
which is a bit nicer to use.
2018-10-03 20:53:37 -07:00
7684bb2088 Add translated and rotated cuboids to cornell box scene.
Chose name 'cuboid' because 'box' is a module imported by the prelude in
rust and makes things complicated.
2018-09-25 21:00:05 -07:00
9c5233e057 Implement DiffuseLight material.
Allow Scenes to define global_illumination so scenes without lighting
can continue to work.
2018-09-23 18:30:24 -07:00
34ce373269 Implement image based textures. 2018-09-23 15:53:46 -07:00
a1d3cce4e4 Add ConstantTexture and use it for Lambertian material. 2018-09-22 19:53:27 -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
c4e958975c Initial clumsy parallel renderer. 2018-09-12 15:24:52 -07:00
5ba579a374 Use Box<Hit> instead of reference in HitableList. 2018-09-10 21:01:40 -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