d7ff6b194e
Roughly try to get the base name for output files
2014-08-05 22:00:49 -07:00
c380a3c3cd
Ignore .DS_Store files
2014-08-04 07:09:42 -07:00
14db2752ae
Log where the camera is looking
2014-08-03 20:13:00 -07:00
589b1f23ec
Camera GetTypeString and WriteType declarations
2014-08-03 20:12:40 -07:00
781c8cbe9f
Log camera before logging scene objects
2014-08-03 20:12:10 -07:00
08bd04d8da
Fancier way of logging the camera's parameters
2014-08-03 20:12:00 -07:00
5ac721d601
Lots of comments about what LookAt is doing
2014-08-03 20:11:22 -07:00
c2a4372467
Add Camera::IsLeftHanded()
...
A method that returns true if the camera's coordinate system is left-handed.
2014-08-03 20:10:52 -07:00
a7020545c1
New header comment for camera.cc
2014-08-03 19:10:43 -07:00
f99608085e
Log the camera before rendering
...
Implement an operator<< for Cameras. Log the scene's camera.
2014-08-03 19:10:31 -07:00
bcf93bb4ce
LookAt comments
2014-08-03 18:51:49 -07:00
0df6244b8b
Bit of code clean up in LookAt
2014-08-03 18:51:41 -07:00
7297bc5c17
Add Camera::LookAt
...
This is identical to the POV-Ray look_at keyword for cameras. In fact, I stole the code almost directly from them… It's super handy for panning and tilting the camera towards a particular point, and saves me having to do dubiously accurate direction vector calculations by hand.
I still need to figure out what exactly this math is doing.
2014-08-03 18:34:00 -07:00
e64b9403ac
Log some extra spaces when logging scene objects
2014-08-03 17:38:22 -07:00
b1c818ac20
Modernize object_sphere
...
Rename files objectSphere. Clean up dependencies.
2014-08-03 17:35:12 -07:00
a0fbecf483
Log all objects before starting the render
2014-08-03 17:25:25 -07:00
4828cb313f
Add Write methods to scene objects
...
Write methods are polymorphic, overridden by subclasses. There is a single operator<< for Objects that calls the right Write() method for the object. Neat.
2014-08-03 17:25:00 -07:00
b56bbf4ced
Root logger is called "ROOT" not "root"
2014-08-03 17:02:25 -07:00
ecc6c1efcd
TODO about raising an error for non-intersecting normals
2014-08-03 16:37:03 -07:00
92e67215b9
Get rid of commented out Box intersection code
2014-08-03 16:36:12 -07:00
556e13ae74
I was a little to hasty with this clean up
...
I actually need this check to get the closest shape for intersection.
2014-08-03 13:05:22 -07:00
4cbe9df324
Legacy code clean up for t values
...
Intersection methods push values into the t vector in ascending order, so no need to check them in TraceRay.
2014-08-03 12:46:14 -07:00
2ade996783
p.z comparison was comparing against mFar.y
2014-08-03 12:45:34 -07:00
6f4d91af01
Ray parameterization takes a Double
2014-08-03 12:44:53 -07:00
b1d18a124f
Move the oneBox camera to see the angles
2014-08-03 12:24:15 -07:00
d79c95be71
Playing with the implementation of slab intersection
...
This stuff is commented out anyway because it all moved to IntersectSlab...
2014-08-03 12:23:59 -07:00
3ce6987d78
Add the declaration of Box::IntersectSlab
2014-08-03 12:23:19 -07:00
8831dec40c
Use NearlyEqual in Box::compute_normal
2014-08-03 12:23:05 -07:00
ecb15470ac
Some tweaks to floating point utility methods
...
- Implement NearlyEqual
- NearZero and TooFar take const Double&
- NearZero and NearlyEqual are templated to take Double& and Double&& (and anything else that can be subtracted and/or passed into std::fabs.
2014-08-03 12:22:30 -07:00
8d5dfe5154
Move slab intersection to Box::IntersectSlab
...
Makes it easier to debug because I don't have to change things in three places.
This change also includes the fix! The swap was the problem. I didn't have the optimization right. I'll have to go back and figure it out.
2014-08-03 12:20:48 -07:00
8275c9baee
Update header for basics.h
2014-08-03 12:18:53 -07:00
dc1849a786
Test reverse subtraction (v2 - v1)
2014-08-03 10:51:38 -07:00
467edaf02b
planeSphere scene: move some stuff around
...
To get a better view of where things are supposed to be.
2014-08-03 08:18:13 -07:00
6dcb9dd37f
The problem was this one subtraction. Seriously.
2014-08-02 23:46:02 -07:00
e638764340
Put the light where I actually want it to be
2014-08-02 23:45:49 -07:00
f03945c0f7
Always return the normal, even if the point isn't in the plane
...
Getting so much closer!
2014-08-02 15:40:24 -07:00
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