d (Seminars on Advanced Computer Graphics)
Riadok 140: Riadok 140:
 
== Rules / Info ==
 
== 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.
 
* 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.
+
* For programming we will use language '''C#''' and '''Visual C# 2010''' as a development environment. Alternatively, you can use MonoDevelop (Linux / Mac OSX) on your own machine.
<!--
+
 
* Attendance at seminars is '''optional but recommended'''.
 
* Attendance at seminars is '''optional but recommended'''.
 
* Seminars are conducted by
 
* Seminars are conducted by
** Michal Piovarči (cg2.2015.hw@gmail.com, Room M113)
+
** Adam Riečický (adam.riecicky@fmph.uniba.sk, Room M113)
 
* Schedule of seminars is
 
* Schedule of seminars is
** Wed (16:30) - Room I-H3
+
** Wed (9:50) - Room I-H3
 +
<!--
 
* Other collaborators and authors: Juraj Onderik
 
* Other collaborators and authors: Juraj Onderik
 
* Comment, errata, constructive criticism or suggestion - [https://docs.google.com/spreadsheet/ccc?key=0AhREYgn4NR6AdHgyemtJYWk0REt3SVJXMUdnQW5ockE&usp=sharing Make It Better]
 
* Comment, errata, constructive criticism or suggestion - [https://docs.google.com/spreadsheet/ccc?key=0AhREYgn4NR6AdHgyemtJYWk0REt3SVJXMUdnQW5ockE&usp=sharing Make It Better]
Riadok 152: Riadok 152:
  
 
== Homeworks ==
 
== Homeworks ==
* You can get '''max 100% per homework'''. Submission after deadline is for 0%.
+
* You can get '''max 100% per homework'''. Submission after a deadline is for 0%.
 
* There is a '''min 60% of your final evaluation''' required for admission to final term.
 
* 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'''.
+
* Additional activity can be awarded 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.
 
* 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.
+
* For a homework, you will finish the tasks started on the exercises. Assignment and template will be downloadable from this site. See exercises.
 
<!--
 
<!--
 
* Homework must be submitted by email to [mailto:cg2.2015.hw@gmail.com  cg2.2015.hw@gmail.com] every week until the '''next Wednesday 16:30'''.
 
* Homework must be submitted by email to [mailto:cg2.2015.hw@gmail.com  cg2.2015.hw@gmail.com] every week until the '''next Wednesday 16:30'''.
Riadok 195: Riadok 195:
 
** [http://www.amazon.com/Microsoft-Visual-2010-Step/dp/0735626707 Visual c# 2010], [http://www.amazon.com/4-0-Nutshell-The-Definitive-Reference/dp/0596800959 c# 4.0 in a Nutshell]
 
** [http://www.amazon.com/Microsoft-Visual-2010-Step/dp/0735626707 Visual c# 2010], [http://www.amazon.com/4-0-Nutshell-The-Definitive-Reference/dp/0596800959 c# 4.0 in a Nutshell]
 
** [http://www.dofactory.com/ShortCutKeys/ShortCutKeys.aspx Visual Shortcuts], [http://www.shortcutworld.com/en/win/SharpDevelop_4.0.html SharpDevelop Short cuts]
 
** [http://www.dofactory.com/ShortCutKeys/ShortCutKeys.aspx Visual Shortcuts], [http://www.shortcutworld.com/en/win/SharpDevelop_4.0.html SharpDevelop Short cuts]
 +
  
 
=== Exercise00 "Vectors and Matrices" ===
 
=== Exercise00 "Vectors and Matrices" ===
Riadok 200: Riadok 201:
 
* [[media:Ex01.Info.pdf|Info]] | [[media:CG1.Ex01.Sample.zip|Sample]] | [[media:CG1.Ex01.Template.zip‎|Template]]
 
* [[media:Ex01.Info.pdf|Info]] | [[media:CG1.Ex01.Sample.zip|Sample]] | [[media:CG1.Ex01.Template.zip‎|Template]]
 
* [http://www.sosmath.com/matrix/inverse/inverse.html Inverse Matrix] | [http://www.mathwords.com/a/adjoint.htm Adjoint Matrix] | [http://en.wikipedia.org/wiki/Adjugate_matrix Adjoint Matrix Wiki]
 
* [http://www.sosmath.com/matrix/inverse/inverse.html Inverse Matrix] | [http://www.mathwords.com/a/adjoint.htm Adjoint Matrix] | [http://en.wikipedia.org/wiki/Adjugate_matrix Adjoint Matrix Wiki]
 +
* '''Here will be deadline!''' But not this time... this exercise is not evalueted.
 
<!--
 
<!--
 
* '''Bonus''' implement unit tests:
 
* '''Bonus''' implement unit tests:
Riadok 208: Riadok 210:
 
* [[media:CG2.Ex00.pdf | Seminar slides]]
 
* [[media:CG2.Ex00.pdf | Seminar slides]]
 
-->
 
-->
 
+
<!--
 
=== Exercise01 "Ray Casting" ===
 
=== Exercise01 "Ray Casting" ===
 
* [[media:CG2.Ex01.pdf | Seminar slides]]
 
* [[media:CG2.Ex01.pdf | Seminar slides]]
Riadok 224: Riadok 226:
 
* '''Deadline: 4. 3. - 16:30'''
 
* '''Deadline: 4. 3. - 16:30'''
 
-->
 
-->
 
+
<!--
 
=== Exercise02 "Primitives" ===
 
=== Exercise02 "Primitives" ===
 
* [[media:CG2.Ex02.pdf | Seminar slides]]
 
* [[media:CG2.Ex02.pdf | Seminar slides]]
Riadok 233: Riadok 235:
 
<!--* [http://www.sccg.sk/~hudak/CG2/Ex02.Sample.zip Sample] | [http://www.sccg.sk/~hudak/CG2/Ex02.Template.zip Template]-->
 
<!--* [http://www.sccg.sk/~hudak/CG2/Ex02.Sample.zip Sample] | [http://www.sccg.sk/~hudak/CG2/Ex02.Template.zip Template]-->
 
<!-- '''Deadline: 11. 3. - 16:30''' -->
 
<!-- '''Deadline: 11. 3. - 16:30''' -->
 
+
<!--
 
=== Exercise03 "Shader & Shading & Shadow" ===
 
=== Exercise03 "Shader & Shading & Shadow" ===
 
* [[media:CG2.Ex03.pdf | Seminar slides]]
 
* [[media:CG2.Ex03.pdf | Seminar slides]]
Riadok 240: Riadok 242:
 
<!--* [http://www.sccg.sk/~hudak/CG2/Ex03.Sample.zip Sample] | [http://www.sccg.sk/~hudak/CG2/Ex03.Template.zip Template]-->
 
<!--* [http://www.sccg.sk/~hudak/CG2/Ex03.Sample.zip Sample] | [http://www.sccg.sk/~hudak/CG2/Ex03.Template.zip Template]-->
 
<!-- * '''Deadline: 18. 3. - 16:30''' -->
 
<!-- * '''Deadline: 18. 3. - 16:30''' -->
 
+
<!--
 
=== Exercise04 "Lights & Shadows" ===
 
=== Exercise04 "Lights & Shadows" ===
 
* [[media:CG2.Ex04.pdf | Seminar slides]]
 
* [[media:CG2.Ex04.pdf | Seminar slides]]
Riadok 249: Riadok 251:
 
<!--* [http://www.sccg.sk/~hudak/CG2/Ex04.Sample.zip Sample] | [http://www.sccg.sk/~hudak/CG2/Ex04.Template.zip Template]-->
 
<!--* [http://www.sccg.sk/~hudak/CG2/Ex04.Sample.zip Sample] | [http://www.sccg.sk/~hudak/CG2/Ex04.Template.zip Template]-->
 
<!-- * '''Deadline: 25. 3. - 16:25''' -->
 
<!-- * '''Deadline: 25. 3. - 16:25''' -->
 
+
<!--
 
=== Exercise05 "More About Shaders" ===
 
=== Exercise05 "More About Shaders" ===
 
* [[media:CG2.Ex05.pdf | Seminar slides]]
 
* [[media:CG2.Ex05.pdf | Seminar slides]]
Riadok 262: Riadok 264:
 
<!--* '''Deadline: 15. 4. - 16:25'''-->
 
<!--* '''Deadline: 15. 4. - 16:25'''-->
 
<!-- === FreeTime [08.04.2015] There is no seminar this week === -->
 
<!-- === FreeTime [08.04.2015] There is no seminar this week === -->
 
+
<!--
 
=== Exercise06 "Even More About Shaders" ===
 
=== Exercise06 "Even More About Shaders" ===
 
* [[media:CG2.Ex06.pdf | Seminar slides]]
 
* [[media:CG2.Ex06.pdf | Seminar slides]]
Riadok 271: Riadok 273:
 
<!--* [http://www.sccg.sk/~hudak/CG2/Ex06.Sample.zip Sample] | [http://www.sccg.sk/~hudak/CG2/Ex06.Template.zip Template]-->
 
<!--* [http://www.sccg.sk/~hudak/CG2/Ex06.Sample.zip Sample] | [http://www.sccg.sk/~hudak/CG2/Ex06.Template.zip Template]-->
 
<!--* '''Deadline: 29. 4. - 16:25'''-->
 
<!--* '''Deadline: 29. 4. - 16:25'''-->
 
+
<!--
 
=== ExerciseLab "Laboratory Experiment" ===
 
=== ExerciseLab "Laboratory Experiment" ===
 
* Could we imitate materials from the real world?
 
* Could we imitate materials from the real world?
Riadok 283: Riadok 285:
 
** Submit your results as a regular submission by mail
 
** Submit your results as a regular submission by mail
 
<!---->
 
<!---->
 
+
<!--
 
=== Exercise08 "Postprocessing" ===
 
=== Exercise08 "Postprocessing" ===
 
* [[media:CG2.Ex08.pdf | Seminar slides]]
 
* [[media:CG2.Ex08.pdf | Seminar slides]]
Riadok 293: Riadok 295:
 
  [http://www.sccg.sk/~hudak/CG2/Ex08.Sample.zip Sample] | [http://www.sccg.sk/~hudak/CG2/Ex08.Template.zip Template]
 
  [http://www.sccg.sk/~hudak/CG2/Ex08.Sample.zip Sample] | [http://www.sccg.sk/~hudak/CG2/Ex08.Template.zip Template]
 
<!--* '''Deadline: 6. 5. - 16:25'''-->
 
<!--* '''Deadline: 6. 5. - 16:25'''-->
 
+
<!--
 
=== Exercise09 [06.05.2015] "Textures" ===
 
=== Exercise09 [06.05.2015] "Textures" ===
 
* [[media:CG2.Ex09.pdf‎ | Seminar slides]]
 
* [[media:CG2.Ex09.pdf‎ | Seminar slides]]
Riadok 311: Riadok 313:
 
** No other assignment this week
 
** No other assignment this week
 
-->
 
-->
 
+
<!--
 
=== AMA "Ask Me Anything" ===
 
=== AMA "Ask Me Anything" ===
 
* Send your questions in advance to homework email
 
* Send your questions in advance to homework email

Verzia zo dňa a času 00:17, 21. február 2018

Cg2 2014.png

Advanced Computer Graphics

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
  • VIEW RESULTS
  • Final Term by Mooddle Electronic test 18.5.2015 8:10 in M-I)
  • Before the test exam you can try to solve many tests from the graphics page, is you can pass the example test then you have big chance to pass the test exam.
  • Schedule
    • Mon (8:10) - Room M-XI (lecture)
    • Str (9:30) - Room I-H3 (seminar)

Materials to read


Lecture00 "Introduction to Computer Graphics"

  • Computer Graphics Applications

Lecture01 "Graphics Pipeline"

  • What is The Graphics Pipeline
  • Vertex Shader
  • Primitive Assembly
  • Tessellation Shaders
  • Geometry Shader
  • Geometry Postprocessing and Rasterization
  • Fragment Shader
  • Frame Buffer Operations
  • http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/pipeline33/
  • Lecture notes: lesson00.pdf
  • Štátnicová téma: Zobrazovací kanál. Grafická pipeline moderného hardvéru, framebuffer, buffer objekty, používané súradnicové priestory, druhy shader programov, druhy optimalizačných techník (view frustum, occlusion, backface culling), príklad shader programov.

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 a porovnanie s Radiosity metódou. (definícia lúča, definícia tieňového 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). Metóda sledovania lúča na GPU, urýchľovacie techniky.

Lecture05 "Light Trasport."

  • Physics behind ray tracing
  • Physical light quantities
  • Visual perception of light
  • Light sources
  • Light transport simulation: Rendering Equation
  • Lecture notes: lesson05.pdf
  • Štátnicová téma: Fyzikálny osvetlovací model a výpočet farieb renderovacou rovnicou. (definícia radiancie, definícia BRDF a jej vlastnosti, fyzikálne BRDF Cook-Tarrance, definícia priestorového uhlu, napíšte renderovaciu rovnicu a vysvetlite jej členy).

Lecture06 "Radiosity."

  • Diffuse reflectance function
  • Radiative equilibrium between emission and absorption, escape
  • System of linear equations
  • Iterative solution Neuman series
  • Lecture notes: lesson05.pdf
  • Boo chapter Shading: shading.pdf

Lecture07 "BRDF."

  • Bidirectional Reflectance Distribution Function (BRDF)
  • Reflection models
  • Projection onto spherical basis functions
  • Shading Phong model, Blin-Phong model
  • Lecture notes: lesson07.pdf
  • Homework:
    • 1. Prove that the specular BRDF from slides less07 fulfills the BRDF properties: reciprocity, energy conservation, definit space, value space of BRDF
    • 2. Derive the equation for reflected direction Omega_r from shading document.
  • Physical BRDF
  • Ward Reflection Model
  • Cook-Torrance model
  • Lecture notes: lesson07Phys.pdf

Lecture08 "Shadows."

  • Lecture notes: lesson08.pdf
  • Štátnicová téma: Tiene, typy tieňov (mäkké, tvrdé, statické, dynamické), typy a popis algoritmov (projekčné, tieňové objemy, tieňové mapy (shadow mapping)), spôsoby implementácie jednotlivých algoritmov, artefakty a ich odstraňovanie, príklad shader programov pre tieňové mapy. Artefakty spôsobené diskretizáciou. Tiene vo Phongovom modeli.

Lecture09 "Texturing 1, 2."

  • Texture parameterization
  • Procedural methods
  • Procedural textures
  • Fractal landscapes
  • Lecture notes: lesson09.pdf
  • Book chapter (Surface reality techniques): lessonBoook09.pdf
  • Štátnicová téma: Lokálne osvetľovacie modely. (tieňovanie, Phongov a Blinn-Phongov osvetlovací model, zložky (ambientna, difúzna, zrkadlová), textúrovanie a druhy textúr, mapovanie a filtrácia textúr, popísať princípy environment, bump, normal mapovania, textúrovací a tangenciálny priestor, príklad shader programov na GPU.

Lecture10 "Image Based Rendering 1."

  • Plenopticfunction
  • Panoramas
  • Concentric Mosaics
  • Light Field Rendering
  • The Lumigraph
  • Lecture notes: lesson10.pdf
  • Homework: Blinn-Phong enumeration.

Lecture11 "Image Based Rendering 2."

  • Layered Depth Images
  • View-dependent Texture Mapping
  • Surface Light Fields
  • View Morphing
  • Lecture notes: lesson10.pdf

Lecture12 "Ask me anything."

  • Test problem introduction

Seminars on Advanced Computer Graphics

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.
  • For programming we will use language C# and Visual C# 2010 as a 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
    • Adam Riečický (adam.riecicky@fmph.uniba.sk, Room M113)
  • Schedule of seminars is
    • Wed (9:50) - Room I-H3

Homeworks

  • You can get max 100% per homework. Submission after a deadline is for 0%.
  • There is a min 60% of your final evaluation required for admission to final term.
  • Additional activity can be awarded 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.
  • For a homework, you will finish the tasks started on the exercises. Assignment and template will be downloadable from this site. See exercises.

Exercises

"Introduction"


Exercise00 "Vectors and Matrices"