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
19aeb7b14e
Update Sphere to inherit from Object
...
- Had to do a couple updates here to adapt to the new code style...
- Update DoesIntersect for code style and to pass back t values in the vector
instead of the float array.
2014-07-20 16:49:55 -07:00
2036521f42
Update code style for Object
...
- Remove Shape, because it seems to be mostly extra. All renderable objects now
derive from Object, rather than Shape
- Light (which inherited from Object before) now defines its own origin, but
this is coming in a later commit...
- Use charles namespace
- Use a std::vector<double> instead of float** to pass back intersection points.
This is kind of a biggie because it made the render process 50% slower :( I'll
have to work out why and maybe fix it...
2014-07-20 16:48:09 -07:00
ac8421b5e1
Update code style for Material objects
2014-07-20 16:45:40 -07:00
0d2011931c
Account all types of rays -- print them at the end
2014-07-20 14:21:12 -07:00
c65c6a3cfd
Use shared_ptr for Scene::mCamera
...
Makes memory management a bit easier...
2014-07-20 12:37:31 -07:00
c564791d1a
Camera doesn't inherit from Object; defines its own origin.
2014-07-20 12:37:04 -07:00