Prof. Marc Levoy
Sampling theory, supersampling, stochastic sampling, adaptive sampling, antialiasing. Texture synthesis, transformation and resampling. Light transport and the rendering equation. Local shading models. Ray tracing for global illumination. Distribution ray tracing. Radiosity. Participating media, volume rendering.
Linjär algebra (vektoralgebra), kretsteori, C-programmering. Kunskaper om datastrukturer, C++, vågröra, elma, materialfysik och datorgrafik är inte i vägen men går att leva utan.
Välförberedda och innehållsrika. Gick igenom teorin för kursen.
Office hours i vanlig ordning. Jag besökte dem aldrig.
Två omgångar med fyra uppgifter var. Första omgången ganska standardbetonade kretsteoriuppgifter. Andra omgångens uppgifter var inte heller så svåra om man bara hade kunnat förstå vad de gick ut på. cirka 20% av betyget.
Ett programmeringsprojekt uppbrutet i tre delar. Det var tillåtet att jobba i grupper om en, två eller tre personer. För varje person utöver den första var man tvungen att implementera en extra "bell and whistle". Jag jobbade precis som i höstens datorgrafikprojekt tillsammans med Lisa Forssell, vilket även nu fungerade utmärkt. Målet med projektet var att skriva en raytracer och eftersom projektet gav 80% av betyget så blev det i praktiken målet med hela kursen (radiosity ska jag lära mig någon gång när jag har tid över och känner för det).
Till första delen av projektet fick vi ut en stomme som gav rutiner för att skapa användarinterface och läsa scener från programmet composer. Vår uppgift var sen att skriva kod för att finna skärningar mellan olika objekt och strålar, skicka strålar för varje pixel och med hjälp av rymduppdelning eller annan metod accelerera tiden för att finna en skärning mellan en stråle och de olika objekten i scenen. Andra delen gick ut på att införa adaptiv supersampling, såväl reguljär som stokastisk samt textures.
I sista delen infördes slutligen belysningsmodeller och rekursiv strålföljning så vi fick bilder som såg något ut för världen.
Samarbete enligt ovan, två fria late-days och därefter 5% avdrag per dag. Sendagarna behövdes dock aldrig (även om det såg lite oroligt ut med projekten ett par gånger).
Nej.
Nej.
Kursen dominerades av programmeringsprojektet, vilket också dominerade alla andra kurser. Jag skulle uppskatta att jag har lagt 200-250 timmar på det. Med andra ord en vansinnigt arbetskrävande kurs men också en av de roligaste kurser jag har gått. Utan konkurrens från andra hade kursen tillgång till ett grafiklabb med 10 Silicon Graphics. Nu var det iofs långt från tillräckligt helgerna innan respektive delprojekt skulle demonstreras. För att bereda fler plats infördes bokningslistor vid de tillfällena. Det var ganska intressanta regler. Dygnet var uppdelat i fyratimmarspass och varje grupp fick boka sig så mycket de ville. Dock aldrig två pass i rad. Det fungerade i praktiken bra men det blev lätt konflikt mellan intresse av att sova och att ha en bokad tid i labbet. En trevlig bieffekt av att kursen hade sitt eget lilla labb var att man fick chansen att lära känna andra kursdeltagare lite bättre, vilket annars inte är så lätt här. Ett annat stimulerande inslag var naturligtvis den extra moroten med en tävling, som gick av stapeln direkt efter demonstrationen av sista delprojektet, mellan de bilder man lyckats göra med sina program. Vi lyckades på något märkligt sätt ta hem tredjeplatsen.
Tråkigt däremot var att man med extra "bells and whistles" kunde få bonuspoäng och att betyget på kursen därför i hög grad kommer att ligga i proportion till hur mycket tid man kunde lägga ner på den. Betygen är visserligen inte kända än men det spekuleras i att A av någon form förmodligen skulle behöva ett snitt över 100 (vilket utan bonuspoäng är maxresultatet).
I avdelningen för kuriosa kan nämnas att under tävlingen kom den inte alldeles okände Donald Knuth ner till labbet och tittade på verken. Dessutom frågade han bland annat oss om tekniska detaljer i konstruktionen av bilderna.