Vježbe 6
Perspektivna projekcija - Poligonski modeli ploha -
Selektivno odbacivanje (culling)
Primjer 1: Postavljanje koordinatnog sustava kamere, primjena perspektivne
projekcije i stoga (
stack) matrica transformacija na primjeru rješenje
modificiranog zadatka 4.4 uz pomoć OpenGL rutina -
GL-F.c
Modificirani zadatak 4.4.: Mrežom ravnih linija vizualizirajte
xz-ravninu,
a na nju postavite stilizirano slovo F sačinjeno od devet kocaka. "Krakovi" slova
F rotiraju oko vertikalne baze različitim brzinama, a kocke na krajevima vrte se
duž osi krakova. Mijenjajte visinu na kojoj se nalazi kamera.
Primjer 2: Crtanja poligona i važnost konzistentne orijentacije poligona
kako bi se moglo provesti selektivno odbacivanje (
culling), te primjer
korištenja spremnika dubine -
polikocka.c
U demo programu polikocka.c mogu se odgovarajućim slovima interaktivno
uključivati/isključivati opcije:
- 'C' - uključuje selektivno odbacivanje
- 'c' - isključuje selektivno odbacivanje
- 'B' - odbacuju se poligoni kojima gledamo stražnju stranu
- 'b' - odbacuju se poligoni kojima gledamo prednju stranu
- 'D' - uključuje provjeru dubine
- 'd' - isključuje provjeru dubine
- 's' - postavlja opciju glatkog sjenčanja
- 'f' - postavlja opciju ravnomjernog sjenčanja.
U momentu kad je kocka najbliže kameri, najbliži kut ulazi u ravninu projekcije
i biva odrezan, jer je ravnina projekcije ujedno bliža odrezujuća ploha
(
clipping plane). To nam omogućava da na trenutak "zavirimo" u kocku i
vidimo da li se stražnje plohe kocke iscrtavaju.
6.1. Uz pomoć trokuta (TRIANGLES) i četverokuta (QUADS) konstruirajte modele,
te animirajte rotaciju slijedećih geometrijskih tijela:
- stožca
- valjka
- kugle.
Da bi pojedini poligoni bili uočljivi, koristite se različitim bojama. Pazite
na orijentaciju poligona, kako bi metodom selektivnog odbacivanja
mogli biti odbačeni poligoni nevidljivi za promatrača.
6.2. Korištenjem poligonalnih modela geometrijskih tijela iz zadatka 6.1.
konstruirajte i animirajte model vjetrometra
(
vidi sliku).
Za postizanje realističnosti koristite se perspektivnom projekcijom i
spremnikom dubine (
depth buffer).