Repetition + lite av varje Ulf Assarsson Department of Computer Engineering Chalmers University of Technology
Tävlingen Tävling: 22:a maj 15:00-17:00 i sal EA Anmäl ert lag om ni vill vara med. Skicka ett mail med namnen på personerna i laget samt vilken kategori. Visa snabbt upp ert bidrag, senast måndag Det kommer finnas en PC med GeForce 7800 Man kan ta med sin egen dator om man vill, vilket brukar rekommenderas
Lite om projektet Sista dag att redovisa: 1 juni (fredag) Mot dispans kan några få grupper få redovisa veckan efteråt. Onsd 23/5, 12-17 Månd 28/5, 12-18 Tisd 29/5, 12-18 Tors 31/5, 12-18
Vad ingår i kursen? Se läsanvisningar webben Föreläsningsanteckningar Extra material: Efficiency issues in ray tracing förtydligande Jim Kajiya's "Rendering Equation" papper Ray tracing med grafikhårdvara. Läs översiktligt. Plus två extra förtydligande papper Triangle-box test exempel med SAT. Occlusion horizons extra förtydligande Ulf Assarsson 2007
Lektion 1 The pipeline
Lecture 1: Real-time Rendering The Graphics Rendering Pipeline Chapter 2 in the book The pipeline is the engine that creates images from 3D scenes Three conceptual stages of the pipeline: Application (executed on the CPU) Geometry Rasterizer Application Geometry Rasterizer Image input 3D scene output
GEOMETRY Summary Application Geometry Rasterizer model space world space world space camera space compute lighting projection image space clip map to screen
Model to World Matrix Model space Word space camera World to View Matrix ModelViewMtx = Model to View Matrix Demo View space
Lektion 2: Transformer Homogen notation Vad ger det för fördelar? Vad kan man representera? Vad kan man inte representera? Använd matriser på papper Känna igen matriser Quaternioner Veta vad dom är bra till. Ej kunna alla matteregler Projektioner viktigt
Lektion 2: Homogeneous notation A point: Translation becomes: A vector (direction): Translation of vector: Also allows for projections (later) 1 1 ) ( 1 0 0 0 1 0 0 0 1 0 0 0 1 z z y y x x z y x z y x t p t p t p p p p t t t t T T z y x p p p 1 p T z y x d d d 0 d Td d
Lektion 2: Lighting i=iamb+idiff+ispec+iemission + + = This is just a hack! Has little to do with how reality works!
Lektion 3: Sampling, filtrering, och AA Why care? When does it occur? In pixels, time, texture, etc Nyquist Filters Supersampling schemes Jittered sampling Adaptive sampling in ray tracing
Filtering FILTERING: For magnification: Nearest or Linear (box vs Tent filter) For minification: Bilinear using mipmapping Trilinear using mipmapping Anisotropic some mipmap lookups along line Ulf of Assarsson anisotropy 2004
Interpolation Magnification Minification
Bilinear filtering using Mipmapping
Anisotropic texture filtering Wish list: Up to 16 samples/pixel Up to 128 pixels/cycle 1 sample = 32 bytes 128 proc * 500MHz * 32 bytes = 2048 GB/s per texture We only have 86Gb/s
Lektion 3: Texturing Magnification Minification Environment mapping (sphere, cube) Bumpmapping
Environment mapping Assumes the environment is infinitely far away Sphere mapping treated in other course Or see book. [Note: available on old computers ] Cube mapping is the norm nowadays Advantages: no singularities as in sphere map Much less distortion Gives better result Not dependent on a view position Modified by Ulf Assarsson 2004
Cube mapping eye n y z x Simple math: compute reflection vector, r Largest abs-value of component, determines which cube face. Example: r=(5,-1,2) gives POS_X face Divide r by 5 gives (u,v)=(-1/5,2/5) If your hardware has this feature, then it does all the work
Bump mapping by Blinn in 1978 Inexpensive way of simulating wrinkles and bumps on geometry Too expensive to model these geometrically Instead let a texture modify the normal at each pixel, and then use this normal to compute lighting geometry + = Bump map Bump mapped geometry Stores heights: can derive normals
Lektion 4: OpenGL Uses OpenGL (or DirectX) Kommer ej fråga vad olika anrop gör, eller be er använda dom. Dock måste man veta hur (i princip) man skickar en triangel till OpenGL, och vad OpenGL har för funktionalitet. T ex hur gör man Genomskinlighet Dimma (start, stop, linear/exp/exp-squared) Specificerar material
Lekt 5: Intersektionsberäkningar 4 tekniker: Analytiskt Geometriskt SAT Test: 1. axes ortho to side of A, 2. axes ortho to side of B 3. crossprod of edges Dynamiska tester Skall kunna använda dessa Tex, given stråle och triangel på en viss form, härled en algoritm som beräknar om strålen träffar triangeln Kunna planets ekvation, strålens ekvation, sfär, cylinder
Lektion 6: Spatial Data Structures and Speed-Up Techniques Speed-up tekniker Olika sorters culling Backface View frustum (hierarkisk) Portal Occlusion Horizons Detalj Level-of-detail När kan man använda dessa? Hur används spatial data strukturer?
Lektion 6: Spatiala datastrukturer Viktigt! Vilka finns? Vad är dom bra till? Vilka är dom vanligaste? Hur använder man dom? Skapar hierarkier Använder hierarkier (Allmänt om träd)
Lektion 7-9: Ray tracing shade() and trace() ramverket Vad beräknas var? Rekursion hur stoppa? Transmission Uppsnabbningsmetoder Spatiala datastrukturer Optimeringar för BVHs Shadow cache Eye rays speedups Material (metall, Fresnel, dielektriska) CSG Ray tracing på grafikkort
Lektion 10: Kollisionsdetektering 3 typer av algoritmer: Med strålar När är detta ok? Hur implemetera? Med BVH Pseudokod enkel att härleda För massor med objekt. Varför? Sweep-and-prune
Lektion 10: Skuggor + Reflektioner Varför skuggor? Olika sorters ljuskällor Olika sätta att tänka på skuggor Detta ger upphov till olika algoritmer Shadow mapping Kunna beskriva algoritmen Shadow volumes Kunna beskriva algoritmen Stencil bufferten, 4-pass algoritm, Z-pass, Z-fail, Att man skapar quads från silhouettekanterna sett från ljuskällan, etc Fördelar/nackdelar shadow volumes vs shadow maps Plana reflektioner hur gör man. Varför använder man inte environment mapping?
Lektion 11 Global Illumination Global belysning: Varför räcker ej ray tracing? Light transport notation, rendering eq., BRDFs, Monte Carlo Path tracing Photon mapping L o L e f r ( x,, ') L ( x, ')( ' n) d' i Ray tracing Global Illumination
Lektion 12: Perspektivkorrekt texturering hur man gör. Hårdvaruprinciper: Sort first sort middle sort last fragment sort last image Bandwidth Varför problem Hur löser man dem Vad som principiellt skiljer KYRO från standardarkitektur Ex: Tile based rendering, hela scenen i local memory Kunna skissa arkitekturen hos ett modernt grafikkort
Department of Computer Engineering Application PCI-E x16 Vertex shader Vertex shader Vertex shader Geo shader Primitive assembly Geo shader Clipping Fragment Generation Geo shader On NVIDIA 8000-series: Vertex-, Geometry- and Fragment shaders allocated from a pool of 128 processors Fragment shader Fragment shader Fragment shader Fragment Merge Fragment Merge Fragment Merge
This is the last lecture v8: onsd 30/5 - tentamen -em VV-salar onsd 13/6 - granskning tentamen, sal EE, kl 12.00 Don t forget to show your project in time! Ulf Assarsson 2007