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.
* 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.
+
* For programming we will use language '''C#''' and '''Visual Studio 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
 
** Adam Riečický (adam.riecicky@fmph.uniba.sk, Room M113)
 
** Adam Riečický (adam.riecicky@fmph.uniba.sk, Room M113)
 
* Schedule of seminars is
 
* Schedule of seminars is
** Monday (16:30) - Room F1-248
+
** Wednesday (9:50) - Room I-H3
<!--
+
* 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]
+
-->
+
  
 
== Homeworks ==
 
== Homeworks ==
* You can get '''max 100% per homework'''. Submission after a deadline is for 0%.
+
* For homework, you shall finish the tasks started on the exercises. Assignment and template will be downloadable from this page.
* There is a '''min 60% of your final evaluation''' required for admission to final term.
+
* 2 week period after each seminar, for submitting your finished code. Submissions after a deadline are for 0%.
* Additional activity can be awarded by '''max 10% of your final evaluation'''.
+
* Minimum of 60% of your final exercise evaluation is required for admission to final term.
* Don't cheat - create instead. Any kind of cheating is punished by '''withholding 30% of your final evaluation''' for all involved students.
+
* Additional activity can be awarded by max 10% of your final evaluation.
* 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'''.
+
* 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.
+
* [https://docs.google.com/spreadsheet/pub?key=0AguOJecPQwoSdFVER3BYMVhINHBnTnRGelVlUGx3eVE&single=true&gid=0&output=html Your Evaluation]
+
 
+
== Projects ==
+
* There are no projects in this semester. However, if you want to implement something different than exercises you can choose e.g.:
+
** Implement photon mapping method
+
** Implement stochastic ray tracing method
+
** Implement radiosity method
+
** Implement ambient occlusion method
+
** Implement path tracing method - CUDA or openCL required
+
** Implement indirect lighting method
+
 
+
* '''Deadline:''' 17.5. - 23:59
+
  
* Evaluation will be calculated due to the complexity of your solution. Evaluation % will be summed into % from the exercises.
+
* Homework must be submitted by email to [mailto:adam.riecicky@fmph.uniba.sk  adam.riecicky@fmph.uniba.sk].
-->
+
* Your submission email '''must''' have the title in the form 'ACG ExNN' where NN is the number of exercises, eg. ACG Ex05.
 +
* It is required to submit zipped source code of your homework (preferably the whole solution). Do not send executable files. Homeworks without the source code are for 0%.
 +
* Your code should be well '''formatted and commented'''. Titles of functions, classes, variables should be representative for their purpose. Homeworks without appropriate comments are for 0%.
  
 
== Exercises ==
 
== Exercises ==
Riadok 186: Riadok 165:
 
** [http://www.fxguide.com/featured/the-state-of-rendering/ The State of Rendering 1], [http://www.fxguide.com/featured/the-state-of-rendering-part-2/ The State of Rendering 2]
 
** [http://www.fxguide.com/featured/the-state-of-rendering/ The State of Rendering 1], [http://www.fxguide.com/featured/the-state-of-rendering-part-2/ The State of Rendering 2]
 
* Theory / Reading?
 
* Theory / Reading?
** [http://www.scratchapixel.com/lessons/ Scratchapixel Lessons] - intersections, polygones, phong lighting
 
 
** [http://www.sci.utah.edu/~wald/PhD/wald_phd.pdf Ingo Wald's Thesis] - PhD. thesis about rendering, acceleration and global illumination.
 
** [http://www.sci.utah.edu/~wald/PhD/wald_phd.pdf Ingo Wald's Thesis] - PhD. thesis about rendering, acceleration and global illumination.
 
** [http://www.amazon.com/Physically-Based-Rendering-Second-Edition/dp/0123750792 Physically Based Rendering]
 
** [http://www.amazon.com/Physically-Based-Rendering-Second-Edition/dp/0123750792 Physically Based Rendering]
 
* Practice?
 
* Practice?
** [http://www.belanecbn.sk/3dtutorials/index.php?id=16 Ray Tracer in c++]
 
 
** [http://www.codeproject.com/Articles/20355/Simple-Ray-Tracing-in-C-Part-VII-Shadows Ray Tracer in c#]
 
** [http://www.codeproject.com/Articles/20355/Simple-Ray-Tracing-in-C-Part-VII-Shadows Ray Tracer in c#]
 
* Intro to c#?
 
* Intro to c#?
Riadok 208: Riadok 185:
 
'''Here will be deadline!''' But not this time... this exercise is not evaluated.
 
'''Here will be deadline!''' But not this time... this exercise is not evaluated.
 
<!--
 
<!--
* [[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]
 
<!--
 
* '''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
 
* [[media:CG2.Ex00.pdf | Seminar slides]]
 
-->
 
 
 
=== Exercise01 "Ray Casting" ===
 
=== Exercise01 "Ray Casting" ===
<!--* [[media:CG2.Ex01.pdf | Seminar slides]]-->
 
 
[https://docs.google.com/presentation/d/1dLsxxzxOqyyd7YyDcsW9G_Knsrbox_TRLJGd-Xjc7RE/edit?usp=sharing Seminar slides]
 
[https://docs.google.com/presentation/d/1dLsxxzxOqyyd7YyDcsW9G_Knsrbox_TRLJGd-Xjc7RE/edit?usp=sharing Seminar slides]
  
Riadok 230: Riadok 195:
 
Try to change the color of the intersected object due to the distance from the camera
 
Try to change the color of the intersected object due to the distance from the camera
 
* [[media:CG2.Ex01.Sample.zip | Sample]] | [[media:CG2.Ex01.Template.zip | Template]]
 
* [[media:CG2.Ex01.Sample.zip | Sample]] | [[media:CG2.Ex01.Template.zip | Template]]
 +
 
''' Bonus [+2%]:'''  
 
''' Bonus [+2%]:'''  
 
Create a camera which will rotate around defined point P (target) among a sphere with r = 1. You can use ideas from the Blender camera system and/or two-angle camera in OpenGL. The 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.
 
Create a camera which will rotate around defined point P (target) among a sphere with r = 1. You can use ideas from the Blender camera system and/or two-angle camera in OpenGL. The 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.
 
* [http://youtu.be/1twa3CJOEfA?t=1m49s Example Camera Movement]
 
* [http://youtu.be/1twa3CJOEfA?t=1m49s Example Camera Movement]
<!--
+
 
* [http://www.sccg.sk/~hudak/CG2/Ex01.Sample.zip Sample] | [http://www.sccg.sk/~hudak/CG2/Ex01.Template.zip Template]
+
 
* '''Deadline: 4. 3. - 16:30'''
 
* '''Deadline: 4. 3. - 16:30'''
-->
 
  
 
=== Exercise02 "Primitives" ===
 
=== Exercise02 "Primitives" ===
<!--[[media:CG2.Ex02.pdf | Seminar slides]]-->
 
 
[https://docs.google.com/presentation/d/1lKXov3Aoh0Xi1cwlGFLADLORhevRlc28iwqX-f0QbrI/edit?usp=sharing Seminar Slides]
 
[https://docs.google.com/presentation/d/1lKXov3Aoh0Xi1cwlGFLADLORhevRlc28iwqX-f0QbrI/edit?usp=sharing Seminar Slides]
  
Riadok 256: Riadok 219:
  
 
=== Exercise03 "Shaders, Shading and Shadows" ===
 
=== Exercise03 "Shaders, Shading and Shadows" ===
<!--[[media:CG2.Ex03.pdf | Seminar slides]]-->
 
 
[https://docs.google.com/presentation/d/1q_n3gjcUHZ8Nr7ma6EJXmE9RJxMHj1bmysQnKQwzb3U/edit?usp=sharing Seminar Slides]
 
[https://docs.google.com/presentation/d/1q_n3gjcUHZ8Nr7ma6EJXmE9RJxMHj1bmysQnKQwzb3U/edit?usp=sharing Seminar Slides]
  
Riadok 266: Riadok 228:
  
 
=== Exercise04 "Lights & Shadows" ===
 
=== Exercise04 "Lights & Shadows" ===
<!--[[media:CG2.Ex04.pdf | Seminar slides]]-->
 
 
[https://docs.google.com/presentation/d/1BefIrufgieVVjSyr5R65CKWFwuxBaj2CGhXIx_58CNA/edit?usp=sharing Seminar Slides]
 
[https://docs.google.com/presentation/d/1BefIrufgieVVjSyr5R65CKWFwuxBaj2CGhXIx_58CNA/edit?usp=sharing Seminar Slides]
  
Riadok 272: Riadok 233:
 
Improve your tracer by adding a point light, spot light [http://wiki.blender.org/index.php/Doc:2.6/Manual/Lighting/Lamps/Spot] and an area light. In the case of point and spotlight, define the light as a point with hard shadows and linear/quadratic light attenuation [http://wiki.blender.org/index.php/Doc:2.6/Manual/Lighting/Lights/Light_Attenuation]. Area light could be defined by Lights x Lights point lights. Area light should also be able to produce soft shadows.
 
Improve your tracer by adding a point light, spot light [http://wiki.blender.org/index.php/Doc:2.6/Manual/Lighting/Lamps/Spot] and an area light. In the case of point and spotlight, define the light as a point with hard shadows and linear/quadratic light attenuation [http://wiki.blender.org/index.php/Doc:2.6/Manual/Lighting/Lights/Light_Attenuation]. Area light could be defined by Lights x Lights point lights. Area light should also be able to produce soft shadows.
 
* [[media:CG2.Ex04.Sample.zip | Sample]] | [[media:CG2.Ex04.Template.zip | Template]]
 
* [[media:CG2.Ex04.Sample.zip | Sample]] | [[media: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]-->
 
  
 
'''[1 bonus %]:'''  
 
'''[1 bonus %]:'''  
Riadok 294: Riadok 254:
  
 
=== Exercise05 "More Shaders" ===
 
=== Exercise05 "More Shaders" ===
<!--* [[media:CG2.Ex05.pdf | Seminar slides]]-->
 
 
[https://docs.google.com/presentation/d/1tx3eCeAjyHXrsTJxLtMMxqkJ2lyY9JioChyKWI94tVk/edit?usp=sharing Seminar Slides]
 
[https://docs.google.com/presentation/d/1tx3eCeAjyHXrsTJxLtMMxqkJ2lyY9JioChyKWI94tVk/edit?usp=sharing Seminar Slides]
  
Riadok 300: Riadok 259:
 
Improve your tracer by adding a few more shaders: Toon / Cell, Cook-Torrance, Oren-Nayar, Gradient. As usual you should use a similar functionality as in the sample application.
 
Improve your tracer by adding a few more shaders: Toon / Cell, Cook-Torrance, Oren-Nayar, Gradient. As usual you should use a similar functionality as in the sample application.
 
* [[media:CG2.Ex05.Sample.zip|Sample]] | [[media:CG2.Ex05.Template.zip|Template]]  
 
* [[media:CG2.Ex05.Sample.zip|Sample]] | [[media:CG2.Ex05.Template.zip|Template]]  
<!--* Set Cook-Torrance color to match your measurements from Laboratory exercise.-->
+
* Set Cook-Torrance color to match your measurements from Laboratory exercise.
  
 
'''[2 bonus %]:'''  
 
'''[2 bonus %]:'''  
Riadok 311: Riadok 270:
  
 
=== Exercise06 "Reflection And Refraction" ===
 
=== Exercise06 "Reflection And Refraction" ===
<!--* [[media:CG2.Ex06.pdf | Seminar slides]]-->
 
 
[https://docs.google.com/presentation/d/1IPvbsiFnvYhp51V8OobyJy8H-3fvdIzksZqqUUwN2-0/edit?usp=sharing Seminar Slides]
 
[https://docs.google.com/presentation/d/1IPvbsiFnvYhp51V8OobyJy8H-3fvdIzksZqqUUwN2-0/edit?usp=sharing Seminar Slides]
  
Riadok 324: Riadok 282:
  
 
=== Exercise08 "Postprocessing" ===
 
=== Exercise08 "Postprocessing" ===
<!--* [[media:CG2.Ex08.pdf | Seminar slides]]-->
 
 
[https://docs.google.com/presentation/d/1CxRs7VM0ZEMMq-m4BCklmpTWJyFDQDb_XPunFWeFtMU/edit?usp=sharing Seminar slides]
 
[https://docs.google.com/presentation/d/1CxRs7VM0ZEMMq-m4BCklmpTWJyFDQDb_XPunFWeFtMU/edit?usp=sharing Seminar slides]
  
 
Improve your raytracer by adding supersampling antialiasing [http://en.wikipedia.org/wiki/Supersampling]. Implement blur. User can scale the intensity of blur [http://www.blackpawn.com/texts/blur/default.html].
 
Improve your raytracer by adding supersampling antialiasing [http://en.wikipedia.org/wiki/Supersampling]. Implement blur. User can scale the intensity of blur [http://www.blackpawn.com/texts/blur/default.html].
 
* [[media:CG2.Ex08.Sample.zip | Sample]] | [[media:CG2.Ex08.Template.zip | Template]]
 
* [[media:CG2.Ex08.Sample.zip | Sample]] | [[media: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]-->
 
  
 
'''[2 bonus %]:'''  
 
'''[2 bonus %]:'''  
Riadok 343: Riadok 299:
 
Implement 3 kinds of texture mapping: plane, sphere [http://4.bp.blogspot.com/-X5yJU7L87b4/Tuph1yIE64I/AAAAAAAAAOg/n36HVurEtxs/s1600/adadad.png] and normal mapping [http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-13-normal-mapping/]. Your results should be similar to the given sample.
 
Implement 3 kinds of texture mapping: plane, sphere [http://4.bp.blogspot.com/-X5yJU7L87b4/Tuph1yIE64I/AAAAAAAAAOg/n36HVurEtxs/s1600/adadad.png] and normal mapping [http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-13-normal-mapping/]. Your results should be similar to the given sample.
 
* [[media:CG2.Ex09.Sample.zip | Sample]] | [[media:CG2.Ex09.Template.zip | Template]]
 
* [[media:CG2.Ex09.Sample.zip | Sample]] | [[media:CG2.Ex09.Template.zip | Template]]
<!--* [http://www.sccg.sk/~hudak/CG2/Ex09.Sample.zip Sample] | [http://www.sccg.sk/~hudak/CG2/Ex09.Template.zip Template] -->
+
 
<!--
+
 
'''Tutorial:'''
 
'''Tutorial:'''
 
* Define class Sampler and its descendants: class ColorSampler(only color) and class TextureSampler(also texture). Texture sampler should use some sort of sampling (clamp) and some sort of filtering (nearest neighbor)
 
* Define class Sampler and its descendants: class ColorSampler(only color) and class TextureSampler(also texture). Texture sampler should use some sort of sampling (clamp) and some sort of filtering (nearest neighbor)
Riadok 353: Riadok 308:
 
Implement repeat and mirror texture sampling and bilinear texture filtering.
 
Implement repeat and mirror texture sampling and bilinear texture filtering.
  
'''Deadline : 7.5. - 16:30'''-->
+
'''Deadline : 7.5. - 16:30'''
 
+
  
 
=== AMA "Ask Me Anything" ===
 
=== AMA "Ask Me Anything" ===
Riadok 360: Riadok 314:
  
 
[https://docs.google.com/presentation/d/1RtsxHpjtC_Rfh3tKd7u4cQYNqi71lvOP7XUnzlI-rS4/edit#slide=id.p29 Slides]
 
[https://docs.google.com/presentation/d/1RtsxHpjtC_Rfh3tKd7u4cQYNqi71lvOP7XUnzlI-rS4/edit#slide=id.p29 Slides]
<!--
+
 
 
=== Final Term "Final Term" ===
 
=== Final Term "Final Term" ===
 
* Final test in moodle
 
* Final test in moodle
 
* Oral exam afterwards for successful students
 
* Oral exam afterwards for successful students
  
<!--
 
 
=== [20.05.2015] "Final Term" ===
 
=== [20.05.2015] "Final Term" ===
  

Verzia zo dňa a času 21:09, 19. február 2019

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 13.5 12:20 in M-V)
  • 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 (12:20) - Room M-V (lecture)
    • Str (9:50) - 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 [1]
  • Š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, Lecture09 "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.

Lecture10, Lecture11 "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.

Lecture12 "Image Based Rendering 1."

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

Lecture13 "Image Based Rendering 2."

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

Lecture14 "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 Studio 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
    • Wednesday (9:50) - Room I-H3

Homeworks

  • For homework, you shall finish the tasks started on the exercises. Assignment and template will be downloadable from this page.
  • 2 week period after each seminar, for submitting your finished code. Submissions after a deadline are for 0%.
  • Minimum of 60% of your final exercise evaluation is required for admission to final term.
  • Additional activity can be awarded by max 10% of your final evaluation.
  • Homework must be submitted by email to adam.riecicky@fmph.uniba.sk.
  • Your submission email must have the title in the form 'ACG ExNN' where NN is the number of exercises, eg. ACG Ex05.
  • It is required to submit zipped source code of your homework (preferably the whole solution). Do not send executable files. Homeworks without the source code are for 0%.
  • Your code should be well formatted and commented. Titles of functions, classes, variables should be representative for their purpose. Homeworks without appropriate comments are for 0%.

Exercises

"Introduction"


Exercise00 "Vectors and Matrices"

Asignment: Create a simple application for vectors(4x1) and matrices(4x4). Use struct properties, function and/or operators. Create a calculator, check your equations and results. Add implementation to theese files in folder ./Mathematics/ : Vector4.cs, MathEx.cs (if you have a courage, try also Matrix44.cs)

For help, view this reminder on linear algebra

Here will be deadline! But not this time... this exercise is not evaluated.