d
d (Assignment CG)
Riadok 31: Riadok 31:
  
 
== Assignment CG ==
 
== Assignment CG ==
 +
 +
Choose programming language of your liking (suggested Python/Java/Javascript)
 +
Finished project send to **adam.riecicky@fmph.uniba.sk**
 +
 
=== Stage 1 (13p) ===
 
=== Stage 1 (13p) ===
 
''Deadline 6.10. 3:00 AM''
 
''Deadline 6.10. 3:00 AM''
Riadok 43: Riadok 47:
 
: display wireframe model in center of a screen so that Y axis of model directs upwards and X axis directs right. (Z is ignored)
 
: display wireframe model in center of a screen so that Y axis of model directs upwards and X axis directs right. (Z is ignored)
 
; Transformations - must be implemented using matrix multiplication !
 
; Transformations - must be implemented using matrix multiplication !
: Add butons which can controll transformations of model. It must include  
+
: Add buttons which can control transformations of model. It must include  
: Allways remember original transformation and reset it using a button
+
: Always remember original transformation and reset it using a button
  
 
Examples of functional program:
 
Examples of functional program:
Riadok 50: Riadok 54:
 
[[https://dai.fmph.uniba.sk/upload/a/a9/Img2.png screen 2]],
 
[[https://dai.fmph.uniba.sk/upload/a/a9/Img2.png screen 2]],
 
[[https://dai.fmph.uniba.sk/upload/8/81/Img3.png screen 3]]
 
[[https://dai.fmph.uniba.sk/upload/8/81/Img3.png screen 3]]
 +
 +
=== Stage 2 (7p) ===
 +
''Deadline 6.10. 3:00 AM''
 +
 +
Enhance existing visualization tool by implementing Phong Lightning Model (PLM).
 +
([https://dai.fmph.uniba.sk/upload/a/a2/ZPGSO2016_EX05.pdf Excercise 05 notes])
 +
 +
; Mesh display
 +
: implement back-face culling. Faces on the far side of mesh should not be rendered  (neither PLM calculated)
 +
: display solid model - each face is a drawn as a polygon filled with color (no edges)
 +
: final face color should be calculated as multiple of base color and intensity calculated by PLM
 +
; Controls
 +
: Add interface to control incoming light direction
 +
: Always remember original transformation and reset it using a button

Verzia zo dňa a času 11:02, 13. november 2017

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

Course information sheet >

Lecture
Wednesday 9:50, M-I
Excercises
Monday 18:10, F1-248

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)
    • 4 home assignments: 4x10p (2 from CG part and 2 from IP)
    • Attendance: 10x1p

Materials




Assignment CG

Choose programming language of your liking (suggested Python/Java/Javascript) Finished project send to **adam.riecicky@fmph.uniba.sk**

Stage 1 (13p)

Deadline 6.10. 3:00 AM

Create simple visualization and transformation tool for meshes, stored in obj. file format.

Structures
implement math types Mat4 and Vec4. Add functions Multiply(Mat4, Mat4) and Multiply(Vec4, Mat4).
implement IndexedFace which contains array of Vec4 vertices and array of Int indices
Mesh import and display
load mesh from Wavefront file (.obj). [Download test models here]. Assume that all imported models are scaled to box (2x2).
display wireframe model in center of a screen so that Y axis of model directs upwards and X axis directs right. (Z is ignored)
Transformations - must be implemented using matrix multiplication !
Add buttons which can control transformations of model. It must include
Always remember original transformation and reset it using a button

Examples of functional program: [screen 1], [screen 2], [screen 3]

Stage 2 (7p)

Deadline 6.10. 3:00 AM

Enhance existing visualization tool by implementing Phong Lightning Model (PLM). (Excercise 05 notes)

Mesh display
implement back-face culling. Faces on the far side of mesh should not be rendered (neither PLM calculated)
display solid model - each face is a drawn as a polygon filled with color (no edges)
final face color should be calculated as multiple of base color and intensity calculated by PLM
Controls
Add interface to control incoming light direction
Always remember original transformation and reset it using a button