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 -->