Nepovinné úkoly na procvičování po 3. cvičení Úkoly jsou pouze pro procvičení látky, není to písemka, nebudou kontrolovány. Případné dotazy směřujte na diskuzní fórum nebo pošlete e-mail cvičícím. Poznámka: V jednotlivých sekcích jsou úkoly odstupňovány podle náročnosti. Procvičování shaderů Úkol 1: Vytvořte headlight. Headlight je světlo, které svítí z pozice pozorovatele, a ať se pozorovatel hýbe jakkoliv, světlo se hýbe s ním. Úkol 2: Vytvořte bodové světlo s útlumem, nezapomeňte, že útlum nemusí být jen kvadratický, jako ve skutečném světě, ale i třeba jen lineární. Budete potřebovat vzdálenost pixelu od světla, ale pozici světla i pozici pixelu jsme už používali. Úkol 3: Implementujte mlhu. Budete potřebovat vzdálenost pixelu od pozice pozorovatele, ale opět i pozici pozorovatele i pozici pixelu jsme už používali. Nápověda: Nezapomeňte, že barva mlhy by měla být tou barvou, kterou mažete color buffer (funkce glClearColor). Úkol 4: Vytvořte kuželové světlo podle slajdů. Nezapomeňte, že směr kuželového světla je také nutné transformovat. Procvičování souřadnicových systémů Úkol 5: Upravte osvětlení, aby se počítalo v souřadnicovém prostoru kamery neboli všechny objekty, normály, pozice světel atd. násobte kromě model matice i view maticí. Úkol 6: V souřadnicovém systému kamery má pozice pozorovatele souřadnici (0,0,0), čehož lze využít: - Upravte výpočet osvětlení, aby používal souřadnici (0,0,0) na místo pozice pozorovatele. - Upravte výpočty mlhy a headlightu (pokud jste si je naimplementovali), aby používali pozici (0,0,0) místo pozice pozorovatele. Nápověda: Např. je možné pohybovat s kamerou po kružnici okolo scény. Procvičování matematiky Úkol 7: Pouze na základě znalosti pozice pozorovatele v souřadnicovém systému kamery Pv a znalosti obecné view matice V odvoďte pozici pozorovatele v souřadnicovém systému světa Pw . Vzorové řešení vybraných příkladů Úkol 7: Pouze na základě znalosti pozice pozorovatele v souřadnicovém systému kamery Pv a znalosti obecné view matice V odvoďte pozici pozorovatele v souřadnicovém systému světa Pw . Řešení: Pv=V * Pw  ⇒ Pw=V −1 * Pv