69 Commits

Author SHA1 Message Date
Josh Holtrop
18c0c8d45f added diffuse and specular colors to Material, switched all "private:" to "protected:"
git-svn-id: svn://anubis/fart/trunk@69 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-30 02:26:46 +00:00
Josh Holtrop
04b8ea5f9e added main/Material module
git-svn-id: svn://anubis/fart/trunk@68 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-30 02:20:29 +00:00
Josh Holtrop
f087488b39 using Color instead of Vector where appropriate, updated main/Light to use diffuse and specular lights
git-svn-id: svn://anubis/fart/trunk@67 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-30 01:25:57 +00:00
Josh Holtrop
08a0047ba8 added proj() and reflect() to util/Vector, changed util/Transform to use Vector::proj() in lookAt()
git-svn-id: svn://anubis/fart/trunk@66 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-30 00:18:20 +00:00
Josh Holtrop
c5ac957dff updated BMP.cc to avoid compiler warnings
git-svn-id: svn://anubis/fart/trunk@65 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-29 23:16:51 +00:00
Josh Holtrop
47dd5a31fe fixed strange compile warning in fart.cc by making constructor arguments to Scene::Scene() consts
git-svn-id: svn://anubis/fart/trunk@64 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-29 14:49:41 +00:00
Josh Holtrop
866f22a637 added operator*(Vector,double) and operator/(Vector,double) to util/Vector; added lookAt() to util/Transform (needs testing)
git-svn-id: svn://anubis/fart/trunk@63 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-28 23:47:46 +00:00
Josh Holtrop
9041ec6a1c shapes/Shape.h now including specific shape headers (after base class definition), test/tests.cc fixed compiler warning, main/Scene drawing demo Plane, util/Transform not needlessly re-initializing m_matrix
git-svn-id: svn://anubis/fart/trunk@62 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-28 21:41:19 +00:00
Josh Holtrop
a52b456bfa updated Makefile to use -O1 in CXXFLAGS instead of -O3; -O2 and above currently break the app
git-svn-id: svn://anubis/fart/trunk@61 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-28 18:51:14 +00:00
Josh Holtrop
ca3087eac5 shapes returning transformed normals
git-svn-id: svn://anubis/fart/trunk@60 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-28 15:06:48 +00:00
Josh Holtrop
7a4bb7dbc2 added LinearSolver to util/Solver module; added shapes/Plane module
git-svn-id: svn://anubis/fart/trunk@59 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-28 15:02:05 +00:00
Josh Holtrop
e34bdf0d71 fixed test/tests.cc
git-svn-id: svn://anubis/fart/trunk@58 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-28 01:15:20 +00:00
Josh Holtrop
fa353392c6 updating main/Scene to accept points back instead of distances from intersect()
git-svn-id: svn://anubis/fart/trunk@57 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-27 23:03:24 +00:00
Josh Holtrop
83bb409ef9 added Shape::IntersectList for returning a list of intersection points instead of intersections distances; build currently broken; need to update Scene to take into effect this change
git-svn-id: svn://anubis/fart/trunk@56 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-27 18:48:04 +00:00
Josh Holtrop
47cf177a15 removed svn:executable for some files
git-svn-id: svn://anubis/fart/trunk@55 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-27 18:28:38 +00:00
Josh Holtrop
5213df1af3 added shapes/Shape.cc
git-svn-id: svn://anubis/fart/trunk@54 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-27 18:15:06 +00:00
Josh Holtrop
f4781e2889 updated getRayHits(), fixed bug in Scene::ShapeDistance(Shape *, double)
git-svn-id: svn://anubis/fart/trunk@53 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-27 01:34:00 +00:00
Josh Holtrop
ecace9f5e8 added Scene::ShapeDistance construct
git-svn-id: svn://anubis/fart/trunk@52 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-27 00:47:21 +00:00
Josh Holtrop
e8fd42f81f broke traceRay() out into getRayHits()
git-svn-id: svn://anubis/fart/trunk@51 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-27 00:11:14 +00:00
Josh Holtrop
38b2304641 added Color m_color instance variable to Light base class
git-svn-id: svn://anubis/fart/trunk@50 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-26 20:59:46 +00:00
Josh Holtrop
e0d545a6b7 added util/Color module, updated Light and PointLight
git-svn-id: svn://anubis/fart/trunk@49 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-26 20:08:42 +00:00
Josh Holtrop
072bf75c04 added main/{Light,PointLight} modules
git-svn-id: svn://anubis/fart/trunk@48 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-26 16:05:23 +00:00
Josh Holtrop
7d7ec130e0 added operators +, - to Vector, added inverse transform instance variable to shapes/Shape, changed Sphere to use its inverse transform when calculating intersections and normals, removed simplistic lighting from main/Scene
git-svn-id: svn://anubis/fart/trunk@47 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-26 14:02:15 +00:00
Josh Holtrop
dad8497bf4 multisampling working
git-svn-id: svn://anubis/fart/trunk@46 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-25 23:01:46 +00:00
Josh Holtrop
d88f1ab5fd fixed bug in QuadraticSolver, cheap lighting working
git-svn-id: svn://anubis/fart/trunk@45 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 23:56:39 +00:00
Josh Holtrop
761925220b added getNormalAt() to Shape & Sphere, trying to get basic lighting
git-svn-id: svn://anubis/fart/trunk@44 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 18:09:27 +00:00
Josh Holtrop
801f61f48c Ray-Sphere intersections are working, no lighting/shading/materials/reflectance
git-svn-id: svn://anubis/fart/trunk@43 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 17:20:23 +00:00
Josh Holtrop
bd12e9798f Transform::rotate() using radians instead of degrees in sin(), cos() calls
git-svn-id: svn://anubis/fart/trunk@42 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 16:47:08 +00:00
Josh Holtrop
20eafaf9f4 fixed view plane distance calculation to use tan() and convert degrees to radians
git-svn-id: svn://anubis/fart/trunk@41 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 16:44:39 +00:00
Josh Holtrop
a1c81e5adc sphere drawing, but stretched horizontally... have to figure that out yet
git-svn-id: svn://anubis/fart/trunk@40 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 16:00:43 +00:00
Josh Holtrop
97b9fa9eab added getInverse() to util/Transform, fixed transform_*() functions
git-svn-id: svn://anubis/fart/trunk@39 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 15:28:53 +00:00
Josh Holtrop
7d461477b3 added operator<<(ostream, Ray) to util/Ray, main/Scene now calculating rays
git-svn-id: svn://anubis/fart/trunk@38 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 15:15:35 +00:00
Josh Holtrop
f03b19a022 added messages to main/Scene, util/Matrix constructor sets matrix to identity
git-svn-id: svn://anubis/fart/trunk@37 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 14:57:47 +00:00
Josh Holtrop
c32e826ee3 added --field-of-view and m_vfov to Scene
git-svn-id: svn://anubis/fart/trunk@36 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 14:43:49 +00:00
Josh Holtrop
73cdd1a5a1 improving Ray, Sphere, Solver, Scene a bit
git-svn-id: svn://anubis/fart/trunk@35 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 14:37:18 +00:00
Josh Holtrop
bdb648b84f added transform_normal() to util/Transform
git-svn-id: svn://anubis/fart/trunk@34 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 04:15:25 +00:00
Josh Holtrop
af0afe1631 added CXXFLAGS with -O3 to main Makefile
git-svn-id: svn://anubis/fart/trunk@33 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 02:14:45 +00:00
Josh Holtrop
63d56c5e43 renamed transformation operations in util/Transform for clarity
git-svn-id: svn://anubis/fart/trunk@32 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 02:13:17 +00:00
Josh Holtrop
277252ef77 added transformation operations to util/Transform
git-svn-id: svn://anubis/fart/trunk@31 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 00:27:29 +00:00
Josh Holtrop
2deee25004 added operator%() to util/Matrix
git-svn-id: svn://anubis/fart/trunk@30 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-23 00:14:22 +00:00
Josh Holtrop
0044dbb544 added Vector(double,double,double) constructor, filled in rotate() in Transform
git-svn-id: svn://anubis/fart/trunk@29 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-22 21:30:35 +00:00
Josh Holtrop
cd9530d21b filled in scale() transformation in util/Transform
git-svn-id: svn://anubis/fart/trunk@28 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-22 20:36:05 +00:00
Josh Holtrop
13d7d90b87 added operator*=() to util/Matrix
git-svn-id: svn://anubis/fart/trunk@27 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-22 20:31:13 +00:00
Josh Holtrop
1454fe8c2e added --help option, updated util/Transform
git-svn-id: svn://anubis/fart/trunk@26 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-22 03:28:51 +00:00
Josh Holtrop
5692558733 main/Scene applying command-line options after loading input file
git-svn-id: svn://anubis/fart/trunk@25 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-22 03:07:14 +00:00
Josh Holtrop
b6008116cf Scene now writing blank BMP file, accepting settings parameters
git-svn-id: svn://anubis/fart/trunk@24 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-22 02:51:43 +00:00
Josh Holtrop
959219ffb8 updated main/Scene to accept std::map of parameters
git-svn-id: svn://anubis/fart/trunk@23 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-22 02:26:32 +00:00
Josh Holtrop
5c9857e9a1 added a few scene options to the scene_options map for Scene to deal with
git-svn-id: svn://anubis/fart/trunk@22 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-22 01:29:35 +00:00
Josh Holtrop
f143245c53 updated main/Scene module a tad
git-svn-id: svn://anubis/fart/trunk@21 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-20 22:35:44 +00:00
Josh Holtrop
a52733c996 updated main/fart.cc a tad
git-svn-id: svn://anubis/fart/trunk@20 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-20 21:51:03 +00:00