Obsah
- 1 Computer Graphics 1
- 1.1 What you Need to Pass
- 1.1.1 Materials to read
 - 1.1.2 Exercise00 [22/23.09] "Introduction"
 - 1.1.3 Exercise01 [29.09/30.10] "Vectors and Matrices"
 - 1.1.4 Exercise02 [6/7.10] "Show of Your Curves"
 - 1.1.5 Exercise03 [13/14.10] "(ง ͠° ͟ʖ ͡°)ง Raise Your Matrices (ง ͠° ͟ʖ ͡°)ง"
 - 1.1.6 Exercise04 [20/21.10] "Half-Edge Trick"
 - 1.1.7 Exercise05 [27/28.10] "The One About Clipping"
 - 1.1.8 Exercise06 [3/4.11] "AMA (Ask Me Anything)"
 - 1.1.9 Exercise07 [10/11.11] "Virtual Knitting"
 - 1.1.10 Exercise08 [24/25.11] "Draw Me Like One of Your French Pixels"
 - 1.1.11 Exercise09 [1/2.12] "Now You See Me"
 - 1.1.12 Exercise10 [8/9.12] "AMA 2 (Ask Me Anything)"
 
 
 - 1.1 What you Need to Pass
 
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
 
 
-  Grades
- 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)
 
 
Materials to read
- http://www.cs.princeton.edu/courses/archive/fall00/cs426/
 - http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/pipeline33/
 - Texty v Slovenčine
 - http://www.amazon.com/Mathematics-Computer-Graphics-Undergraduate-Science/dp/1849960224
 - http://www.martinus.sk/?uItem=19688 - Moderni Pocitacova Grafika
 
Exercise00 [22/23.09] "Introduction"
- Introduction
 - There is no assignment for this seminar
 
Exercise01 [29.09/30.10] "Vectors and Matrices"
- Create a simple application for vectors(4x1) and matrices(4x4)
 - Info | Sample | Template
 - Inverse Matrix | Adjoint Matrix | Adjoint Matrix Wiki
 - Deadline: 5.10 24:00
 -  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
 - Deadline: 12.10 24:00
 - 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
 - Deadline: 19.10 24:00
 - 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
 
 
 -  Right clicking in GUI will add new points
 - Deadline: 26.10 24:00
 - 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
 - Deadline: 23.11 24:00
 - 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
 - Deadline: 7.12. 24:00
 - 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]
 - Phong shading [1 point]
 
 - Deadline: 7.12. 24:00
 - Extended deadline (-30% from evaluation): 14.12 24:00
 
Exercise10 [8/9.12] "AMA 2 (Ask Me Anything)"
- Q&A before final exam
 - Sample assignments for practice
 - Projection
 - There is no assignment this week
 
Commented stuff Ends -->


