124 Commits

Author SHA1 Message Date
Josh Holtrop
054a5e8f0e distributed slave nodes forking for each core to take advantage of multicore architectures
git-svn-id: svn://anubis/fart/trunk@245 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-15 02:44:05 +00:00
Josh Holtrop
f6c6e8ec36 added startChildren() in main/fart module, soon to be replaced with a straight fork() call
git-svn-id: svn://anubis/fart/trunk@244 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-15 02:35:14 +00:00
Josh Holtrop
37c319a782 moved distrib object to a top-level object in the function so it would not be destroyed before main() exits; added exit(0) call at end of main()
git-svn-id: svn://anubis/fart/trunk@242 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-15 01:03:42 +00:00
Josh Holtrop
d98c26da66 rearranged the failure handling code
git-svn-id: svn://anubis/fart/trunk@241 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-15 00:58:35 +00:00
Josh Holtrop
aaa38f6f2c added TCP_NODELAY socket option to communication sockets for messages to be sent immediately
git-svn-id: svn://anubis/fart/trunk@239 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-14 23:53:50 +00:00
Josh Holtrop
95341049c8 fixed output file name NULL pointer bug
git-svn-id: svn://anubis/fart/trunk@238 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-14 22:13:48 +00:00
Josh Holtrop
5264f1de7e reworking distrib infrastructure; server still terminates execution prematurely
git-svn-id: svn://anubis/fart/trunk@237 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-14 02:33:37 +00:00
Josh Holtrop
e21d948d52 added distrib desctructor, closing sockets
git-svn-id: svn://anubis/fart/trunk@235 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-13 22:34:58 +00:00
Josh Holtrop
898bf3a01c added mutex and std::map to keep track of tasks in progress; Scene waits for their completion
git-svn-id: svn://anubis/fart/trunk@232 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-13 03:31:44 +00:00
Josh Holtrop
c9c3c942fb fixed bug by multiplying task_id by UNIT_TASK_SIZE
git-svn-id: svn://anubis/fart/trunk@229 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-06 22:17:09 +00:00
Josh Holtrop
8424e34a91 set sockets to close on exec
git-svn-id: svn://anubis/fart/trunk@228 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-06 21:57:18 +00:00
Josh Holtrop
33f554d714 reworking distrib & Scene to work together
git-svn-id: svn://anubis/fart/trunk@226 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-06 18:38:30 +00:00
Josh Holtrop
d6aa5b6e69 added pthread support for starting the server listen/accept loop
git-svn-id: svn://anubis/fart/trunk@224 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-05 18:41:39 +00:00
Josh Holtrop
6fdaf01214 passing client options to distributed clients, ready to actually distribute work
git-svn-id: svn://anubis/fart/trunk@223 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-05 18:12:44 +00:00
Josh Holtrop
1dbe7040e4 working on distribution infrastructure some more, ssh working
git-svn-id: svn://anubis/fart/trunk@222 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-04-05 16:42:30 +00:00
Josh Holtrop
584160265f updated scenes/die.fart, moved where backface checking was occurring in main/Scene
git-svn-id: svn://anubis/fart/trunk@217 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-15 22:07:06 +00:00
Josh Holtrop
7d9eb65fde working on die scene, fixed bug in Scene-load for loading colors applied to lights
git-svn-id: svn://anubis/fart/trunk@216 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-15 21:11:01 +00:00
Josh Holtrop
5590c533ce Fixed boolean objects to determine if rays start inside or outside the boolean; changed constructors to accept a list of shapes instead of just two shapes; changed parser to accept any number of top-level shapes inside of a boolean shape block; changed scenes/die.fart to reflect this change (a drastic simplification)
git-svn-id: svn://anubis/fart/trunk@215 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-15 19:51:21 +00:00
Josh Holtrop
f103b71ed6 added SUBDIRS to top-level Makefile to make adding subdirectories easier
git-svn-id: svn://anubis/fart/trunk@214 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-13 19:26:12 +00:00
Josh Holtrop
91e490b65a added shapes/shapes.h, shapes/BoolShape, made Intersect, Union, and Subtract derive from BoolShape, made BoolShape::setMaterial() call setMaterial() on sub-shapes so that materials applied to boolean objects will be applied to all sub-objects
git-svn-id: svn://anubis/fart/trunk@212 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-12 02:59:35 +00:00
Josh Holtrop
86888fa461 changed Scene::calculateLightContribution() to return a Color instead of a double and take into account the color of any semi-transparent objects that are passed through en route to the light source... this leads to shadow colors tainted by the color of the objects through which the light is travelling
git-svn-id: svn://anubis/fart/trunk@211 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-12 02:30:28 +00:00
Josh Holtrop
091fcadd39 added -d flag to usage information
git-svn-id: svn://anubis/fart/trunk@207 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-10 18:29:45 +00:00
Josh Holtrop
72a5023539 updated Makefiles to not print the "*.dep: No such file or directory" warnings
git-svn-id: svn://anubis/fart/trunk@204 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-10 01:54:23 +00:00
Josh Holtrop
9f9ce1a8f5 added maximum depth command-line argument (-d) and scene option (max_depth); prettified elapsed time output when greater than 60 seconds
git-svn-id: svn://anubis/fart/trunk@203 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-10 00:01:21 +00:00
Josh Holtrop
60b29d658d modified shapes and Scene to return surface normal in the intersect object
git-svn-id: svn://anubis/fart/branches/2009-03-09_intersect_returning_normals@200 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-09 23:17:31 +00:00
Josh Holtrop
88444e25b8 added scenes/csg.fart, fixed bug in loading boolean objects in Scene-load.cc
git-svn-id: svn://anubis/fart/trunk@196 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-09 00:09:33 +00:00
Josh Holtrop
09e97510d8 added built-in timer around Scene::render() call
git-svn-id: svn://anubis/fart/trunk@195 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-08 22:51:47 +00:00
Josh Holtrop
db72b5ba82 scanning scene files for camera definitions before shapes and lights
git-svn-id: svn://anubis/fart/trunk@194 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-08 22:31:15 +00:00
Josh Holtrop
feeaa34d62 tweaked Scene::calculateLightContribution() and scenes/cyls.fart slightly
git-svn-id: svn://anubis/fart/trunk@189 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-07 18:38:40 +00:00
Josh Holtrop
608939bff4 Scene-load setting light position based on the current transform
git-svn-id: svn://anubis/fart/trunk@188 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-06 23:32:00 +00:00
Josh Holtrop
24ef1eca3c added scenes/trans-boxes.fart, changed Scene to consider all back-faces as front-faces by inverting the normal vector, fixed bug in Scene::calculateLightContribution() which was messing up shadow values and back-face intensities for transparent objects
git-svn-id: svn://anubis/fart/trunk@187 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-06 19:12:26 +00:00
Josh Holtrop
b50c4de1bc added parser, nodes, Scene-load support for transparency in materials
git-svn-id: svn://anubis/fart/trunk@186 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-05 20:04:13 +00:00
Josh Holtrop
f9cf1381a6 working on shadows but they are appearing in weird places...
git-svn-id: svn://anubis/fart/trunk@185 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-04 02:03:21 +00:00
Josh Holtrop
7d0b4c5646 moved Lighting::computePhong() into Scene, removed Lighting module
git-svn-id: svn://anubis/fart/trunk@184 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-04 00:16:32 +00:00
Josh Holtrop
e233056880 added Color::operator*=(), added jitter computation to reflectance and transparency recursion, recursing now but there is still a jitter or recursion issue
git-svn-id: svn://anubis/fart/trunk@182 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-03 04:30:46 +00:00
Josh Holtrop
1f00625379 made verbose the default option
git-svn-id: svn://anubis/fart/trunk@181 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-03 03:22:12 +00:00
Josh Holtrop
73cc495a79 removed debug print
git-svn-id: svn://anubis/fart/trunk@180 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-03 03:08:11 +00:00
Josh Holtrop
bb5eb07c75 fixed bug in material definitions, added them to cyls.fart, they are working now!
git-svn-id: svn://anubis/fart/trunk@179 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-03 03:06:56 +00:00
Josh Holtrop
31e2604f98 Scene-load.cc handling material definitions
git-svn-id: svn://anubis/fart/trunk@178 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-03 02:56:33 +00:00
Josh Holtrop
56a5fa6166 added cyls.fart sample scene, removed hard-coded scene from Scene-load.cc; reading from a file is working!
git-svn-id: svn://anubis/fart/trunk@176 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-02 00:41:27 +00:00
Josh Holtrop
84f6b04cd7 removed static const Material::white (had a problem with C++ since the order that the static const constructors were being called in was not correct according to the order that the code depended on them), made Shape constructor use a common default material instead of recreating one every time
git-svn-id: svn://anubis/fart/trunk@174 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-02 00:17:56 +00:00
Josh Holtrop
6a649ecac7 fixed Lighting to ignore dot products less than 0 for diffuse coefficients; this broke shapes/Subtract again. fixed Material::white to be assigned to by Material() as evidently it was not calling the constructor properly otherwise. added initializer in Material::Material() to set ambient color to white. Scene constructing PointLight instead of a raw Light when loading from a file
git-svn-id: svn://anubis/fart/trunk@173 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-01 23:50:53 +00:00
Josh Holtrop
adf7997417 added .todo file, commented out hard-coded sample scene
git-svn-id: svn://anubis/fart/trunk@172 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-01 22:52:51 +00:00
Josh Holtrop
65c447f85a filled out Scene::processLight(), added color keyword to light specification
git-svn-id: svn://anubis/fart/trunk@171 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-01 22:41:23 +00:00
Josh Holtrop
0ea6e96e0a filled out Scene::processTransformBlock()
git-svn-id: svn://anubis/fart/trunk@170 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-03-01 22:31:42 +00:00
Josh Holtrop
84249c8231 filled in Scene::processOptions()
git-svn-id: svn://anubis/fart/trunk@169 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-28 23:22:36 +00:00
Josh Holtrop
bb07e12193 added Scene::process{Camera,Options,TransformBlock}()
git-svn-id: svn://anubis/fart/trunk@168 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-28 22:59:11 +00:00
Josh Holtrop
32fcafc687 filled out Scene::processBool() to handle all boolean shapes; added Node::isShape() virtual function to determine whether a node object represents a shape node
git-svn-id: svn://anubis/fart/trunk@167 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-28 21:22:30 +00:00
Josh Holtrop
5a83786103 filled out Scene::processPlane()
git-svn-id: svn://anubis/fart/trunk@166 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-28 20:39:29 +00:00
Josh Holtrop
e40677ba77 added "cyl" token to parser and parser rules for cyl object
git-svn-id: svn://anubis/fart/trunk@165 7f9b0f55-74a9-4bce-be96-3c2cd072584d
2009-02-28 20:32:23 +00:00