Cg2 2014.png

Computer Graphics 2

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, 10+50 points).
  • Solve all homework problems (mandatory each one >=30%, 10 points)
  • Pass final term (mandatory, 20 points) You will need to solve several problems discussed during lessons.
  • Pass oral/written exam: (mandatory, +20 points)
  • Summary
    • Attendance = 0 or -100 (Fx)
    • Exercise = +50..0
    • Bonus = +10..0 (optional)
    • Homework = +10..4 or +4..0 (Fx)
    • Final term = +20..0
    • Oral/written exam = +20..0
  • Grades
    • A = 92-100
    • B = 84-91
    • C = 76-83
    • D = 68-75
    • E = 60-67
    • Fx = 0-59
  • Schedule
    • Mon (8:10) - Room A (lecture)
    • Wed (16:30) - Room I-H3 (seminar)

Materials to read

Lecture01 "Introduction to Computer Graphics"

Lecture02 "Ray Tracing 1."

Lecture03 "Ray Tracing 2."

Lecture04 "Ray Tracing 3."

  • Ray Tracing Acceleration
  • Data structure: grids, BVH, Kd-tree, Directional Partitioning
  • Dynamic Scenes
  • Beam and Cone Tracing
  • Packet Tracing
  • Lecture notes: lesson02.pdf
  • Poznámky v Slovenčine k téme Dátové Štruktúry a Kd-tree.
  • Štátnicová téma: Kanál metódy sledovania lúča. (definícia lúča, popis metódy sledovania lúča, generovanie lúča, pochod po lúči (ray traversal), prienik lúča s trojuholníkom, stromová štruktúra lúčov (ray tree) a jej použitie na výpočet lokálnej farby, problém presnosti priesečníkov)

Seminars on Computer Graphics 2

Rules / Info

  • On every seminar we will implement selected problems/algorithms related to lessons. We will usually - not necessary start with a prearranged template downloadable from this site.
  • As a programming language we will use C#. We will use Visual C# 2010 as development environment. Alternatively you can use MonoDevelop (Linux / Mac OSX) on your own machine.
  • Attendance at seminars is optional but recommended.
  • Seminars are conducted by
    • Michal Piovarči (
  • Schedule of seminars is
    • Wed (16:30) - Room I-H3


  • You can get max 100% per homework. Submission after deadline is for 0%.
  • There is a min 60% of your final evaluation required for admission to final term.
  • Additional activity can be awarder by max 10% of your final evaluation.
  • Don't cheat - create instead. Any kind of cheating is punished by withholding 30% of your final evaluation for all involved students.
  • As a homework, you will program what we could not finish during the exercise. Assignment and template will be downloadable from this site. See exercises.
  • Homework must be submitted by email to every week until the next Wednesday 16:30.
  • Your submission email must have title in form 'ExNN' where NN is the number of exercise, eg. Ex05.
  • It is required to submit zipped source code of your homework (preferably the whole solution). Do not send executable files. Homework without the source code is for 0%.
  • Your code should be well formatted and commented. Titles of functions, classes, variables should be representative for their purpose. Homework without appropriate comments is for 0%.
  • There are ~12 homeworks during the semester. This number can change due to holidays, tech. problems etc.


Exercise00 [19.02.2014] "Introduction"

Exercise01 [26.02.2014] "Ray Casting"

  • Seminar slides
  • Implement a camera class suitable for the ray casting method. As usual you should use a similar functionality as in the sample application. Application should specifically be able to:
    • Render the scene (objects are movable).
    • Move the camera in a 3D space.
    • Change the camera's field of view (larger angle = more space to render), see Blender camera.
  • Try to change the color of the intersected object due to distance from the camera
  • '[2 bonus %]:
    • Create a camera which will rotate around defined point P (target) along a sphere with r = 1. You can use ideas from the Blender camera system and / or two-angle camera in openGL. Camera should use some sort of interactivity (2 angles) and targeted point P should be movable. Bonus camera can be created in a separated solution or you can change the structure in the template to implement two different cameras.
  • Sample | Template
  • Deadline: 12.3 - 17:20

Revision as of 15:07, 25 February 2015 by Piovarci (Talk | contribs)