Principles of Computer Graphics and Image Processing
Modeling (01)
- RNDr. Martin Madaras, PhD.
martin.madaras@stuba.sk
Modeling (01) RNDr. Martin Madaras, PhD. martin.madaras@stuba.sk - - PowerPoint PPT Presentation
Principles of Computer Graphics and Image Processing Modeling (01) RNDr. Martin Madaras, PhD. martin.madaras@stuba.sk Computer Graphics Image processing Representing and manipulation of 2D images Modeling Representing and
martin.madaras@stuba.sk
2
Representing and manipulation of 2D images
Representing and manipulation of 2D and 3D objects
Constructing images from virtual models
Simulating changes over time
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
void drawLine(int x1, int x2, int y1, int y2) { float m = (y2-y1)/(x2-x1); int x = x1; float y = y1; while(x<=x2) { setPixel(x, round(y), PIXEL_ON); x += 1; y += m; } }
87
void drawLine(int x1, int x2, int y1, int y2) { float m = (y2-y1)/(x2-x1); not exact! int x = x1; float y = y1; while(x<=x2) { setPixel(x, round(y), PIXEL_ON); x += 1; y += m; accumulates error! } }
88
void drawLine(int x1, int x2, int y1, int y2) { float m = (y2-y1)/(x2-x1); int x = x1; int y = y1; float e = 0.0f; while(x<=x2) { setPixel(x, round(y), PIXEL_ON); x += 1; e += m; if(e>0.5f) { y += 1; e -= 1.0f; } } }
89
void drawLine(int x1, int x2, int y1, int y2) { int x = x1; int y = y1; float e = -0.5f; while(x<=x2) { setPixel(x, round(y), PIXEL_ON); x += 1; e += (y2-y1)/(x2-x1); if(e>0.0f) { y += 1; e -= 1.0f; } } }
90
void drawLine(int x1, int x2, int y1, int y2) { int x = x1; int y = y1; float e = -0.5f*(x2-x1); while(x<=x2) { setPixel(x, y, PIXEL_ON); x += 1; e += y2-y1; if(e>0.0f) { y += 1; e -= x2-x1; } } }
91
void drawLine(int x1, int x2, int y1, int y2) { int x = x1; int y = y1; int e = -(x2-x1); while(x<=x2) { setPixel(x, y, PIXEL_ON); x += 1; e += 2*(y2-y1); if(e>0) { y += 1; e -= 2*(x2-x1); } } }
92
void drawLine(int x1, int x2, int y1, int y2) { int x = x1; int y = y1; int e = -(x2-x1); while(x<=x2) { setPixel(x, y, PIXEL_ON); x += 1; e += 2*(y2-y1); if(e>0) { y += 1; e -= 2*(x2-x1); } } }
93
94
95
Specification [6p]
Data structures (1p) Class diagrams (1p) Pseudocodes (1p) User interaction diagrams (1p) Structure rendering algorithms (1p) Modul connection diagrams (1p)
Use of texture mapping on 3D geometry [4p]
Unique 3D meshes (2p) Unique texturing using uv coordinates (2p)
Camera transformations [6p]
Camera with perspective projection (1p) Animated camera (2p) Interactive camera (2p) Use of multiple camera view positions (1p)
96
Implementation of a scene with logically relative objects (1p) Changing scenes and multiple areas/scenes (2p)
At least 2 different scenes
Scene has a logical ground and background (sky, ceiling, walls…) (1p) Presented demo must have a beginning and a logical ending (1p)
Dynamic scene with objects being created and destroyed during demo
At least 2 different types of objects
Procedurally generated scene (2b)
Effective object to object collisions and interactions (3p)
Dynamic response to collisions
97
Procedurally driven animation (2p)
Encapsulated method with parameters Logical branching
Basic simulated animation with at least 2 forces using matrix algebra (2p)
Hierarchical object transformation (2p)
At least 2 levels with 3 objects Using the aggregation and transformation matrices
Data driven animations, recommended using key-frames (3p)
Key-frame sequence represented by code structure of transformation matrix
Interpolation using curves or quaternions and spherical linear interpolation
98
Diffuse scene lighting with materials (2p) Changeable color of light (1b) Correct Phong lighting with multiple light sources (2p)
Correct depth-based attenuation At least 3 material and light components Correctly combine material and light components
Correct shadows or reflections using any approach you can think of (2p)
1xA4 description of the project manual + runnable package (1b) 2xA4 screens from the projects + game video (2b) Critical evaluation and update of the specification (4b)
99
https://tinyurl.com/y3jdfms4
https://tinyurl.com/y6244wyn
100
101
102