working on report
git-svn-id: svn://anubis/gvsu@404 45c1a28c-8058-47b2-ae61-ca45b979098e
This commit is contained in:
parent
0081edb738
commit
9adc5a2136
@ -21,15 +21,6 @@
|
||||
background-color: #999;
|
||||
}
|
||||
hr { margin: 2em auto; }
|
||||
tt {
|
||||
display: block;
|
||||
margin: 0.4em 0px;
|
||||
padding: 0.1em 0.8ex;
|
||||
background-color: #FFF;
|
||||
border-style: dashed;
|
||||
border-width: 1px;
|
||||
border-color: #900;
|
||||
}
|
||||
img { border-style: none; }
|
||||
</style>
|
||||
</head>
|
||||
@ -50,5 +41,85 @@
|
||||
<hr/>
|
||||
<h2>FART Final Report</h2>
|
||||
|
||||
<h4>Table of Contents</h4>
|
||||
<ol>
|
||||
<li><a href="#problem">The Problem</a></li>
|
||||
<li><a href="#model">Model</a></li>
|
||||
<li><a href="#design">Design</a></li>
|
||||
<li><a href="#implementation">Implementation</a></li>
|
||||
<li><a href="#evaluation">Evaluation</a></li>
|
||||
<li><a href="#futurework">Future Work</a></li>
|
||||
</ol>
|
||||
|
||||
<a name="problem" />
|
||||
<h4>The Problem</h4>
|
||||
<p>
|
||||
FART is my semester project for the Computer Science 658 class
|
||||
at Grand Valley State University.
|
||||
My goal is for FART to be a distributed, fault-tolerant,
|
||||
object-oriented raytracer.
|
||||
The name is a
|
||||
<a href="http://en.wikipedia.org/wiki/Recursive_acronym">recursive acronym</a>
|
||||
similar to GNU or LAME.
|
||||
</p>
|
||||
<p>
|
||||
The input to the program will be a scene description file.
|
||||
Scene description files are structured ASCII documents.
|
||||
The format is a hierarchical layout of scene options and elements.
|
||||
After the scene file is parsed, the scene will be raytraced
|
||||
(rendered) according to the render options.
|
||||
Some of these options can be specified on the command line and
|
||||
others can be specified in the scene description file.
|
||||
When a given option can be specified both places, the command-line
|
||||
options will override what is in the scene file.
|
||||
</p>
|
||||
<p>
|
||||
Rendering can be done using the built-in task distribution
|
||||
infrastructure.
|
||||
Command-line options will be utilized to specify a "hosts file"
|
||||
which can contain a list of hosts to use while rendering the scene.
|
||||
The algorithm is fault-tolerant so that if any of the worker
|
||||
nodes goes down the tasks can be reorganized so other nodes
|
||||
complete what the faulty nodes did not.
|
||||
</p>
|
||||
|
||||
<a name="model" />
|
||||
<h4>Model</h4>
|
||||
<p>
|
||||
I used an object-oriented model for the program.
|
||||
Each displayable scene object is represented by a C++ object
|
||||
which inherits from the <tt>Shape</tt> base-class, while light objects
|
||||
inherit from a base <tt>Light</tt> class.
|
||||
</p>
|
||||
<p>
|
||||
<tt>Shape</tt> objects implement an <tt>intersect()</tt> method.
|
||||
Polymorphism is utilized so that when the scene attempts to
|
||||
intersect a <tt>Ray</tt> with a shape object, it does not need
|
||||
to know the actual type of shape object being intersected with.
|
||||
</p>
|
||||
<p>
|
||||
The task distribution infrastructure is implemented in a class
|
||||
called <tt>distrib</tt>.
|
||||
This package contains methods to start up a server thread, launch
|
||||
slave processes on the worker nodes, and connect back from the
|
||||
slave processes to the master server.
|
||||
</p>
|
||||
|
||||
<a name="design" />
|
||||
<h4>Design</h4>
|
||||
<p>
|
||||
The design document for FART is available
|
||||
<a href="design.html">here</a>.
|
||||
</p>
|
||||
|
||||
<a name="implementation" />
|
||||
<h4>Implementation</h4>
|
||||
|
||||
<a name="evaluation" />
|
||||
<h4>Evaluation</h4>
|
||||
|
||||
<a name="futurework" />
|
||||
<h4>Future Work</h4>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
x
Reference in New Issue
Block a user