Zkouška 6.7.2016 Pelikán

Odeslat odpověď

Smajlíci
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode je zapnutý
[img] je zapnutý
[flash] je vypnutý
[url] je zapnuté
Smajlíci jsou zapnutí

Přehled tématu
   

Rozšířit náhled Přehled tématu: Zkouška 6.7.2016 Pelikán

Zkouška 6.7.2016 Pelikán

od Kalthar » 7. 6. 2016 16:32

1) Phongův model osvětlení (25b)
Vzorce a způsob jak přidat možnost průhledných materiálů (voda, sklo)

2) Základy algoritmu Ray-Tracingu (25b)
Stačí opravdu jen obecně nastínit algoritmus, ale chtěl podrobně popsat metodu shade()

3) Adaptivní jittering (25b)
Měli jsme navrhnout metodu, jak používat jittering adaptivně, aby bylo možné ho efektivně zjemňovat

4) Urychlení hledání průsečíků - Metoda pravidelné mřížky (ve 3D) (25b)
Deklarace v oblíbeném jazyce (C, C++, C#, Java) + algoritmus na hledání průsečíku

Řešení: Upřímně jsem většinu vařil z vody, takže moc neporadím. Každopádně i tak bylo možné většinu logicky vymyslet a byl i milý a snažil se pochopit mojí myšlenku.

Opravdu jistý si jsem akorát s 3).

Jittering funguje na principu rozdělení pixelu na části a náhodného výběru z každé části. Adaptivně stačí určit nějakou funkcí (předem danou), kterou část je potřeba zjemnit a tu následně rozdělit na podčásti. Výsledek by mohl vypadat třeba takto:

Kód: Vybrat vše

 _______
|   |_|_|
|___|_|_|
|   |   |
|___|___|
S tím, že všem naměřeným hodnotám v podbuňkách pravé horní buňky se přidá váha 1/4. Nechá se to také představit tak, že se spočítá průměr hodnot vpravo nahoře v podbuňkách a ten se použije jako honota větší pravé horní buňky, která se teprve poté počítá do průměrné hodnoty celého pixelu.


U 4) byl opravdu shovívavý. Nebyl jsem si jist, jak to myslí a namísto mřížky jsem napsal oktanový strom a hledání v něm. S drobnými nedostatky. Ale i tak za 20b.

Nahoru