• EN

# Computer Graphics 1

## What you Need to Pass

• Attend lessons. One missed +0 points. 2 missed 0 points, 3 missed 0 points, 4 and more is Fx.
• Project and exercise (mandatory, 70 points).
• Solve all homework problems (mandatory each one >=30%, 10 points)
• Mid term (mandatory, 20 points)
• Pass final term (mandatory, 15 points) You will need to solve several problems discussed during lessons.
• Pass oral/written exam: (mandatory, +15 points)
• Summary
• Attendance = 0 or -100 (Fx)
• Exercise = +50..0
• Activity = +10..0 (optional)
• Project = +20..0 (optional)
• Homework = +10..3 or +3..0 (Fx)
• Mid term = +20..0
• Final term = +15..0
• Oral/written exam = +15..0
• A = 92-100
• B = 84-91
• C = 76-83
• D = 68-75
• E = 60-67
• Fx = 0-59

• Schedule
• Mon (18:10) - Room A (lecture)
• Mon (10:40) - Room H3 (seminar)
• Tue (09:50) - Room H6 (seminar)

### Exercise01 [29.09/30.10] "Vectors and Matrices"

• Create a simple application for vectors(4x1) and matrices(4x4)
• Info | Sample | Template
• Bonus implement unit tests:
• Add drop-down option called Unit Test
• Create 2 tests for each arithmetic operation in the drop-down menu
• Compare the result calculated by your implementation with a precalculated result
• Count successful tests and output final score to console

### Exercise02 [6/7.10] "Show of Your Curves"

• Create a simple application to compute bezier curve using De Casteljau algorithm.
• Info | Sample | Template
• Extended deadline (-30% from evaluation): 19.10 24:00

### Exercise03 [13/14.10] "(ง ͠° ͟ʖ ͡°)ง Raise Your Matrices (ง ͠° ͟ʖ ͡°)ง"

• Create a simple aplication that can create, scale and rotate polylines
• Sample | Template
• Extended deadline (-30% from evaluation): 26.10 24:00

### Exercise04 [20/21.10] "Half-Edge Trick"

• And now ladies and gentlemen I will saw this edge in half. (Suspense - Applause - Performance)
• Implement a simple mesh representation in 2D. Use half-edge data structure. Implement loading data from file.off and filling the structure. As usual you should use a similar functionality and drawing as in the sample application - already in template.
• Info | Navigating HalfEdge | Sample | Template
• Bonus: (2 points) implement interactive half-edge generation:
• Right clicking in GUI will add new points
• remember to merge points with already existing points
• Each 3 point will create a new face
• remember to correctly set Next and Opposite half edges
• Extended deadline (-30% from evaluation): 2.11 24:00

### Exercise05 [27/28.10] "The One About Clipping"

• Your mission, should you choose to accept it, is to implement two clipping algorithms: Cohen-Sutterland and Cyrus-Beck. Implemented algorithms should be those algorithms by definition. Pseudocodes are in the 'Clipping' lesson. The interaction and GUI are in the template application.
• Sample | Template
• How to determine if a list of polygon points are in clockwise order
• This assignment will self-destruct 2.11 24:00 (morning). Good luck.
• In case of system bug 9.11 24:00

### Exercise06 [3/4.11] "AMA (Ask Me Anything)"

• Q&A before midterm exam
• Sample assignments for practice
• There is no assignment this week

### Exercise07 [10/11.11] "Virtual Knitting"

• Implement Scan Line algorithm. Implemented algorithms should be those algorithms by definition. The interaction and GUI are in the template application. Use materials from the lecture and additional material [1]
• Bonus - flood fill algorithm. Algorithm from the lecture [0.5 points]. Other [1 point]
• Sample | Template
• Extended deadline (-30% from evaluation): 30.11 24:00

### Exercise08 [24/25.11] "Draw Me Like One of Your French Pixels"

• Implement a rasterization of three objects: line, circle and ellipse. Use additional material if necessary. Ellipse
• Bonus - curve rasterization. Bezier curve [0.5 points]. Other than bezier curve [2 points]
• Sample | Template
• Extended deadline (-30% from evaluation): 14.12 24:00

### Exercise09 [1/2.12] "Now You See Me"

• And now you don't. Look closely, because the closer you think you are, the more you'll actually understand.
• Implement a visible surface determination algorithm Z-buffer. As usual you should use a similar functionality and drawing as in the sample application.
• Info | Z-buffer| Sample | Template
• Bonus:
• Antialisaing [1 point]
• Gaussian blur [1 point], using separable kernel [+1 point]