Assignment 3 FAQ
Due July 28

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