Computer Science 112
The Art & Science of Computer Graphics

Spring 2016, The College of Saint Rose

Studio/Lab 10: Programmed Replication
Due: 11:59 PM, Friday, April 15, 2016

For this next Studio/Lab exercise, you are to develop your most complex scene so far. Fortunately, our new programming techniques will allow you to build a more complex scene using a smaller overall amount of code. Using the programming techniques we have discussed and will discuss in class, you can develop a scene with replicated components.

Replicated Objects

You may model any scene you wish, but it should meet the following requirements:

Start by defining the objects that you will use in your scene, whether replicated or single instances. You can work on these even before we have seen all of the replication techniques in class. You are encouraged to develop an object in a shared model (and could double-dip for credit if you package it up and submit it as a bonus shared model).

As the models become more complex, good code organization and documentation becomes essential. Develop specific objects in shared models. Use constants to define sizes and locations. Continue to develop objects hierarchically. Use plenty of comments.

If and when you use a shared model from a classmate or borrow some code from a class example, be sure to give proper credit in comments in your model and in your wiki entry.

Caution: another issue that arises as your models become more complex is that rendering times will increase. Please plan ahead! You might consider using a lower image quality when developing your models, increasing it only when you wish to generate final images.

Submission

  1. Email a copy of the source code for your Ambrosia model (the Python file(s), which should always be saved with a .py extension) and your best image (which should always be saved in PNG format and using a .png extension) as attachments to terescoj AT strose.edu. Please include a meaningful subject line (something like "CSC 112 Studio/Lab 10 Submission"). Make sure your name is included in a comment in your model code, and that you have comments throughout the source code to make it easier to understand.
  2. Rename your best image to include your name, then upload it to the wiki. For example, if you generate an image of a clone army and your name is Obi-Wan Kenobi, you might call your image "OWKenobiClones.png".
  3. Add a section to your wiki page named "Programmed Replication" that includes a link to your image and a description of your model that generated the image.

Grading

This assignment is worth 40 points, which are distributed as follows:

> FeatureValueScore
New object(s) developed for this lab 5
Programmed replication 15
Use of random numbers 4
Coherent overall scene 2
Cameras and lighting 2
Code organization and style 4
Model documentation and formatting 2
Image(s) on wiki page 1
Model description on wiki page 4
Emailed source code (Python/Ambrosia model) 1
Total 40