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