Professional Documents
Culture Documents
Računalna Grafika
Računalna Grafika
Raunalna grafika
Grafiki cjevovod
Osnovni algoritmi rasterske grafike
Raunalna grafika
Grafiki sustav
Predavanje 3
Raunalna grafika
2014/2015
Predavanje 3
Raunalna grafika
2014/2015
Predavanje 3
Raunalna grafika
2014/2015
Predavanje 3
Raunalna grafika
2014/2015
Predavanje 3
Raunalna grafika
2014/2015
Predavanje 3
a) Prikazno sklopovlje
s prikaznim
procesorom i
meuspremnikom
okvira;
b) Bez prikaznog
procesora,
meuspremnik okvira
je dio memorije
8
Raunalna grafika
Predavanje 3
Raunalna grafika
2014/2015
Predavanje 3
10
Raunalna grafika
2014/2015
Predavanje 3
11
Raunalna grafika
Predavanje 3
12
Raunalna grafika
2014/2015
Predavanje 3
13
Raunalna grafika
2014/2015
Predavanje 3
14
Raunalna grafika
2014/2015
Predavanje 3
15
Raunalna grafika
2014/2015
Predavanje 3
16
Raunalna grafika
2014/2015
Predavanje 3
17
Raunalna grafika
2014/2015
Predavanje 3
18
Raunalna grafika
2014/2015
Predavanje 3
19
Raunalna grafika
2014/2015
Predavanje 3
20
Raunalna grafika
2014/2015
Predavanje 3
21
Raunalna grafika
Predavanje 3
23
Raunalna grafika
2014/2015
Predavanje 3
24
Raunalna grafika
2014/2015
Predavanje 3
25
Raunalna grafika
2014/2015
Predavanje 3
26
Raunalna grafika
2014/2015
Predavanje 3
27
Raunalna grafika
GPU cjevovod
Program/
API
Driver
CPU
Bus
GPU
GPU Front End
Geometrijska
faza
Sakupljanje
primitiva
Rasterizacija &
Interpolacija
Obrada
fragmenata
Rasterske
operacije
Meuspremnik
okvira
2014/2015
Predavanje 3
28
Program/
API
Raunalna grafika
GPU cjevovod
Program
Napisani program
API
Suelje za OpenGL ili DirectX
2014/2015
Predavanje 3
29
Raunalna grafika
GPU cjevovod
GPU Front End
Prima naredbe i podatke od drivera
2014/2015
Predavanje 3
30
Geometrijska
faza
Raunalna grafika
vrhovi
POSITION,
NORMAL,
BINORMAL*,
TANGENT*,
TEXCOORD[0-7],
COLOR[0-1],
PSIZE
POSITION
PSIZE
Vertex
Processor
shader
FOG
TEXCOORD[0-7]
COLOR[0-1]
Podaci za interpolaciju
teksture
2014/2015
Predavanje 3
31
Rasterske
operacije
Raunalna grafika
GPU cjevovod
Ispitivanje dubine
Provjeri meuspremnik okvira: postoje li ve manje
dubine (Z-Buffer)
Ograniena programabilnost
Mijeanje (Blending)
Koristi alfa kanal za kombiniranje boja koje se ve
nalaze u meuspremniku okvira
Ograniena programabilnost
2014/2015
Predavanje 3
32
Raunalna grafika
Primjer
Program/
API
Dio koda
Driver
.
Bus
Geometrijska
faza
glBegin(GL_TRIANGLES);
glTexCoord2f(1,0); glVertex3f(0,1,0);
glTexCoord2f(0,1); glVertex3f(-1,-1,0);
glTexCoord2f(0,0); glVertex3f(1,-1,0);
glEnd();
Sakupljanje
primitiva
Rasterizacija &
Interpolacija
2014/2015
Obrada
fragmenata
Rasterske
operacije
Predavanje 3
Meuspremnik
okvira*
33
Raunalna grafika
Primjer
Program/
API
Driver
GPU
Bus
01001001100.
Geometrijska
faza
Sakupljanje
primitiva
Rasterizacija &
Interpolacija
2014/2015
Obrada
fragmenata
Rasterske
operacije
Predavanje 3
Meuspremnik
okvira*
34
Raunalna grafika
Primjer
Program/
API
Driver
Bus
Geometrijska
faza
Volumen pogleda
Sakupljanje
primitiva
Rasterizacija &
Interpolacija
2014/2015
Obrada
fragmenata
Rasterske
operacije
Predavanje 3
Meuspremnik
okvira*
35
Raunalna grafika
Primjer
Program/
API
Driver
Bus
Geometrijska
faza
Prostor zaslona
Sakupljanje
primitiva
Rasterizacija &
Interpolacija
2014/2015
Obrada
fragmenata
Rasterske
operacije
Predavanje 3
Meuspremnik
okvira*
36
Raunalna grafika
Primjer
Program/
API
Driver
Bus
Geometrijska
faza
Meuspremnik okvira
Sakupljanje
primitiva
Rasterization &
Interpolation
2014/2015
Obrada
fragmenata
Rasterske
operacije
Predavanje 3
Meuspremnik
okvira*
37
Raunalna grafika
Primjer
Program/
API
Driver
Bus
Geometrijska
faza
Meuspremnik okvira
Sakupljanje
primitiva
Rasterization &
Interpolation
2014/2015
Obrada
fragmenata
Rasterske
operacije
Predavanje 3
Meuspremnik
okvira*
38
Raunalna grafika
2014/2015
Predavanje 3
39
Raunalna grafika
Rasterski prikaz
Osnovni problem:
2014/2015
Predavanje 3
40
Raunalna grafika
2014/2015
Predavanje 3
41
Raunalna grafika
najjednostavniji pristup
2014/2015
Predavanje 3
42
Raunalna grafika
Algoritam:
1. proraun nagiba pravca (|m| < 1)
Predavanje 3
43
Raunalna grafika
2014/2015
Predavanje 3
44
Raunalna grafika
2014/2015
Predavanje 3
45
Raunalna grafika
yi 1 mxi 1 B m( xi x) B yi m x
x 1
y i 1 y i m
Predavanje 3
46
Raunalna grafika
2014/2015
Predavanje 3
47
Raunalna grafika
double dy = y1 y0;
double dx = x1 x0;
double m = dy / dx;
double y = y0;
for (x = x0; x <= x1; x++) {
WritePixel (x, Round (y), value);
y += m;
}
/* Crta */
2014/2015
Predavanje 3
48
Raunalna grafika
Round(y)
2.0
2.0
3.0
2.8
4.0
3.6
5.0
4.4
6.0
5.2
7.0
6.0
2014/2015
Predavanje 3
49
Raunalna grafika
Predavanje 3
50
Raunalna grafika
Predavanje 3
51
Raunalna grafika
axi byi c 0
axi byi c 0
axi byi c 0
xi , yi
xi , yi
xi , yi
Na pravcu
Iznad pravca
Ispod pravca
a
x
b
y
i
c
Ispitaj vrijednost od:
i
i
2014/2015
Predavanje 3
52
Raunalna grafika
void SredCrta(int x0, int y0, int x1, int y1, int value)
{
int dx = x1 x0;
int dy = y1 y0;
int d = 2 * dy dx;/* poetna vrijednost za d */
int incrD = 2 * dy;/* poveanje za pomak u D */
int incrGD = 2 * (dy dx);/* poveanje za pomak u GD */
int x = x0;
int y = y0;
2014/2015
Predavanje 3
53
Raunalna grafika
x++;
y++;
}
WritePixel (x, y, value);/* Izabrani piksel najblii liniji */
} /* while */
}/* SredCrta */
2014/2015
Predavanje 3
54
Raunalna grafika
2014/2015
Predavanje 3
55
Raunalna grafika
2014/2015
Predavanje 3
56
Raunalna grafika
2014/2015
Predavanje 3
57
Raunalna grafika
Drugi pristup:
2014/2015
Predavanje 3
rsin)
58
Raunalna grafika
2014/2015
Predavanje 3
59
Raunalna grafika
2014/2015
Predavanje 3
60
Raunalna grafika
2014/2015
Predavanje 3
61
Raunalna grafika
2
d i xi 1 yi r 2
2
r/ 2
Predavanje 3
62
Raunalna grafika
r/ 2
1
1
2
2
2
,
y
r
i
i
i 1
i
2
2
d i 2 xi 3
2014/2015
Predavanje 3
63
Raunalna grafika
r/ 2
3
3
2
2
xi 2, yi d i 1 xi 2 yi r
2
2
d i 2 xi 2 yi 5
2014/2015
Predavanje 3
64
Raunalna grafika
1
1 2
2
1, r d 0 1 r r r
2
4
5
r
4
2014/2015
Predavanje 3
65
Raunalna grafika
Predavanje 3
69