d (Excercises CG)
(41 intermediate revisions by 3 users not shown)
Riadok 10: Riadok 10:
  
 
; Lecture
 
; Lecture
: Wednesday 9:50, M-I
+
: Wednesday 9:50, M-IX
 
; Excercises
 
; Excercises
: Monday 18:10, F1-248
+
: Monday 17:20, I-H3
  
 
=== Grading ===
 
=== Grading ===
Riadok 18: Riadok 18:
 
* Final writen exam: 50p
 
* Final writen exam: 50p
 
* Excercises: 50p ''(with minimum of 30p)''
 
* Excercises: 50p ''(with minimum of 30p)''
** 4 home assignments: 4x10p (2 from CG part and 2 from IP)
+
** 2 home assignments (projects): 2x20p (1 from CG part and 1 from IP part)
 
** Attendance: 10x1p
 
** Attendance: 10x1p
 
                                        
 
                                        
Riadok 28: Riadok 28:
  
 
----
 
----
 +
== Lectures ==
  
 +
[http://www.sccg.sk/~madaras/students.html CG slides ]
 +
*3.11. Snimanie [https://docs.google.com/presentation/d/1mxQZt2V2fwaNZlZ2c4QVOXlJunyBBbGRfIv68yjBZXQ/edit?usp=sharing slides]
 +
*10.11. Predspracovanie [https://docs.google.com/presentation/d/1JHeZS8IlN41tR_7KbLc_6KDX_qKnLIBN_I6mb82mlyw/edit?usp=sharing slides]
 +
*24.11. Segmentacia [https://docs.google.com/presentation/d/1Rgos4gePcXCjhmhwu-DUto18yKvQrUifJZnnr8k2-ms/edit?usp=sharing slides]
 +
*1.12. Image classification and Pattern recognition [https://docs.google.com/presentation/d/1uXw1ATBRvj6P2426PE0Mejpb2TksVrsu-xOiJkWTIL0/edit?usp=sharing slides]
 +
*8.12. Deep learning for computer vision, online cez Teams [https://docs.google.com/presentation/d/1aZ0iLF1DM8TtB_J6rGyWVRGHP7EhJiTeQeWlV3z7pVE/edit?usp=sharing slides]
 +
*15.12. Exam, online cez Teams
  
== Excercises CG ==
+
== Labs ==
  
=== Slides ===
+
* Slides & project assignment: [https://github.com/danasko/zpgso GitHub]
 +
<!---
 +
Guide: Adam Riečický
  
[https://dai.fmph.uniba.sk/upload/e/e0/ZPGSO2016_EX01.pdf Slides #01]
+
Mondays at 16:30 on [https://teams.microsoft.com/l/channel/19%3ac7d4a4b8193e42a7ba7bd4c9fbb24599%40thread.tacv2/General?groupId=06d7acf3-8480-4c8f-aa56-6e71fd0ebbb1&tenantId=ce31478d-6e7a-4ce7-8670-a5b9d51884f9 Teams]
  
[https://dai.fmph.uniba.sk/upload/9/91/ZPGSO2016_EX02.pdf Slides #02]
+
== Slides ==
  
=== Project ===
+
[https://docs.google.com/presentation/d/1Zv6LJ8nKIB84ly_YBpJAT8rXI4Vtxh-a2hK7H4ay_Wk/edit?usp=sharing Slides #01]
 +
 
 +
[https://docs.google.com/presentation/d/17zB9-BhQa0jSjLs8bDOdfUHmf9MJ3dDp5bEQi-82cGE/edit?usp=sharing Slides #02]
 +
 
 +
[https://docs.google.com/presentation/d/14luAuPU26NjKMbQRf7leVxUwQcGh0ZLBmvQ4uR4Kerc/edit?usp=sharing Slides #03]
 +
 
 +
[https://docs.google.com/presentation/d/1IXT5HbH1q7LhgGfYJkI5khzezfBqzTT1jnp3d15VWGY/edit#slide=id.p Slides #04]
 +
 
 +
[https://docs.google.com/presentation/d/1y2rWsXCrkgj68UuLU-ELztN57ofnoie7oG5DmgUJXKI/edit#slide=id.g29c1b949f2_0_0 Slides #05]
 +
 
 +
== Project ==
  
 
Choose programming language of your liking (suggested Python/Java/Javascript)
 
Choose programming language of your liking (suggested Python/Java/Javascript)
Riadok 44: Riadok 64:
 
Finished project send to ''adam.riecicky@fmph.uniba.sk''
 
Finished project send to ''adam.riecicky@fmph.uniba.sk''
  
==== Stage 1 (13p) ====
+
=== Stage 1 (3p) ===
''Deadline 9.12.2018 23:59''
+
''Deadline 22.11.2020 23:59''
  
Create a simple visualization and transformation tool for meshes, stored in obj. file format.
+
Create a simple loader and visualizer of meshes, stored in obj. file format.
  
 
; Structures
 
; Structures
: implement math types Mat4 and Vec4. Add functions Multiply(Mat4, Mat4) and Multiply(Vec4, Mat4).
 
 
: implement IndexedFace which contains ''array of Vec4 vertex positions'' and ''array of Int indices''
 
: implement IndexedFace which contains ''array of Vec4 vertex positions'' and ''array of Int indices''
 
; Mesh import and display
 
; Mesh import and display
 
: load mesh from Wavefront file (.obj). [[https://dai.fmph.uniba.sk/upload/104/d/d1/obj_files.zip Download test models here]]. Assume that all imported models are scaled to box (2x2).
 
: load mesh from Wavefront file (.obj). [[https://dai.fmph.uniba.sk/upload/104/d/d1/obj_files.zip Download test models here]]. Assume that all imported models are scaled to box (2x2).
: display wireframe model in the center of a screen so that Y-axis of model directs upwards and X-axis directs right. (Z is ignored)
+
: display wireframe model in the center of a screen so that the Y-axis of model directs upwards and X-axis directs right. (Z is ignored)
 +
 
 +
; Examples of the functional program '''(ignore gui)''':
 +
: [https://dai.fmph.uniba.sk/upload/104/e/e2/img1.png screen 1]
 +
: [https://dai.fmph.uniba.sk/upload/a/a9/Img2.png screen 2]
 +
 
 +
=== Stage 2 (10p) ===
 +
''Deadline 22.12.2020 23:59''
 +
 
 +
Add transformation controls to your tool.
 +
 
 +
; Structures
 +
: implement math types ''Mat4'' and ''Vec4''.
 +
: Add functions ''Multiply(Mat4, Mat4)'', ''Multiply(Mat4, Vec4)'' OR override the multiplication operator.
 
; Transformations - must be implemented using matrix multiplication!
 
; Transformations - must be implemented using matrix multiplication!
: Add buttons which can control transformations of the model. It must include
+
: Add buttons that can control the transformations of the model. When a user requests transformation by clicking a button, a model matrix should be constructed. (Optionally added to the previous transformation)
: Always remember the original transformation and reset it using a button
+
: Motel matrix can be ''reset to identity'' using a Reset button
 +
: Construct a projection matrix which performs primitive orthogonal projection and transforms the object into the viewport (scale and translate as in the previous stage)
 +
: Always store the original model. Model transformation and projection is done for each point just before rendering
  
 
; Examples of the functional program:
 
; Examples of the functional program:
Riadok 64: Riadok 98:
 
: [https://dai.fmph.uniba.sk/upload/8/81/Img3.png screen 3] = Imported, translated by -0.6 in X-axis, rotated by 0.6 rad around Y-axis, rotated by 0.4 rad around Z-axis and scaled by factor 1.1, in order  
 
: [https://dai.fmph.uniba.sk/upload/8/81/Img3.png screen 3] = Imported, translated by -0.6 in X-axis, rotated by 0.6 rad around Y-axis, rotated by 0.4 rad around Z-axis and scaled by factor 1.1, in order  
  
<!--=== Stage 2 (7p) ===
+
=== Stage 3 (7p) ===
''Deadline 26.11. 31:59''
+
''Deadline 27.1.2021 23:59''
  
Enhance existing visualization tool by implementing Phong Lightning Model (PLM).
+
Enhance existing visualization tool by implementing Blinn-Phong Lightning Model
([https://dai.fmph.uniba.sk/upload/a/a2/ZPGSO2016_EX05.pdf Excercise 05 notes])
+
  
 
; Mesh display
 
; Mesh display
: implement back-face culling. Faces on the far side of mesh should not be rendered (neither PLM calculated)
+
: Implement back-face culling. Faces on the far side of the mesh should not be rendered
: display solid model - each face is a drawn as a polygon filled with color (no edges)
+
: Display solid model - each face is drawn as a polygon filled with color (no edges)
: final face color should be calculated as multiples of base color and intensity calculated by PLM
+
: Final face color should be calculated as multiples of base color and intensity calculated by Blinn-Phong
 
; Controls
 
; Controls
: Add interface to control a direction of incoming light
+
: Add an interface to control the direction or position of the incoming light
: Always remember the original transformation and reset it using a button
+
 
 +
; Examples of the functional program:
 +
: [https://dai.fmph.uniba.sk/upload/b/bd/Zpgso_pr2_scr1.png screen 1]
 +
: [https://dai.fmph.uniba.sk/upload/7/71/Zpgso_pr2_scr2.png screen 2]
 +
 
 +
=== Bonus Points ===
 +
''Submit with Stage 3''
 +
 
 +
Extend your visualization options by the following features to earn bonus points. Attention: Your point total (including bonus points) will not exceed 25 points for exercises from computer graphics part.
 +
 
 +
; Material Properties (1p)
 +
: Expose material properties ka, kd, ks, shininess, and color to GUI. Re-render image when the user changes these properties.
 +
 
 +
; Lighting Model Selection (2p)
 +
: Implement a switch that allows the selection between two lighting models (Phong vs Blin-Phong). The difference should be minimal but it is a proof of concept.
  
Examples of the functional program:
+
; Light Types (3p)
[https://dai.fmph.uniba.sk/upload/b/bd/Zpgso_pr2_scr1.png screen 1],
+
: Add possibility to select the light type (point light, sun/directional light) - the GUI option should also change from "light direction" to "light position".
[https://dai.fmph.uniba.sk/upload/7/71/Zpgso_pr2_scr2.png screen 2]
+
--->
-->
+

Verzia zo dňa a času 11:23, 8. december 2021

Fundamentals of Computer Graphics and Image Processing 1-AIN-301

Course information sheet >

Lecture
Wednesday 9:50, M-IX
Excercises
Monday 17:20, I-H3

Grading

You can get 100 points (p) during semester, where 1pt = 1% of final grade

  • Final writen exam: 50p
  • Excercises: 50p (with minimum of 30p)
    • 2 home assignments (projects): 2x20p (1 from CG part and 1 from IP part)
    • Attendance: 10x1p

Materials



Lectures

CG slides

  • 3.11. Snimanie slides
  • 10.11. Predspracovanie slides
  • 24.11. Segmentacia slides
  • 1.12. Image classification and Pattern recognition slides
  • 8.12. Deep learning for computer vision, online cez Teams slides
  • 15.12. Exam, online cez Teams

Labs

  • Slides & project assignment: GitHub