Graphics Town Rubric

Summary: do enough cool stuff and document it, and you’ll get a good grade.

The hard part is quantifying “enough” and “cool”. We might say “you’ll know it when you see it.” But instead, we have to try to write something…

This page may be updated with clarifications and additional examples.

The grading aspects of this assignment are what gets complicated. The assignment itself isn’t that complicated. Make a cool “town”, and you’ll get a good grade. We might just give you an A because we think what you did is particularly cool.

We reserve the right to give you an A because we think your assignment deserves it. Whether or not all the points add up.

Rubric

Your score will consist of three parts (that add up to a total of 100, maximum):

  1. 10 points for completing the check-in (having a world that looks different from the initial world via the check-in date). This must be done by the check-in date (Sunday, April 26th).
  2. Up to 75 points for Specific Things in the World (list below).
  3. Up to 15 points for “subjective” factors (discussed below). This is completely at the grader’s discretion.

The assignment is designed that 85 points (an AB) are easy (10 pts part 1, 70 points in part 2, 5 points in part 3). Above that are bonus points.

Part 1 - Check In

By the early hand-in deadline (Sunday, April 26th), you must:

  1. Have created your repo.
  2. Have at least one commit pushed beyond those that the course staff provides.
  3. Have your world be visibly different than the original world we have you.

You will get 10 points for doing this.

Part 2 - Specific Things in The World

Note: you may only receive at most 75 points in this section. You can do more stuff - but you can only get up to 75 points. The “straightforward” section give you easier things to do that give you lots of points. The “complex” section give you harder things to do. You could get 65 straightforward points and 10 complexity points. Or you could do a lot of complex things (which would be a harder way to get to 75 total). There is a limit of 25 complexity points (so you should try to get at least 50 straightforward points).

Important: you can only earn points if you (1) describe what you attempted in your documentation and (2) it clearly works as described. The questions in README.md are designed to make this easy.

You cannot claim objects that you take from other peoples' assignments (e.g., the sample code or borrowing from other people) to fill the “straightforward” requirements. If you take a 2D train or fireworks from an early workbook, you can adapt those and count them here.

Straightforward things (65 “straightforward” points) These are worth 5 points each:

  1. The town is significantly different than the example provided. Visually, it can’t just look like you took the demo and added a few things.
  2. There are at least 2 different kinds of objects that you made,
  3. There are at least 5 different kinds of objects beyond #2. (1 pt each)
  4. The framework runs with at least 5 objects moving.
  5. There are at least 3 different behaviors. We explain behaviors below.
  6. At least 3 objects must be “rideable” (see the framework hints)
  7. There is a “train track” that is a spline with a train that goes around it, pointing in the right direction. (this can count as one of the behaviors)
  8. You must have at least one object from each category: buildings, natural elements, and vehicles.
  9. There is at least one model loaded from a file. (e.g. loading a .obj or .fbx file)
  10. There is at least one shader that you wrote.
  11. You provide the screen shots as required.
  12. Your scene has a skybox. If there isn’t an appropriate skybox for your town, you can have some other texture somewhere in the scene.
  13. Your documentation provides the information we need for grading. (your readme is correct)

Creating complex things get you points beyond the list above. You can make complex objects or complex behaviors, or use a complex technique. You tell us what you think is complex in your README.md and the grader decides how much (1-5 pts) you get for it.

These are worth up to 5 points each. You get 1-2 points for something that shows the idea, 3-4 points for something that uses the idea, and 5 points for using the idea well in a way that fits into your town. For example, that weird blobby thing in the example (which is a test of #15 morphing), would probably be worth 1 points (it shows I figured out morphing, but not in a useful way); for more points I could have found 2 shapes that really made sense to morph between.

The general rule: if you do something that you think is complicated and tell us why you think you deserve complexity points for it, you will probably get some points.

Unfortunately, in class we didn’t get to discuss many of the “complex techniques.” This is an opportunity for you to learn about them on your own. Or, you can choose to get your complexity points in other ways (making complex objects and behaviors).

These are just some ideas… We will probably provide more ideas too.

  1. Complex Behavior: you will get points for making “complex” behaviors - discussed below under “behaviors”.
  2. Complex Object: if an object is “complicated”, you can get complexity points for it. (see below)
  3. Particle System: There is some “particle” effect - fireworks, rain/snow, flocking, … Note that adapting a 2D particle system from an early workbook is OK - but be sure to give it attribution!
  4. Animated Shader Effect: Something that uses a shader to make something cool. For example, you add a flowing river texture to your scene. See complex adaptation below.
  5. Morphing: Shapes that morph into different shapes
  6. Key-Framing: Key-Framed movements of an articulated figure. For example, people or animals that walk or run.
  7. Skinning: A skinned articulated figure (which has to move enough that we can see that it is skinned).
  8. Water or cloth: Simulated water or cloth. Don’t try to do real simulation, but you can try to make procedural movements to have the ripples of water in a pond or a flag waving in the wind.
  9. Curved Surface: Curved Surface beyond a basic primitive. Use a subdivision surface or a generalized cylinder in a useful way.
  10. Procedurally generated geometry: You could algorithmically generate trees or fractal shapes for mountains.
  11. None of the Above: Something else that we didn’t think of. If you’re in doubt, ask. This is your opportunity to try some technique that we might not get to in class (within reason).

In your README.md you must tell us which ones of these you have attempted, and explain what they are. If you don’t describe it, we can’t grade it.

Some details:

Kinds of objects: You need to have many different kinds of objects in your town (we say “kinds” because you might have several instances of the same kind of object). In the example, the house, the helipad and the helicopter are all kinds of objects. For requirement 2, you must have “made” the object yourself (either making it from primitives in code, or creating the object file yourself if it is loaded from a model file). For requirement 3, you can count objects that you load from model files (e.g., .obj or .fbx). You cannot count objects where you got the code from someone else.

Object diversity: you need to have enough different types of objects. The minimum is 7 across three categories: “buildings”, “natural elements”, and “vehicles”. These categories are named for towns, so in a wilderness scene or space scene you might have different things. In a wilderness scene, the “vehicles” might be birds rather than cars and helicopters. In space, you might have asteroids or planets rather than trees.

Behaviors: behaviors are ways that objects move. They may be simple or complex. Examples of simple behaviors would include driving in a circle, flying in a figure eight, spinning, or swinging back and forth. Examples of complex behaviors include:

  • a roller coaster that correctly follows a 3D track (banking during turns, …)
  • objects that move to a destination, do some secondary behavior at that destination, and then move to another. For example, your airplane can fly around, land, turn around, take off again. Your train can stop at a station and have people get on and off.
  • an excavator can scoop up some dirt and dump it some place else
  • your cars can stop at stop signs and wait for pedestrians

You must have at least 3 different behaviors in your system. Several objects can use the same behavior (in the example, several objects drive in a circle) - that counts as multiple moving objects (requirement 2), but only 1 behavior. Complex behaviors can be listed both for requirement 2, but also as a “complex thing”.

Complex Objects: he complexity must come from your graphics skill, not just because you loaded a complicated looking model. If you have a cool looking car because you found a very detailed model on the web and loaded in using the FbxLoader, that’s not a complex thing worth points (it can count for the “straightforward things”, including 8 and 9). Complexity can come from putting lots of pieces together in an interesting way.

Complex Adaptations: Finding something complex does not get you complexity points. Generally, you need to make complex things yourself. However, if you adapt something you find, and the adaptation is complex, we can give you complexity points for the adaption. Be sure to describe what you started with (attribution) and why you think the adaptation is worth complexity points. For example, if you were to take the flowing river texture and make it work on a curving river going through your town, that would probably require significant adaptation.

Screen Shots: You must include screen shots of your program that show it off. You should have 1-2 pictures where you have positioned the camera to best show someone how cool your world is. You may also include a few (at most 4) pictures that show off specific objects that you don’t want us to miss. Place these pictures in the for_student/Pictures directory. You can save them as either .png or .jpg files.

Part 3 - Subjective Points

You may earn up to 15 points in this section.

Basic Setup: (5 points) the framework runs correctly and the town is visible. The objects of interest can be looked at, and the program runs at a reasonable rate. The different things in the world can be easily identified. The town looks like a coherent world (it’s not a bunch of randomly placed objects). If the sample objects are used, they are placed in ways that make sense.

Subjective Value: (up to 10 points) We will award up to 10 points at the grader’s discretion for how cool things look. We may give points for making a particularly cool object, a particularly interesting motion, doing something technically impressive, having a world that have a coherent and interesting theme, artistic merit, …