Preparation for Lesson 5 Lesson 5 is focused on the screen-space ambient occlusion and the depth of field, which are two techniques that usilize the data from the G-buffer. For smooth lesson, review: • Review the Gaussian filter for bluring images. Go through shaders blurssao-texture-fragment.glsl and dof-fragment.glsl, which include an implementation of the filter. (Yes, you won't implement it :-), but at least see how to implement it.) • Think about how a coordinate of a vertex in the view space (= camera space) relates to the distance of this vertex from the camera. Go through project 5 in the study materials. Focus on: • The code is derived from the 4. project, again we have a random scene and the deferred shading. You should understand everything except the code for 5. lesson. It usually contains 'SSAO' or 'DoF'. Project 5 also includes the following stuff, which has not been tought yet and which will be discussed at the lecture: • Function textureLod for sampling a texture (some of you may remember this function). • Function textureSize. • Variable gLFragCoord. Příprava na 5. cvičení Na pátém cvičení budeme probírat screen-space ambient occlusion a depth of field, což jsou dvě techniky, které využívají G-bufferu z deferred shadingu. Pro hladký průběh cvičení si zopakujte a připravte: • Zopakujte si gaussův filtr pro rozmazání obrázku. Projděte si shadery blur_ssao_textureJragment.glsl a dof.fragment.glsl, které obsahují implementaci gaussova filtru. (Ano, psát ho nakonec nebudete :-), ale alespoň se podívejte na to, jak ho lze napsat.) • Popřemýšlejte, jak souvisí souřadnice vrcholu vyjádřená v souřadnicovém systému kamery (view space) se vzdáleností tohoto vrcholu od kamery. Projděte si projekt Cv5 ve studijních materiálech. Zaměřte se zejména na: • Kód vychází ze 4. cvičení, opět máme náhodnou scénu, opět máme deferred shading. Většinu byste měli pochopit, vyjma kódu připraveného pro 5. cvičení. Ten poznáte tak, že má v sobě zkratku SSAO nebo DoF. 1 Ve Cv5 jsou navíc tyto věci, které ještě nebyly probrány a které budou probrány na přednášce: • Funkce textureLod pro vzorkování textur (někteří z vás si ale na ni možná vzpomenou). • Funkce textureSize. • Proměnná gLFragCoord. 2