You are on page 1of 5

Computer graphics

Laboratory program - 2020/2021


Jerzy Sas office hours: Mon: 11:00-13:00, Thu: 11:00-13:00

Prerequisites:
 Basic knowledge in Java or C++ programming.
 Experience in using popular development environments like Eclipse or Microsoft Visual
Studio.

General rules:
The aim of CG laboratory is to:
 learn and deeply understand selected CG methods and algorithms
 get familiar with software packages and libraries supporting CG programming.
The lab contents are aimed on CG developers and programmers, not on CG users!

The laboratory program consists of two parts:


 introductory exercises and
 final project.

Introductory exercises
In the first part related to introductory exercises we will implement a series of 5 assignments
related to various techniques, methods and algorithms of computer graphics that are presented
in the lecture. Depending on actual progress, the number of assignments may be changed. The
precise specification of the assignments can be found in the booklet: J. Sas: "Advanced
Computer Graphics, Practical Advanced Computer Graphics - laboratory assignments"
available as pdf on ePortal and also available as a paperback is the faculty library. In
particular cases, the assignment specification from the book may me slightly modified by a
teacher. In such case, the modified specification will be available on ePortal. In spite the book
is titled "Advanced..." actually only basic assignments will be required in the scope of this
course.

The duration of each assignment implementation is fixed to two subsequent laboratory


sessions (typically: two weeks). Each assignment consists of two parts:
 homework and
 "live" modification.
Homework should be prepared out of lab sessions and uploaded to ePortal for verification.
Homework implementation should precisely comply to the assignment specification. Live
modification will be organized during the second session related to each assignment. You will
be asked to make some simple modifications or extensions ro to make something similar to
what was a subject of corresponding homework. This modification should be done "on-line"
during the lab in the strictly defined time interval (typically 30 minutes). The resultant
working code should be uploaded to ePortal before strictly held deadline.

The evaluation and scoring will be done in personal consultations with each student. Because
of inconveniences related to remote mode of the laboratory and due to time constraints we
will have only few minutes for personal consultations with each of you. We will try to have
personal consultation with each student every second lab session. During the consultations
both parts of an assignment (homework and live modification) will be evaluated and scoring
will be assigned.

It leads to the following schedule (deadlines for assignments indicated by


bold font in "Evaluation" column):
(Asmt == Assignment)
Session no Topics Evaluation
Deadlines in bold
1 Introduction, principles of collaboration
2 Asmt A implementation Asmt A evaluation
3 Asmt B implementation Asmt A evaluation
4 Asmt B live modification Live B evaluation
5 Asmt C implementation Asmt B evaluation
`6 Asmt C live modification Asmt B evaluation
7 19.04 Asmt C implementation Asmt C evaluation
8 26.04 Asmt C implementation Asmt C evaluation
9 6.05 Asmt D implementation Asmt D evaluation
10 10.05 Asmt E implementation Asmt D evaluation
11 17.05 Asmt E implementation Asmt E evaluation
12 24.05 Final project+ specification Project consultation
13 31.05 Final project + Asmt E live modification Asmt E evaluation
14 7.06 Final project Project evaluation
15 14.06 Makeup - the opportunity to improve your Makeup evaluation
scoring

Final project will be related to extensions to simple ray tracing program. The base
implementation in Java will be provided as the baseline for extensions. Project topics will be
presented in the lab on 24.05 and 27.05

During the last session you can improve grading of one of your assignments: homework or
live modification. The scoring will be replaced by the scoring obtained in makeup
(downgrading is possible if the new scoring is lower than the primary scoring).

Final project
The final project consist in implementing more complex program related to 3D visualization.
The precise project scope proposals will be specified later.

Scoring/grading
Maximal scores that can be awarded in each assignment is 100 for homework and 100 for
live modification. The final project will receive 300 scores (reduced from 400, because of the
reduced project scope resulting for earlier homeworks deadline extensions). So the maximal
scoring is 1200 (3 live programming + 5 homeworks + project). The grading scale is as
follows
Scores Final grade
<= 50% 2.0
<= 60% 3.0
<= 70% 3.5
<= 80% 4.0
<= 90% 4.5
> 90% 5.0

The laboratory and the lecture constitute group of courses. So only single grade will be given
for the whole CG. In order to pass, your laboratory grade and exam grade must be both at
least 3,0. The final grade will be the equally weighted average of lab and exam grade.

will be determined individually for particular assignments and varies from 1 week for
simplest assignments to 3 weeks for more complex ones.

The students are obliged to have data devices (flash drives, mobile disk drives, own
notebooks) on which they can carry the data and code used in the laboratory. Own notebooks
are strongly recommended. Suggested programming language is Java.

Attendance and absences


The attendance in labs is obligatory. You can be absent at most 3 times. Assignments
(homework and live updates) must be uploaded on time. No delays are allowed. Random
events (e.g. illness) will be considered individually.

Lecture attendance is not obligatory. However, regular lecture attendance is strongly


recommended.

Laboratory program:
The detailed specification of all assignment can be found in the book: "Advanced compuer
graphics: Practical Advanced Computer Graphics - Laboratory Assignments" available
on-line at: http://www.studia.pwr.wroc.pl/materialy/541/computer_engineering.html.

The following assignments will be subjects of subsequent laboratory sessions. Some of


assignments should be implemented in single lab session (1-week period), more difficult ones
should be implemented in 2- or 3-week periods. Durations are given below:

A. Basic raster image operations on pixel-by-pixel basis (Assignment 1 in the book)


Goal:
To get familiar with basic raster image representation as a data structure, pixel access in read-
write mode, defining color values, converting from RGB to color representation, creation of
various patterns by setting individual pixels

B. Animated display using Java2D and vector graphics (Assignment 3 in the book) - +
Simple interactive elements in CG programs (Assignment 4 in the book)
Goal:
To learn how to do simple animation of the vector image – implementing working clock
Familiarizing with API elements for user events handling. Implementing simple vector image
editor

C. Using homogenous coordinates for transformations in 2D (Assignment 5 in the book)


Goal:
Leart how to use classes that represent affine transforms in homogenous coordinates in 2D

D. Bilinear interpolation and Gouraud shading of triangles (Assignment 6 in the book) +


Goal:
Exercising fundamental procedure of bilinear color interpolaqtion for image scaling and
triangle fill with color interpolation (Gouraud shading).
To better understand the Phong model and experiment with its parameters
You do not have to implement the task 2 from the assignment scope
specified in the book. Only 1,3, and 4 are obligatory.
E. Simple rendering with Phong lighting model (Assignment 7 in the book)
Goal:
To better understand the Phong model and experiment with its parameters

In most cases, the assignment description specifies more than one functionality/program for
each assignment. Students are expected to implement all specified elements. Due to time
limitations only some elements of the assignment may be assessed/verified by the teacher
during personal consultations

Originality/copyrights
Students are expected to implements, debug and test programs being subjects of assignments
on their own and present working programs to the teacher during the lab. Programs must be
completely implemented by students presenting their own code. Using third party or
"borrowed" code in in principle forbidden. Programs must be implemented using only basic
components and utilities provided in standard packages/libraries. In case of any doubts - ask
the teacher.
The implementation of each assignment must be completely done by individual student.
Obviously, you can (and even should) share your experience but you cannot share your code.
In case of trials to present the code that was not originally written by a student (or in the case
when the student does not understand the code being presented) - the assignment will be
graded with 0 scores, without the possibility to get higher grading nor improving it in
makeup.

Grading criteria
The grade for an assignment will be given based on the following criteria:
a) consistence of the implemented solution with the specification (all required features should
be implemented),
b) appropriateness of applied methods and algorithms,
c) code clarity,
d) efficiency (in some cases),
e) ability to make required modifications and extensions to the code being presented.
For archiving and evaluation purposes, the code of each assignment must be uploaded to
ePortal in single zip file. Make the zip archive containing all the source code related to the
assignment, name it according to the following pattern:

<student_name>_Ass_<L>.zip

where <L> is the letter identifying the assignment (as specified in the previous section). For
instance, in the case of student Jan Nowak and the assignment A the zip file name should be:

Nowak_Jan_Ass_A.zip

Upload the file before strict deadline for each assignment (no delays allowed)

You might also like