QuestionCopyright.org

Cvičenie 06

Na tomto cvičení sa budeme hrať s textúrami a pohybom v skoro 3D svete (niekde to volajú aj 2.5D). Textúry si môžete stiahnuť tu.

Domáce úlohy je možné odovzdať do konca semestra, teda do polnoci pred začiatkom skúškového obdobia.

Zadania

CV06_01 (1 bod)
Zadanie Vytvorte rotujúcu pyramídu, ktorej steny budu otexturované textúrou stena.jpg a podstava textúrou podstava.jpg.
EXE http://mirror.bwpow.eu/pub/upjs/ugr1/cv06/cv06_01.exe
Vzor Priklad 1
Komentár Budete potrebovať využiť funkcie UGLI ugli_texture_filters a ugli_texture a funkcie OpenGL glBindTexture, glTexCoord2f a glEnable(GL_TEXTURE_2D). Inšpiráciu môžete získať na podstránke Informácie ku cvičeniam 5 a 6.
CV06_02 (2 body)
Zadanie Vytvorte mapu podobnú ako v príklade s možnosťou sa po nej voľne prechádzať. Podlaha aj pyramídy majú byť texturované. Použite aj hmlu typu GL_LINEAR so začiatkom vo vzdialenosti 5 a konci vo vzdialenosti 25. Jej farba nech je [0.5, 0.5, 0.5].
EXE http://mirror.bwpow.eu/pub/upjs/ugr1/cv06/cv06_02.exe
Vzor Priklad 2
Komentár Budete potrebovať využiť funkcie OpenGL glClearColor, glFog* a glEnable(GL_FOG). Inšpiráciu môžete získať na podstránke Informácie ku cvičeniam 5 a 6. Mapa v príklade bola vytvorená pomocou tohto algoritmu. Spôsob načítavania kláves nájdete v manuáli.
CV06_03 (2 body)
Zadanie Vytvorte mapu podobnú ako v príklade s možnosťou sa po nej voľne prechádzať. Podlaha aj pyramídy majú byť texturované. Použite aj hmlu typu GL_LINEAR so začiatkom vo vzdialenosti 5 a konci vo vzdialenosti 25. Jej farba nech je [0.3, 0.3, 0.4]. Po stenách pyramíd by mala "tiecť" druhá textúra voda.jpg a tá istá textúra ma "tiecť" nejakým smerom aj po podlahe.
EXE http://mirror.bwpow.eu/pub/upjs/ugr1/cv06/cv06_03.exe
Vzor Priklad 3
Komentár Budete potrebovať využiť funkcie OpenGL glActiveTextureARB a glMultiTexCoord2fARB. Inšpiráciu môžete získať na podstránke Informácie ku cvičeniam 5 a 6. Mapa v príklade bola vytvorená pomocou tohto algoritmu. Spôsob načítavania kláves nájdete v manuáli.
CV06_E01
Zadanie Zadanie je podobné, ako v CV06_02, len bez hmly. Navyše treba celý svet uzavrieť do kocky, ktorej steny budú potiahnuté textúrami back.jpg, bottom.jpg, front.jpg, left.jpg, right.jpg, top.jpg. Pre tieto textúry treba nastaviť GL_TEXTURE_WRAP_S a GL_TEXTURE_WRAP_T na GL_CLAMP_TO_EDGE, aby nevznikali artefakty na okrajoch.
EXE http://mirror.bwpow.eu/pub/upjs/ugr1/cv06/cv06_e01.exe
Vzor Priklad E01
Komentár Skúste príklad urobiť bez toho, aby ste zavolali ugli_perspective, resp. aby ste menili near a far hodnoty perspektívy.
CV06_E02
Zadanie Vytvorte jednoduchý klon Wolfenstein3D. Chodby majú byť len pravouhlé a každé políčko má byť bud plná stena, alebo chodba. Implementujte aj kolíziu so stenami, aby sa cez ne nedalo prechádzať. Mapu buď načítajte zo súboru mapa.txt, alebo ju vložte priamo do programu.
EXE http://mirror.bwpow.eu/pub/upjs/ugr1/cv06/cv06_e02.exe
Vzor Priklad E02
Komentár Môžete spraviť aj mapu, ktorá má byť zobrazená len pri stlačení tlačidla m. Skúste pogoogliť gluOrtho2D.