Project - CSU540 Computer Graphics - Spring 2005
Professor Futrelle
Version of 12 March 2005
Overview of the project you are to do.
All work is to be done in Java/Swing.
NEW - RAY TRACING CODE ADDED - 18 MARCH 2005.
Access it all here.
The primary point is that you should
proceed in stages, getting very simple things working, a bit at a time.
Do not plan a big project and try to build it all at once. In fact, the
milestones I have set, for intermediate hand-ins, will ask you for
small projects that gradually increase in complexity. These will be tied to
two intermediate milestones plus the final project at the end.
- Start with a simple wire frame-rendered model.
- Ray trace a few triangles.
- Design and implement polyhedron class that contains triangular facets.
- Set up transforms to propagate down to vertices.
- Build a small but more complex model and ray trace it.
- Build your final model and ray trace it.
Extra Credit
- Construct a model semi-automatically from a series of
transformed elements.
- Light your model with one source plus ambient.
- Use Gouraud shading to "smooth" model. Barycentric coordinates help.
For each milestone and the final project this is what to hand in and how to hand it in,
just as before, for Assignment 2:
- Your source code and compiled code.
- A README-CSU540Sp05M1<yourname>.txt
or README-CSU540Sp05M2<yourname>.txt
or README-CSU540Sp05FP<yourname>.txt
file should be included, corresponding to which part of the
entire project you're handing in.
- At least one screen shot file is required,
gig, jpeg, bmp.
- You should zip, jar or tar your files,
with your name, course, year, and assignment number
mashed into the file name.
- Alternatively, your project can be made available
to us through a URL (on a reliable webserver, e.g., CCIS).
The README and screen shot(s) could be in a web page.
If you know how to use .htaccess, you can make your
zip, jar, or tar file available on the site.
Please do not set it up so that we have to separately
download each of your files.
- Send your file(s) or URL to the teaching assistant,
Jason Blind at djb@ccs.neu.edu.
- You're welcome to develop elsewhere, on other platforms,
generate screen shots elsewhere, etc.
But again, your code must compile and run on
the College's Sun Solaris system.
- In general, be careful to "present" your work well.
Just handing me a bunch of code with no explanation will not do.
A thorough Readme, plus Javadoc, source code, compiled code, and screen shots
are the best set of things to hand in.
- Week 11. Milestone 1
- Due Wednesday, March 23rd, 11:59pm:
This requires that you use the Triangle class and ray tracing
code from Professor Futrelle.
Part A: Manually construct (type in)
a simple polyhedron with at least five vertices, placed away from
the origin, e.g., size 100x100 or so at least 100px from the origin.
Draw the wire frame, using a different color for each edge.
Part B: Ray trace two small triangles that partially overlap,
each a different color, e.g., 10x10 or so, away from the origin.
You will need to keep one or more arrays to record which triangles
are hit and what the t values are. Choose your own background color.
- Week 13. Milestone 2
- Due Monday, April 4th, 11:59pm:
This requires that you create a Polyhedron class that
can contain a set of triangles.
Part A: Manually construct (type in)
two polyhedra with at least five vertices each and placed away from
the origin, e.g., size 20x20 or larger, at least 100px from the origin.
Make sure that they partially overlap, as viewed along the z-axis.
Give each Triangle in one polyhedron a random color.
The other polyhedron should use the same color for every facet.
Draw the wire frames for the two, in a pair of contrasting colors.
Part B: Ray trace the scene containing the two polyhedra.
- Week 14. Final Project
- Due Wednesday, April 13th, 11:59pm:
This requires that you create set up transformation matrices
to transform points, the vertices in your model.
This can be simplified by collecting all the point objects in one
polyhedron into a single list.
Part A: Using the two polyhedra you have already created
or better, a larger and more interesting scene, transform each
independently to some rather "random" orientation.
Draw the wire frames for the transformed polyhedra,
in a pair of contrasting colors.
Part B: Ray trace the scene containing the two polyhedra.
Go to CSU540 home page.
or RPF's Teaching Gateway or
homepage