Cílem je navrhnout algoritmus ovládání "avatara" pro interaktivní průlet 3D scénou - za použití myši a klávesnice.
Základem poslouží projekt 056avatar z repository grcis. Je připravena aplikace, která umí 3D scénu načíst ze souboru (Wavefront OBJ) nebo ji vygenerovat algoritmem (zde se může uplatnit Váš kód z úlohy 057). Scéna se poté zobrazí v OpenGL okně a vaším úkolem bude naprogramovat interakci uživatele tak, aby si mohl objekt (scénu) pohodlně prohlížet. Je možné okopírovat si do prostoru více instancí scény, aby bylo procházení zajímavější ("instancing").
Náměty: vždycky je příjemná trochu "fyzikálně věrná" simulace, tj. například pozvolné zastavování a rozjíždění avatara, setrvačnost v translačním i otáčecím smyslu...
Technicky: pro každý snímek (jedno zobrazení scény) budete počítat transformační matici GL_MODELVIEW, nastavuje se uvnitř metody SetCamera(). Můžete použít funkci LookAt() nebo jakoukoli jinou vhodnou knihovní funkci. Uživatelské interakce (a jiné potenciálně modifikovatelné funkce) budou zejména:
Pozor: aplikace 056avatar používá tzv. VBO (Vertex Buffer Objects), tedy nemusí s OBJ scénami fungovat na hodně starých GPU (staré notebooky). V takovém případě se vám nakreslí pouze jeden žlutý trojúhelník.
Poznámka: je nutné, abyste v komentářích programu nebo ve zdrojáku podrobně vysvětlili, jak se má kamera (avatar) ovládat. Bez popisu ovládání nebudu řešení úlohy akceptovat..
TERMÍN: do 1. 1. 2013
BODY: 8 až 16 bodů (více bodů za pohodlnější a intuitivnější ovládání, samozřejmě funkční)
PROJEKT: 056avatar
ZDROJOVÝ SOUBOR: Avatar.cs
Copyright (C) 2010-2012 J.Pelikán,
last change: $Date: 2014-10-03 15:44:39 +0200 (Fri, 03 Oct 2014) $
Send comments/requests to
pepca.at.cgg.mff.cuni.cz