Visa version

Version skapad av Christopher Peters 2016-03-30 11:31

Visa < föregående | nästa >
Jämför < föregående | nästa >

Lab assignments

Spirit of the Labs

Be aware that the purpose of the labs goes beyond developing your graphics (and mathematics) programming skills to testing your general methodology and approach to problem solving, in addition to autonomy and presentation. These are crucial at Master level and beyond. Important concepts include:

1) Programming methodology: The ability to fix bugs in a methodological manner rather than through trial and error processes. In computer graphics programming, this typically involves developing intuitive knowledge of the underlying maths, perhaps through the use of pen and paper, before even approaching the keyboard or programming aspects.

2) Flexibility and robustness to error: Real-world problems are never defined clearly or perfectly. You will encounter errors and ambiguities and must develop ways to deal with them. Spotting them is a good way to start, and involves step 1) above.

3) Research: Carefully reading and understanding instructions rather than attempting to carry them out by rote. Be aware that all of the details you need to solve the labs are available through careful planning and reading of the instructions on these pages, as well as in the lectures. The labs reward students who listen and plan rather than jumping straight into the lab work.

4) Reporting and soft skills: You should be able to report your approach and present your results in an ordered and succinct manner that clearly communicates your approach, problems encountered, solutions and summarises your results. 

5) Proactive communication: Asking for help at help sessions, starting threads in the forums or determining your own strategy for seeking feedback and solving problems.

Materials

There are three labs in total. Lab 1 is mandatory. The specific lab 2 and lab 3 that you do depends on the lab track that you decide to take. There are two options: rendering or real-time animation.

Lab 1: Set-up and Introduction to 2D and 3D Graphics
Lab 1 Instructions (read this first)
Lab 1 Source code

and

Lab track 1: Rendering

Lab 2: Raytracing
Lab 2 Instructions (read this first)
Lab 2 Source code

A gallery of (mistaken) art work for this lab from previous years is available here.

Lab 3: Rasterisation
Lab 3 Instructions
Lab 3 Source code

or

Lab track 2: Real-time animation

Lab 2: Transformations
Lab 2 Instructions (read this first)
Lab 2 Source code

Lab 3: Hierarchical Transformations
Lab 3 Instructions
Lab 3 Source code

Note that the labs can be set up with the development tool/IDE, environment and platform of your choice. Examples include GCC and Visual Studio. There are a large number of combinations of the aforementioned that may result in idiosyncratic build problems, so you will need to conduct the set up for your own specific configuration. In some cases, setting up the labs for the first time may be non-trivial if you haven't built projects in that particular development environment before. The hints and tips section here may be useful for some help with this.

Note that an older version of SDL is used in order to avoid set up issues with different platforms. If somebody creates a stable build using the latest version of SDL for the main platforms/development environments (and updates the instructions accordingly), I will be happy to upload it as a future option (and you will of course be credited for it).

Submission

Submission of the labs is due around early May 2016 as a single .zip or .rar archive with an appropriate directory structure (Bilda lab submission will open nearer to the submission date).

The recommended documentation is a well-presented, two to three page document per lab detailing your implementation methods (your approach to completing the lab), experiences (problems encountered, solutions) and outputs (what worked, what did not, screenshots). It should not contain many theoretical details or excessive code - source code comments can be added separately. If you worked in a group, group members should be clearly listed with contact details and there should also be a short section describing the contributions of each group member.

The submission materials should consist of source code, executable and documentation for each of the three labs.

Lab submission will be conducted through Bilda, under 'Event -> Assignments -> DH2323 DGI16 Lab assignment submission'. Bilda lab submission will be available nearer to the submission deadline.

Note: If you cannot log into Bilda when you click on the link above, then you probably need to be registered there. In this case, send the course responsible your official details (including your KTH email address) and you will be added to the system.

Feedback Nyheter