Cg1 2013.jpg

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



Exercise00 [22/23.09] "Introduction"

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


Revision as of 09:52, 29 April 2015 by Durikovic (Talk | contribs)