These notes assume that you have access to the prof’s answer key. If you answered more questions than those that would give you 100 possible points, I stopped after 100 possible points as per the instructions on the midterm booklet. (In the future, if there are certain questions you don’t want marked, write “do not mark” on them and I will skip them.)
- In Number 8, some said that flickering could be caused by objects that occupy the same space, and that you could fix this by always choosing just one of the objects to render. If both objects were being rendered because they are the same distance away, then you wouldn’t have the flickering. If they were alternating being rendered then choosing just one object wouldn’t fix the problem unless you had a way to always choose the same one (but how would you ensure that?). Suggesting that you change the z-value of one of the objects is a bit more reasonable, but I’m not convinced it’s a great solution since you might have to go in and change your model and because inaccuracies could still be an issue. The answer that was being looked for was that the flickering is caused by inaccuracies of the z-buffer, so to fix it you want to increase the buffer’s resolution.
- In Number 1, if you draw a diagram that shows the overall idea but not the defining parameters (or if you label angles and such but don’t say what they are for), you will get 1 mark. If the defining parameters are more related to what I showed in my lecture, that’s fine, but I want to know more detail. Also, a few people were getting concepts mixed up between the geometry of the viewing plane (pinhole camera model for instance) versus the actual viewing frustum. We want to know about the frustum here, but I tried to give some marks for the perspective projection diagrams as well so long as you didn’t mix things up too much.
- In Number 10, a good description of what the center and position points are comes from the Toymaker website (that place just keeps popping up in my Google searches!). It’s not clear to me whether the description in the answer key is also correct (can’t tell in the API, don’t now from experience), but it’s certainly possible and it does appear in the notes. (It seems to not make sense to have to update the position any time you want to change the center of rotation, leading me to believe that these are unrelated to each other, but I’ll go by what’s in the notes.)
Center: “pointer to a 3D vector specifying the position in the sprite around which it can be rotated or NULL for top left”
Position (aka translation): “pointer to a 3D vector defining the screen position of the sprite. Note: in Direct3D 0,0 is the top left of the screen”
- In Number 1, if you talk about implications related to the perspective transform itself rather than the frustum, I accepted that, so long as that made sense in the context of your previous answers.
- In Number 7 if you talked about giving the system incorrect drawing instructions (e.g. triangle set vs. triangle fan), I accepted that.
- There seemed to be a fair number of issues with Number 4. First of all, when given actual points in the question, you should make sure to use them in the answer. In other words, be mathematically specific. Also, there seems to be some misunderstandings in how to actually compare the normal to the view point to see if they can “see” each other. The trick is to use the fact that the sign of the dot product of the two entities can tell you something about the angle between them, and thus whether they are pointing away from each other or not.
- In Number 3, remember that if you are putting your point first (to the left of the transformation matrices) that it would be a row vector, not a column vector, in order to get the correct matrix multiplication happening.
- The biggest problems in Number 4 were either not giving enough detail (how do you actually compute certain things, etc) or just plain old having the method wrong. Be sure to review the answer for this one carefully, and keep in mind for the future that a question worth 25 marks is going to warrant some specific detail (in this case, including the mathematics behind it).