168 Commits

Author SHA1 Message Date
Josh Holtrop
bcbec65a8f converted shapes/Intersect::intersect() to using BoolIntersectionList
git-svn-id: svn://anubis/fart/trunk@152 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-24 03:04:26 +00:00
Josh Holtrop
ab2832a660 fixed compile issues with switch to new Shape::IntersectionList
git-svn-id: svn://anubis/fart/branches/2009-02-23_Shape_IntersectList_Update@145 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-23 20:26:45 +00:00
Josh Holtrop
0c7f85db96 updating IntersectList to new Shape::IntersectionList format
git-svn-id: svn://anubis/fart/branches/2009-02-23_Shape_IntersectList_Update@144 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-23 20:24:30 +00:00
Josh Holtrop
e23d5cdca4 added shapes/Intersect, need to rework IntersectList
git-svn-id: svn://anubis/fart/trunk@142 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-23 05:51:51 +00:00
Josh Holtrop
29b60f346e added process*() functions in Scene-load.cc for various shape types
git-svn-id: svn://anubis/fart/trunk@141 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-21 14:36:18 +00:00
Josh Holtrop
864ef9b51b added skeleton process{Material,Light,Shape} functions to Scene-load.cc
git-svn-id: svn://anubis/fart/trunk@140 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-20 17:40:34 +00:00
Josh Holtrop
94548d4418 Light.h including concrete light type class definitions
git-svn-id: svn://anubis/fart/trunk@139 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-20 16:35:48 +00:00
Josh Holtrop
5949a813df moved processNode(), processChildren(), and load() into main/Scene-load.cc
git-svn-id: svn://anubis/fart/trunk@138 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-20 16:33:05 +00:00
Josh Holtrop
354edb9662 removed extraneous parse() function from Scene.cc
git-svn-id: svn://anubis/fart/trunk@137 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-19 22:00:51 +00:00
Josh Holtrop
cda03ad45a moved main/Material to util/Material
git-svn-id: svn://anubis/fart/trunk@136 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-19 18:45:52 +00:00
Josh Holtrop
52103bf543 added static const cyan color, added cone to sample scene
git-svn-id: svn://anubis/fart/trunk@134 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-19 18:30:02 +00:00
Josh Holtrop
b9cc1fe9f9 added Scene::processNode() and Scene::processChildren()
git-svn-id: svn://anubis/fart/trunk@126 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-18 01:10:57 +00:00
Josh Holtrop
30932d00e9 Scene::load() calling parse() now
git-svn-id: svn://anubis/fart/trunk@125 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-17 23:40:09 +00:00
Josh Holtrop
f3e522262b removed knowledge of domain types from parser, removed process() from Node, added a global refptr<Node> object, took parse(fileName) out of Scene class
git-svn-id: svn://anubis/fart/trunk@123 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-17 22:59:53 +00:00
Josh Holtrop
4b0f506522 added Color::yellow, finished shapes/Box, added a couple boxes to sample scene
git-svn-id: svn://anubis/fart/trunk@121 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-17 05:36:48 +00:00
Josh Holtrop
6f2851f279 yyparse() now a friend function to Scene, light constructors not taking position arguments any more
git-svn-id: svn://anubis/fart/trunk@104 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-12 03:56:09 +00:00
Josh Holtrop
c136bda827 added the_Color to Node, material gathering AMBIENT, DIFFUSE, SPECULAR color values
git-svn-id: svn://anubis/fart/trunk@103 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-12 03:07:22 +00:00
Josh Holtrop
8a112009a6 converted shapes and lights collection in Scene to be refptrs instead of real pointers
git-svn-id: svn://anubis/fart/trunk@102 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-11 17:23:01 +00:00
Josh Holtrop
ee64558db6 made parser/parser.yy:parse() a method of class Scene so no global g_scene is needed
git-svn-id: svn://anubis/fart/trunk@100 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-11 17:08:38 +00:00
Josh Holtrop
0fc1e468fe removed test directory, converted Shape's material handle to a refptr<Material> instead of a Material *, made refptr<T>::operator*() and operator->() const members
git-svn-id: svn://anubis/fart/trunk@96 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-10 01:09:07 +00:00
Josh Holtrop
fc8a46853b added some setters to Scene, including some modules in parser, ready to do something with the parse results
git-svn-id: svn://anubis/fart/trunk@89 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-09 02:55:02 +00:00
Josh Holtrop
31a7f0fedf updated subdir Makefiles, added parser directory and parser/Makefile
git-svn-id: svn://anubis/fart/trunk@78 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-04 18:35:32 +00:00
Josh Holtrop
78fd509d0f back up to default ambient of (0.1, 0.1, 0.1), Phong shading working
git-svn-id: svn://anubis/fart/trunk@76 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-31 22:42:14 +00:00
Josh Holtrop
c4509d0594 added an ambient color component to Material, changed Lighting to use it
git-svn-id: svn://anubis/fart/trunk@75 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-31 22:34:36 +00:00
Josh Holtrop
7181a894a4 capping colors in main/Lighting; colors are maxing out too easily, might need a better reduction method
git-svn-id: svn://anubis/fart/trunk@74 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-31 18:29:28 +00:00
Josh Holtrop
6fbdf46122 fixed bug in util/Vector::reflect(), Phong shading getting much closer
git-svn-id: svn://anubis/fart/trunk@73 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-31 00:17:09 +00:00
Josh Holtrop
41b4354d52 trying to get Phong shading model working, having very large color values come back though
git-svn-id: svn://anubis/fart/trunk@72 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-30 20:53:13 +00:00
Josh Holtrop
8677680577 added main/Lighting module, added operator-() to util/Vector, added m_shininess to main/Light
git-svn-id: svn://anubis/fart/trunk@71 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-30 20:28:05 +00:00
Josh Holtrop
434064c03c updated main/Material setters & getters for diffuse & specular colors
git-svn-id: svn://anubis/fart/trunk@70 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-01-30 04:31:18 +00:00
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
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
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
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
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
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
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