Q: Where do I start?
A: A good place to start is by drawing the 'floor' or horizon. A good
example of that is found in the code given in class
on 7/18. It's a good example for display lists, as well as viewing
transformations. Notice that the code itself is in c++, and is a bad example
of c++ since I put all the code in the .h files. This was for demonstration
purposes (so I wouldn't be flipping through both the .h and the .c files
in class). Still, it's functional. I don't expect you to do the same. In
fact, it's probably a pretty bad idea.
Q: How should the initial trees for 10 points be generated?
A: The initial trees could be just like the silo: a cilynder with a
larger-base cone on top (or something simple like that). You don't have
to procedurally generate them. If you do, this will be in the category
of 'rendering your own object' and will be awarded extra credit. Make a
note of it in your README.
Q: With regards to models in general (e.g. cows, planes, etc.), can
we use models from the public domain, or do we need to create our own?
A: At least one must be your own, i.e., one that you created and computed
the normals for (for instance, you can take the barn example from class
on 7/25, compute the normals, and render them). The others you can borrow
or lift, so long as you cite your sources.
Q: What does generating the other barn structure as a "procedural wireframe
model" mean?
A: Refer to 7/25 class. This means that you have to specify vertices
and normals for the vertices ala the tetrahedron
example . Of-course, you can add other structures that are not your
own, but at least this one must be an original.
Q: What kind of "visible artifacts" do you mean in the translucent portion
of the assignment?
A: You may get all kinds of artifacts on the edges of objects. You'll
definitely see them if you have them.
Q: For the curved surface portion (sweat-lodge, etc.), are we expected
to implement curved meshes (e.g. NURBS, or the torus example in the red
book), or does scaling (i.e. squashing) a GLUT sphere suffice?
A: I do not expect you to use NURBS (though you can). Procedurally
generating a torus (as in the book), or even clipping and squashing a sphere
(a modification of the book) will be plenty. The only thing you can't do
is use the glutSphere for this one.
Q: When you refer to "OpenGL Primitives", do you include whatever
geometric objects GLU and GLUT generate (i.e. sphere, etc), or just the
3 OpenGL primitives (point, line, polygon)?
A: As we all know by now, openGL primitives are just the points line
and polygons. But for the initial scene of the assignment (barn, silo,
trees and stars), you are allowed to use the 'glut' models (teapot, sphere,
etc.).
Q: I have a Game Developer Magazine article which describes the OGL
implementation of a small particle-effects system. It includes some code
(e.g. for the particle class). Is using such material completely off-limits,
or could I use such code if I document which portions come from outside
sources? Ditto goes for a mouse-over system I found in the Microsoft Developer
Network CD. Obviously, the only merit incorporating such code into my project
would be if I were to a) understand it through its implementation, and
b) possibly extend it.
A: You are allowed to use code from anywhere, so long as you cite it.
The only exception is that the additional structure (the mandatory one
for 10 points, like a barn or house), has to be your own original. All
the other models you use and specify can be taken from your book or other
sources- but you have to cite it properly. You may extend it, but you don't
have to. My main idea in this assignment is to have you become familiar
and comfortable in the openGL environment. I don't care if you don't compute
the normals to a cow. I'm only asking that for one structure, you see what
it's like to compute those things and have them render properly. There
are enough different components to this assignment that I do not expect
you to spend the next two days computing the normals to a jet-plane.
Q: While I am very much enjoying reading the red book, it is quite time-consuming.
As an extreme example of discrepancy between input and result, to complete
the texture mapping portion (2 points) of the assignment, we need to understand
chapters 9 (and 8) (50-100 pages). The other assignment portions require
that additional chapters beyond the current reading assignment (chapters
1-5) be read and understood.
A: Since I'm giving you so much freedom in terms of the sources you
use, I placed point emphasis on the things I really wanted you to try.
You may try the extra ones (I guess for full points you have to implement
around 4), and yes, some are much easier than others, but the pointage
system is set to give you priorities, not by difficulty. If you want to
implement something that isn't mentioned, and would like to ask us how
many points it's worth, feel free to email us (cs148-help@cs).
Q: What's this I hear about a contest?
A: Just another way for you to receive points for extra effort. We're
conducting a contest for the best projects. There will be three winners.
First place is worth 10 points. Second place is worth 7 points. Third is
worth 4 points.
The assignment is due on July 28