Commit graph

213 commits

Author SHA1 Message Date
899064ce42 Add a perspective camera
Finally! :D Verified (mostly) and carefully thought through by looking at the
Pov-Ray code and doing the linear algebra by hand. Fun times.
2014-07-16 23:31:39 -07:00
360bc52080 I don't really know if this is correct; I have not verified it 2014-07-16 23:30:25 -07:00
0e1106aa41 Update the call signature of compute_primary_ray
It takes the current X and Y coordinates and the height and width of the image.
2014-07-16 23:29:54 -07:00
05327fbe7a Missed a few things when I…
- Removed the (viewing) angle member
- Added Up and Right vectors
2014-07-16 23:29:01 -07:00
72e93eccb3 Reformat description of OrthographicCamera::compute_primary_ray 2014-07-16 23:26:41 -07:00
8eb98270af Add Up and Right vectors to the camera 2014-07-16 23:25:54 -07:00
8336753bcf Remove pixel dimensions from camera
The scene computes those and gives them to the camera for each ray
2014-07-16 23:24:32 -07:00
ca5cabb6ef Add LinearCombination for Vectors 2014-07-16 23:23:26 -07:00
2834fa45c6 Replace dimensions code in SceneParser with a few lines of VectorParser magic
Neat!
2014-07-15 23:33:02 -07:00
bdd0afddf5 Define format strings for int and double ParseScalar() methods 2014-07-15 23:32:20 -07:00
b8d0b274b1 Implement templated VectorParser 2014-07-15 23:31:48 -07:00
d12f8c9fa6 Define ParseScalar<T> and ParseScalarTraits
For parsing single YAML scalar values into C++ datatypes (mostly ints and doubles).
2014-07-15 23:28:59 -07:00
557d9a047f Define the Notify() method on UtilityParser 2014-07-15 23:27:24 -07:00
d20e4154fe Big YAML parser cleanup 2014-07-15 17:27:27 -07:00
687de91a81 Quick 'n dirty setters for height and width 2014-07-13 20:12:10 -07:00
f59ec98035 HOLY CRAP I CAN READ DIMENSIONS FROM YAML FILES 2014-07-13 20:11:50 -07:00
6a8bcc4973 Add back a bunch of the programatic scene stuff 2014-07-13 20:11:37 -07:00
3687029bcd Parse YAML files in main() 2014-07-13 18:06:21 -07:00
b4327303ee Add YAML reader 2014-07-13 18:06:03 -07:00
dfd57da14f Correcting some build problems with old-style SConscripts 2014-07-13 09:23:42 -07:00
391251940b Merge remote-tracking branch 'base/master' into develop
Conflicts:
	.gitignore
	SConstruct
	src/SConscript
	test/SConscript
2014-07-13 08:24:16 -07:00
3ddfd94dfa No planes 2014-07-13 07:43:18 -07:00
2134f6a013 Basic template SConscript 2014-01-30 15:13:54 -08:00
85213b6f50 Add empty src/SConscript 2014-01-30 14:08:20 -08:00
810990cbe9 Return Vector3::Zero for normal if point is not on surface of plane 2013-09-22 17:43:13 -07:00
a13ce45d39 Shift scene objects around to try to see a plane... 2013-09-22 17:42:50 -07:00
ebb9b7aab9 Shift the plane down (I think) 2013-09-22 12:13:11 -07:00
34296feeb2 Add a plane to the scene 2013-09-22 10:16:32 -07:00
d166752f22 Add object_plane.cc to the build 2013-09-22 10:16:27 -07:00
c405302613 Add operator<< overload for Object 2013-09-22 10:16:15 -07:00
c6b8b167ca Add operator<< overloads for Vector3, Ray, and Color 2013-09-22 10:15:41 -07:00
2ea0589b44 Add Planes 2013-09-22 09:58:40 -07:00
5d14a63c37 Add cross product operation to Vector3 2013-09-22 08:37:58 -07:00
a41817217a Blend specular color with reflected color 2013-09-21 17:14:47 -07:00
d5f640871c Comment about lambert shading 2013-09-21 17:06:49 -07:00
daeb052003 Don't acknowledge intersections closer than t=1e-2.
This avoids intersections with the shape itself.
2013-09-21 17:04:54 -07:00
6c1e8c7ffb Add min_weight property to Scene 2013-09-21 17:01:11 -07:00
482896cfa1 First pass at doing reflections -- splotchy... 2013-09-21 16:45:30 -07:00
58f3cdd304 Add default values for trace_ray depth and weight arguments 2013-09-21 16:45:10 -07:00
745aa27447 Add specular parameters to Material 2013-09-21 15:53:16 -07:00
90530b74ef Return Black if max depth exceeded 2013-09-21 15:42:11 -07:00
f6e92f2571 Fix compiler errors in camera module 2013-09-20 09:21:25 -07:00
746731398a Accessors for Camera attributes 2013-09-20 09:10:56 -07:00
764afab8ac Camera stuff -- empty implementations of compute_primary_ray 2013-09-20 09:10:56 -07:00
fb6920e923 Add X, Y, and Z unit vectors 2013-09-20 09:10:55 -07:00
99f98d2bf5 Add virtual destructor to Writer 2013-09-20 09:10:55 -07:00
4523671920 Forward declare Scene class in Writer 2013-09-20 09:10:43 -07:00
16a37f6fb3 Shadows! 2013-09-13 18:56:07 -07:00
3dbde9a60d Set diffuse parameters for materials 2013-09-13 18:39:31 -07:00
529b1978a6 Use diffuse parameters to compute shading 2013-09-13 18:39:23 -07:00