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
- VIEW RESULTS
- Final Term by Modddle Ecetronic test (18.5.2015 8:10 in B)
- Schedule
- Mon (8:10) - Room A (lecture)
- Wed (16:30) - Room I-H3 (seminar)
Materials to read
- http://www.cs.princeton.edu/courses/archive/fall00/cs426/
- http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/pipeline33/
- http://www.amazon.com/Mathematics-Computer-Graphics-Undergraduate-Science/dp/1849960224
- http://www.martinus.sk/?uItem=19688 - Moderni Pocitacova Grafika
Lecture01 "Introduction to Computer Graphics"
Lecture02 "Ray Tracing 1."
- TayTracong Pipeline
- Lecture notes: lesson01.pdf
Lecture03 "Ray Tracing 2."
- Ray Intersections
- Lecture notes: lesson01.pdf
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 (cg2.2015.hw@gmail.com, Room M113)
- Schedule of seminars is
- Wed (16:30) - Room I-H3
Homeworks
- 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 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.
Exercises
Exercise00 [18.02.2015] "Introduction"
- Motivation?
- Theory / Reading?
- Scratchapixel Lessons - intersections, polygones, phong lighting
- Ingo Wald's Thesis - PhD. thesis about rendering, acceleration and global illumination.
- Physically Based Rendering
- Practice?
- Intro to c#?
- Visual c# 2010, c# 4.0 in a Nutshell
- Visual Shortcuts, SharpDevelop Short cuts
- Exercise "Vectors and Matrices" - CG1
- Seminar slides
Exercise01 [25.02.2015] "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.
- Example Camera Movement
- Sample | Template
- Deadline: 4. 3. - 16:30