Commit graph

335 commits

Author SHA1 Message Date
5390600cdd TODO: what does this (apparently) random conditional do? 2014-08-02 15:32:27 -07:00
8ea832c090 Disable specular calculations for now.
Just to simplify things while I'm figuring out the lighting model...
2014-08-02 15:23:22 -07:00
79c951030d Move Stats to its own module
Move Stats to its own module and pass it around to the intersection methods to keep track of how many tests and successful intersections there are.
2014-08-02 15:21:14 -07:00
b60e27824b Forgot declaration of shadowRay <- shadow_ray 2014-08-02 14:33:50 -07:00
5ddfe068a6 No specular reflections (for now) 2014-08-02 14:33:32 -07:00
8de737decd Little bit of code clean up in TraceRay 2014-08-02 14:30:40 -07:00
1a5a46c468 Use NearZero in plane intersection calculations
Also clean up the "point on surface" logic and remove the normal flipping (doesn't make sense without a ray origin anyway).
2014-08-02 14:12:01 -07:00
82c7e75e11 Normalize primary ray direction vectors 2014-08-02 14:10:28 -07:00
57f3154986 Add a NearZero for temporary values 2014-08-02 14:10:04 -07:00
0d4b700546 Add EPSILON, MAX_DISTANCE, and NearZero and TooFar 2014-08-02 12:19:46 -07:00
0d6a238b44 Clean up some implementation header comments 2014-08-02 10:40:41 -07:00
662867f529 Return the appropriate normal
I'm not actually sure this is necessary...
2014-08-02 10:39:56 -07:00
20b88f6dac Clarify some notation in plane intersection 2014-08-02 10:39:29 -07:00
964b6a5751 Add Plane object parsing to ObjectParser 2014-08-02 10:13:39 -07:00
d37b82b116 A new scene: plane with a sphere above it 2014-08-02 10:04:10 -07:00
6ddd47fe64 Redo planes in normal-distance form
This is how POV-Ray does it. This is how The Book does it. I'm just going along for the ride… :) But seriously, it seems to make some things easier.
2014-08-02 10:00:54 -07:00
d44fa4dd2a Add Vector3::normalized()
Makes a copy of the vector, normalizes it, and returns it.
2014-08-02 10:00:00 -07:00
c80a6e9ac7 Rename object_plane -> objectPlane 2014-08-02 09:26:22 -07:00
ea1fac7501 Add ctags file 2014-08-02 00:42:59 -07:00
b6d7a65ae5 Merge branch 'feature/logging' into develop 2014-08-02 00:40:52 -07:00
86a4594e7f Initialize logging based on passed in parameters 2014-08-02 00:40:38 -07:00
f8ec140f8e Do some logging in Scene 2014-08-02 00:28:02 -07:00
3ab7c92d36 Duplicate logging symbols :( 2014-08-02 00:27:50 -07:00
0346e21ebd Set the log level to trace. 2014-08-02 00:02:11 -07:00
97a172bbe9 Add logModule.hh
Defines some helper macros to make it easier to log message. Define LOG_NAME before including this file and a number of logging macros will be defined that will allow users to skip specifying the name of the log stream for each statement.
2014-08-02 00:02:01 -07:00
3a94433f5c Set global default level in Init() 2014-08-01 23:49:52 -07:00
f8c7c9c6ea Add function Tracer 2014-08-01 23:49:33 -07:00
7cfb304296 Update logging stuff in main() 2014-08-01 23:28:13 -07:00
ea6cd488a6 LOG_FOO macros to help with printing messages 2014-08-01 23:27:32 -07:00
089c4cdc73 Print milliseconds 2014-08-01 23:27:18 -07:00
627854bc20 Use logging! 2014-08-01 22:28:47 -07:00
c00afe1cd1 Rudimentary logging! 2014-08-01 22:28:41 -07:00
d2b2382c95 Include <memory> in object.h 2014-07-25 15:10:29 -07:00
bad80c9895 Scons default build target: charles 2014-07-25 13:31:09 -07:00
6a9c1e87e2 Ignore *.log files 2014-07-24 08:05:03 -07:00
900c667994 Couple more scenes to test coordinate grids 2014-07-24 08:03:13 -07:00
63bb28a94a Push tNear and tFar onto t&, rather than t0 and t1 2014-07-23 07:39:55 -07:00
2b9d3a3824 Add a new scene with a single unit-box at the origin 2014-07-22 21:40:39 -07:00
f5f47f5a9a Print number of objects in the scene before rendering 2014-07-22 21:40:25 -07:00
deff3079b8 Update ObjectParser for boxes
ObjectParser's constructor takes the tag value, which determines the type of object constructed.

ObjectParser adds "near" and "far" sections for boxes.
2014-07-22 21:40:13 -07:00
b878db592c Getters and setters for Near and Far vectors 2014-07-22 21:37:49 -07:00
15db0c42d4 Box objects, parallel to the coordinate axes
This change implements Kay-Kajiya intersection (with slabs) too!
2014-07-22 20:46:47 -07:00
d69d708b31 Convert Vector3 to use Doubles 2014-07-22 20:46:10 -07:00
1d22e27d81 Specify object types in threeSpheres.yml
These don't actually do anything yet, but I'd like to get this going once I start
adding more object types.
2014-07-20 16:55:52 -07:00
6f844f7c2a Update ObjectParser for new code style... 2014-07-20 16:55:26 -07:00
5a8d634590 Update Scene a bit for new code style and namespaces in Object and Sphere 2014-07-20 16:54:10 -07:00
cf7806484f Some generic, useful types
- Double -> double
- DoubleVector -> std::vector<Double>
- TVector -> DoubleVector
2014-07-20 16:53:39 -07:00
e5cb9be1aa Don't include or build object_plane.{cc,h} because it hasn't been updated and it doesn't work. 2014-07-20 16:53:03 -07:00
c185a24f34 Define shared_ptr<Sphere> as Sphere::Ptr 2014-07-20 16:51:58 -07:00
12f180a3de Light implements its own origin 2014-07-20 16:51:20 -07:00