QuestionCopyright.org

ÚINF/SPG1/05 - Seminár z počítačovej grafiky

Cieľ predmetu: Formou seminárnych prác priblížiť súčasné techniky programovania v prostredí OpenGL (informačný list).

Na tomto seminári by sme sa mali spoločne prepracovať od základnej práce s 3D grafikou, ktorá bola obsahom predmetu UGR1, k zložitejším technikám využívaným v dnešenej počítačovej grafike. Okrem samotnej technickej stránky jednotlivých postupov bude podstatné aj na "vlastné oči" uviditeť ich prejavy. To sa v minulosti ukázalo ako nerelálne pri využití "nahého" OpenGL, keďže často ide o programátorsky netriviálne algoritmy. Preto som sa tento rok rozhodol využiť dva ťažkotonážne 3D enginy, ktoré urobia otrockú prácu za nás. Pôjde o Ogre3D a NeoAxis.

Ogre3D je dnes asi najpopulárnejší open-source 3D engine s veľkou komunitou a podporou. Je napísaný v C++ a jeho sila tkvie hlavne v kvalitnom objektovom návrhu. Preto by s ním nemali mať problém ani ľudia odchovaní na Jave alebo iných OOP technológiách a na nich naviazaných návrhových vzoroch. S týmto enginom, konkrétne s verziou 1.8.1, budeme pracovať v prvej polovici semestra a až na jednu výnimku budeme využívať jeho vstavané vlastnosti.

V druhej polovici semestra sa posunieme ešte o stupienok vyššie v abstrakcii a siahneme po modernom "AAA" engine NeoAxis. Ten je pôvodne založený na Ogre3D, preto by sme nemali mať žiaden problém s prechodom, no prináša nám niekoľko veľmi užitocných nadstavieb. Je napísaný v C sharp a najmenší odpor kladie, ak sa s ním pracuje vo Visual C sharp od Microsoftu. Napriek tomu je plne kompatibilný s Mono-m a beží teda na Mac OS X a čoskoro bude asi aj na GNU/Linux, Androide a iOS. Niektori študenti s odporom k technológiám od firmy Microsoft môžu v tomto prípade namietať, no voľba práve tohto enginu mi vďaka jeho minulosti spojenej s Ogre3D a taktiež kvalitnému objektovému návrhu pripadala ako najlepšia vzhľadom na jeho možnosti a zameranie seminára.

Cieľom seminára by malo byť osvojenie si moderných princípov študentami prostredníctvom ich aktívneho zapojenia sa do vyučovacieho procesu. Každý zo študentov by si mal pripraviť vyčerpávajúcu prezentáciu ku jednej z tém a odprezentovať ju ostatným účastníkom seminára takým spôsobom, aby na konci semestra mali všetci dobrý prehľad o všetkých preberaných technológiách a ideálne ich aj vedieť využívať. Okrem toho by sa mala riešiť seminárna práca vo forme projektov (jednotlivo alebo v skupinách), ktoré budú mať formu hry alebo iného 3D softvéru. Úspešný absolvent seminára bude musieť prispieť aspoň do jedného projektu nezanedbateľným zdrojovým kódom.

Otázky a pripomienky zasielajte na email samuel.kupka@upjs.sk.

Súbory na stiahnutie

Obsah jednotlivých seminárov

Podmienky na udelenie hodnotenia