{{indexmenu_n>6000}} Tento předmět je vyučován na [[http://dcgi.felk.cvut.cz/|katedře počítačové grafiky a interakce]]. ====== Cvičení ====== - Úvod a přehled. Seznámení se zadáním projektů. - Optické klamy. - Konzultace k první úloze - vzorkování BRDF. - Samostatná práce, konzultace volitelně. - Povinná konzultace. Odevzdání zprávy č. 1 - vzorkování BRDF. - Konzultace k druhé úloze - vzorkování EM. - Povinná konzultace. Odevzdání zprávy č. 2 - vzorkování EM. - Konzultace k třetí úloze EM+BRDF - multiple importance sampling (MIS). - Povinná konzultace. Odevzdání zprávy č. 3 - MIS. - Samostatná práce a volitelně konzultace. - Povinná konzultace. Odevzdání zprávy č. 4 - Path tracing (sledování cest). - Samostatná práce. Pozdní odevzdání a konzultace. - Samostatná práce. Pozdní odevzdání a konzultace. - Rezerva. [[http://www.fel.cvut.cz/cz/education/harmonogram.html|harmonogram školního roku]] Materiál pro první cvičení:\\ 1) {{:courses:b4m39rso:tutorials:clanekbrdf.pdf | Článek of BRDF}}\\ 2) {{:courses:b4m39rso:tutorials:demorso.zip | Iniciální zdrojový kód C++}}\\ 3) Pomocný článek {{ :courses:b4m39rso:tutorials:lafortune94.pdf | PDF}} - myšlenka výběru difůzní a spekulární části je stejná, dále je stejné vzorkování difůzní části BRDF.\\ Materiál pro druhé cvičení:\\ 1) [[http://www.pauldebevec.com/Probes/ | EM Probes]] na stránce Paula Debeveca\\ 2) {{ :courses:b4m39rso:tutorials:em.zip | EM Probes}} v "HDR raw" formátu, to jest bez RLE comprese\\ 3) Text {{ :courses:b4m39rso:tutorials:infinitesample.pdf | PDF}} jak to je zařízeno v PBRT verze 1.0\\ 4) Zdrojový kód v C++ pro PBRT verze 1.0 {{ :courses:b4m39rso:tutorials:infinite.zip |ZIP}}\\ 5) Physically based rendering kniha, verze 3, kapitola 14.6.5 (kratší verze ve verzi knihy 2, kapitola 12.5)\\ HDR prohlížeč:\\ [[https://github.com/Tom94/tev | TEV VIEWER]]\\ [[https://sourceforge.net/projects/pfstools/files/pfstools_visual_studio_incomplete/|PFSVIEWER MS incomplete]]\\ [[https://sourceforge.net/projects/pfstools/files/pfstools/2.1.0/|PFSTOOLS/VIEWER MS CYGWIN]]\\ [[https://www.microsoft.com/en-us/p/hdr-wcg-image-viewer/9pgn3nwpbwl9?activetab=pivot:overviewtab|MS HDR Viewer]]\\ Linux: > apt-get pfstools pfsview nebo [[https://sourceforge.net/projects/pfstools/files/pfstools/2.1.0/|PFSTOOLS]]\\ Linux použití: > pview image.hdr \\ [[http://www.anyhere.com/gward/hdrenc/hdr_encodings.html|HDR Encodings web page]], [[https://www.flipcode.com/archives/HDR_Image_Reader.shtml|HDR Image Reader, Igo Gravtchenko 2002]], [[http://www.realtimerendering.com/resources/GraphicsGems/gemsii/RealPixels/|Originalni implementace HDR formatu, RealPixels, 1994]]. Materiál pro třetí cvičení (Multiple importance sampling):\\ [[https://agraphicsguy.wordpress.com/2015/08/11/monte-carlo-integral-with-multiple-importance-sampling/|Monte Carlo Integral with Multiple Importance Sampling]] \\ [[https://www.researchgate.net/publication/354065092_Multiple_Importance_Sampling_101|Multiple Importance Sampling]] {{ :courses:b4m39rso:tutorials:multiple_importance_sampling_101.pdf | PDF}}\\ PBRT kniha, třetí vydání, [[https://www.pbr-book.org/3ed-2018/Monte_Carlo_Integration/Importance_Sampling|PBRT BOOK, kapitola "Monte Carlo Integration, sekce 13.10"]] Materiál pro čtvrté cvičení (sledování cest, angl. path tracing):\\ [[https://cw.fel.cvut.cz/wiki/courses/b4m39rso/lectures/start|Přednáška RSO číslo 7 - sledování cest]]\\ [[https://www.scratchapixel.com/lessons/3d-basic-rendering/global-illumination-path-tracing|Scratch Pixels Lesson]]\\ Nejkratší path tracer na 99 řádek [[http://kevinbeason.com/smallpt/|Small Path Tracer]], [[https://github.com/matt77hias/smallpt| Another Source for Small Path Tracer]]\\ Pokročilý path tracer na 300 řádek [[https://github.com/hi2p-perim/minpt |Minimalistic Path Tracer]]\\ Implementace bude přidána do našeho zdrojového kódu pro osvětlení buď mapou okolí nebo 4 koulemi. Je nutné ale zcela přepracovat definici scény, např. jeden čtverec jako základnu, na základně v rovnostranném trojúhelníku tři koule a jednu kouli nahoře na třech koulích. Tedy koule jako vrcholy pravidelného čtyřstěnu. Tím bude prostor pro šíření světla mezi podložkou a koulemi a mezi koulemi vzájemně, koule musí být v rozumné vzdálenosti od sebe, ale neměly by se přímo dotýkat. Je možné použít i jinou vhodnou scénu pro malý počet objektů z důvodů rychlosti výpočtu bez datové struktury pro vrhání paprsku.