3. Cíle cvičení z IZG
Prakticky si vyzkoušet a ověřit znalosti získané na
přednáškách.
Teorie (přednášky = jak to funguje)
X
Praxe (cvičení = jak se to dělá)
Získání příslušného počtu bodů je vedlejším produktem
poctivého vypracování úkolů.
Základy počítačové grafiky / Cvičení / Úvod do cvičení 3
4. Organizace cvičení
• 6 témat po dvou týdnech + úvodní cvičení = 13 týdnů.
• Z každého tématu je úkol za 0 – 5 bodů.
• Jedno téma má na starosti vždy jeden cvičící, který vše
připravuje a opravuje úkoly.
• Různá témata mohou mít různí cvičící.
• Průběh každého tématu:
– První týden - výklad a společná práce v učebně.
– Druhý týden - konzultace a samostatná práce na úkolu.
Základy počítačové grafiky / Cvičení / Úvod do cvičení 4
5. Osnova cvičení
Osnova cvičení:
– Úvodní cvičení, 1 týden, bez úkolu
– Formáty, redukce barev, 2-3 týden, úkol za 0 – 5b
– Rasterizace, 4-5 týden, úkol za 0 – 5b
– 2D křivky, 8-9 týden, úkol za 0 – 5b
– Vyplňování 2D oblastí, 6-7 týden, úkol za 0 – 5b
– 3D transformace, 10-11 týden, úkol za 0 – 5b
– Základy OpenGL, 12-13 týden, úkol za 0 – 5b
Základy počítačové grafiky / Cvičení / Úvod do cvičení 5
6. Úkoly ze cvičení
• Odevzdání úkolu vždy nejpozději do půlnoci neděle
druhého týdne tématu, před začátkem dalšího tématu.
• Odevzdává se pouze soubor „student.cpp“, kam jedině se
do připravených funkcí doplňuje vlastní kód.
• Odevzdání prostřednictvím IS FIT (jak je, bez komprese).
• Pozdní odevzdání = 0 bodů.
• Kopírování cizích řešení (testuje se) – zrušení zápočtu.
• Správnost řešení (testuje se) = 0 – 5 bodů.
• Kompilace a kontrola úkolů bude prováděna
prostřednictvím školní instalace MinGW.
Základy počítačové grafiky / Cvičení / Úvod do cvičení 6
7. Kompilace a editace programů
• Možnost použít kompilátor GCC/MinGW (Q:mingwMinGWbin)
nebo MS VC++
• Použita knihovna GLUT nainstalováva v OS, nebo soubory
knihovny ke stažení na www stránkách IZG
• Pro překlad použito programu „Make“ podle připraveného
souboru „makefile“ nebo přiložený projekt pro MS VC++
• Editace kódu v libovolném editoru nebo integrovaném prostředí
(pspad, vim, emacs, DevC++, MinGW Dev. studio, MSVC, …)
• Programy připravené pro jednotlivá cvičení stáhnout z www
stránek IZG (izg_lab_0X.zip, main.cpp, main.h, student.cpp...).
• Překlad programů příkazem „make“, v příkazové řádce nebo v
MS VC++.
Základy počítačové grafiky / Cvičení / Úvod do cvičení 7
8. Framework
• Implementace v C++ (C rozšířené o prvky C++).
• Použití GLUT, nadstavba OpenGL pro snadné, rychlé a
multi-platformní aplikace s podporou OpenGL.
• Stavové globální proměnné.
• Štábní kultura kódu, komentáře, popisy.
• Přehled funkcí programu:
– Inicializace GLUT a OpenGL (RGBA, DoubleBuffering).
– Registrace funkcí pro: požadavek na vykreslení, změna velikosti
okna, stisknutí klávesnice, stisknutí tlačítka myši, pohyb myši.
• Implementace připravených funkcí (úkol) pouze v
odevzdávaném souboru „student.cpp“.
Základy počítačové grafiky / Cvičení / Úvod do cvičení 8
9. Framebuffer
• Kreslení probíhá do vlastního paměťového „framebufferu“.
• Důvodem je názornost funkce a implementace základních
grafických aplikací, prakticky však nevhodné.
• Lineární paměťové pole RGBA složek 32 bit barvy,
chápáno jak 2D matice o rozměrech okna.
• Typ pole - struktura S_RGBA (red, green, blue, alpha), .
• GLUT (OpenGL) pouze zajišťuje vykreslení framebufferu
na obrazovku.
• Všechny grafické operace ve cvičeních a úkolech (kromě
posledního) budou postaveny na přímém zápisu S_RGBA
barev do paměti framebufferu.
Základy počítačové grafiky / Cvičení / Úvod do cvičení 9
10. Vykreslení pixelu
• Vstup:
– Souřadnice pixelu + S_RGBA barvy
– Rozměry framebufferu
– Ukazatel na začátek framebufferu
• Postup:
– Test daných souřadnic vůči
rozměrům framebufferu
– Výpočet ukazatele (offsetu) pixelu ze
souřadnic do paměťového pole
– Zápis RGBA barvy pixelů do paměti
framebufferu, inkrementace
ukazatele
• Pomocné vzorce:
frame _buffer[ frame _ w ⋅ y + x ]= color (red, green, blue, alpha)
*( frame _buffer + frame _ w ⋅ y + x)= color (red, green, blue, alpha)
Základy počítačové grafiky / Cvičení / Úvod do cvičení 10
11. Vykreslení obdélníka
• Vstup:
– Souřadnice dvou protilehlých rohů
obdélníku + S_RGBA barvy.
– Rozměry framebufferu.
– Ukazatel na začátek framebufferu.
• Postup:
– Test daných souřadnic vůči
rozměrům framebufferu
– Vhodné převrácení daných
souřadnic do vhodné orientace.
– Cyklus řádků obdélníka:
• Výpočet ukazatele (offsetu) prvního
byte aktuálního řádku.
• Zápis pixelů aktuálního řádku do
framebufferu s inkrementací ukazatele.
Základy počítačové grafiky / Cvičení / Úvod do cvičení 11