Detta dokument innehåller allmän information om kursen, samt viss preliminär detaljinformation. Uppdateringar och preciseringar av dessa detaljer kommer att annonseras separat; detta dokument förblir oförändrat såvida jag inte upptäcker rena felaktigheter.
Examinator, föreläsare, labansvarig, projekthandledare samt författare till detta dokument:
Labassistent och projekthandledare:
Kursen ges nu för sextonde gången, och ämnet har under de gångna åren utvecklats från ett intressant men smalt specialområde till något som blivit allt mer mainstream inom datorgrafik. De senaste åren har kursen lockat glädjande många deltagare. Tyvärr skapar deltagarantalet vissa problem eftersom den personal och de tekniska resurser ITN kan uppbringa för en kurs inom detta ämne är något begränsade (jag själv, en kollega på deltid och en enda labsal). Kursen kommer därför att lämna mycket till ert eget ansvar. Jag kommer i synnerhet inte att påminna er extra om deadlines eller ej redovisade moment. All viktig information som ges kommer att läggas upp på denna webplats, och när större uppdateringar sker kommer jag att skicka mail till e-postlistan för kursen. Se till att du är registrerad på den listan via Studentportalen. Den kommer att vara min enda direkta kommunikationskanal till er som deltar i kursen, utöver de schemalagda kurstillfällena.
Observera att redovisningen av den individuella projektuppgiften görs endast skriftligen. Ingen muntlig föredragning kommer att ske.Det huvudsakliga kursinnehållet täcks av följande utmärkta bok:
Texturing and Modeling: A Procedural Approach (third edition)
Ebert, Musgrave, Peachey, Perlin, Worley
Morgan Kaufmann Publishers, 2003
ISBN 1-55860-848-6
Boken har tyvärr utgått från förlaget och finns inte längre att köpa. Sedan 2014 finns en bok med samma titel som e-bok, men den är tokdyr, och den krypterade och låsta PDF-filen (ett format som jag aldrig köper själv och som jag absolut inte kan rekommendera) är inte den senaste utgåvan (3rd edition), utan den första utgåvan från 1994. Den är bara hälften så tjock som tredje utgåvan och är dessutom så gammal och illa skriven att den i princip är oanvändbar. Undvik den. Det är rent lurendrejeri av förlaget att överhuvudtaget försöka sälja en så gammal och dålig bok, speciellt till det hutlösa priset.
Lösningen på detta problem kommer att meddelas muntligen på den första föreläsningen. Vad jag kan säga i förväg är detta: Ni behöver inte köpa någon bok.
Kursens innehåll ges i grova drag av kursplanen i studiehandboken. Detaljinnehållet definieras av litteraturen inklusive det extra material som jag hänvisar till, eventuellt tillhörande läsanvisningar samt laborationerna, alltså inte av exakt vad jag råkar välja att presentera på föreläsningarna. Föreläsningarna är planerade i grova drag, men detaljplaneras till stora delar under kursens gång och är i alla fall inte på förhand sprängfyllda med teoretiskt stoff som jag känner att jag verkligen måste förklara muntligt. Ibland blir föreläsningarna introduktioner eller alternativa förklaringar till särskilt svåra eller viktiga moment, och så ofta jag kan tar jag upp praktiska exempel, men ibland blir det även fördjupningar på vissa områden eftersom ni faktiskt har en betydligt starkare teoretisk och matematisk bakgrund än vad det mesta av litteraturen förutsätter. Jag kommer endast undantagsvis att föreläsa om detaljer som verkligen står väl beskrivna i skriftliga källor som jag kan hänvisa till. Ni förväntas läsa själva.
Kursen är rent organisatoriskt något lös i kanterna, delvis på grund av att det händer en hel del med ämnet mellan åren, men tyvärr även på grund av min egen tids- och resursbrist i relation till det ganska stora antalet anmälda till kursen. Kursen kommer därför otvivelaktigt att kräva ett avsevärt mått av egen, icke handledd aktivitet från er som kursdeltagare. Ett absolut minimikrav är att verkligen läsa litteraturen ordentligt, delta aktivt på föreläsningarna och intressera sig för den kunskap som laborationerna avser att förmedla, inte bara slötitta på några sidor i en PDF på nätet, närvara halvsovande på föreläsningarna och göra de obligatoriska labuppgifterna på enklaste sätt och gå därifrån utan att egentligen ha förstått något. (Detta är med största sannolikhet självklart för er, ni är mogna och smarta och borde ha en avsevärd studievana vid det här laget, men jag vill ändå tydligt påpeka vad jag förväntar mig av er.)
Kursen innehåller fyra laborationer som skall utföras antingen enskilt eller i grupper om två personer samt redovisas. Labkursen i sig ger 3 poäng och skall alltså ta 80 timmars arbete att genomföra. Detta innebär på papperet ca 20 timmars arbete per laboration, men i denna tid skall räknas in tid för inhämtande av teori, dvs föreläsningar (i genomsnitt två föreläsningar per laboration) och egna studier i litteraturen. Det konkreta arbetet med förberedelse, genomförande och redovisning av själva laborationen bör klaras av på drygt en dags fokuserat arbete. Ni kan däremot inte räkna med att kunna dyka upp oförberedda på labpasset och vara klara inom fyra timmar. Även om ni kanske till nöds kan lyckas få godkänt på det sättet så kommer ni inte att få tillräckliga kunskaper för att genomföra projektet om ni gör så.
Den andra halvan av kursens poäng examineras med ett avslutande individuellt projekt. Om ni inte särskilt ber om annat och har vad jag anser vara goda skäl till det så vill jag alltså att ni helt själva gör ett kortare projekt och redovisar det individuellt.
Efter den 6 december finns det inga schemalagda ordinarie moment för denna kurs. (De två sista labtillfällena 9/12 och 16/12 är handledda uppsamlingstillfällen för dem som ännu inte är klara med laborationerna.) Slutet av läsperioden och en del av tentaperioden är tänkt att ägnas åt projektarbetet, som ger 3 poäng och alltså skall ta minst två veckors heltid att slutföra. Detta motsvarar omkring 80 timmars aktiva studier och eget arbete utöver föreläsningarna och laborationerna. Ni bör förvänta er att jobba så mycket för att nå ett godkänt resultat. Jag vet att det kan vara svårt att klämma in den mängden arbete i slutet av läsperioden när flera andra kurser pockar på uppmärksamhet, men deadline för inlämning kommer att vara den 19 januari 2020, precis i slutet av tentaperioden, och det kommer att finnas möjlighet till senare inlämning i omtentaperioden i april, samt i omtentaperioden i september.
Projektarbetet skall redovisas skriftligt i form av en kortfattad rapport. Rapportskrivandet får absolut inte ta merparten av projekttiden. Gör kontinuerliga anteckningar under arbetet och skapa gärna några talande illustrationer längs vägen, men beräkna högst ett par dagar totalt för rent skrivarbete. Det ni skriver får gärna ha en informell eller på annat sätt icke traditionell karaktär, men det skall vara välskrivet, välinformerat och någorlunda utförligt. Projektet betygsätts, projektbetyget blir det totala kursbetyget, och rapporten och det bifogade materialet är allt jag har att gå på som examinator för att sätta ditt betyg, så slarva inte med presentationen av vad du gjort.
Den skriftliga rapporten skall vara inlämnad senast 19 januari 2020. Examinationen sker så fort jag hinner med, och jag ska göra mitt bästa för att hinna ge en betygsbedömning med konkret återkoppling inom två veckor efter inlämingen.
Någon kontinuerlig projekthandledning med regelbundna möten hinner jag tyvärr inte bistå med, men om ni behöver tips, råd eller goda idéer för att komma igång eller komma vidare om ni kör fast finns jag tillgänglig per e-post. Jag hinner dessvärre inte ens ha ett enda personligt möte med var och en av er. Ni är helt enkelt för många, och min tid är begränsad, både rent fysiskt och av budgetskäl - kursen är förhållandvis liten och får inte kosta jättemycket pengar för institutionen.
Det jag hinner med är att ge er starthjälp via e-post. Jag kommer att skicka ut noggrann information om detta innan projekten startar. Jag kommer att ge er ordentlig hjälp att definiera ett rimligt omfattande projekt som är lagom svårt. För att detta inte skall bli oproportionerligt tidskrävande för mig är det väsentligt att ni först har egna idéer kring vad ni vill göra. Jag har inte en rad färdiga projektidéer på lager - projekten skall bygga på er egen kreativitet och era egna förutsättningar och intressen. De idéer jag eventuellt har på lager är sprungna ur min egen nyfikenhet och mina intressen, och ni har sannolikt inte en exakt likadan hjärna som jag. (Det vore väl hemskt om alla människor vore likadana inuti?)
V 45 | Föreläsning 1:
Introduktion till ämnet, översikt över kursen, några exempel Litteratur: Kapitel 1, 2, 14 (bitvis något översiktligt, detaljerna senare) |
Föreläsning 2: Perlin Noise Litteratur: Extra material (görs tillgängligt via kurssidan) |
|
Föreläsning 3: Andra
Noise-liknande basfunktioner Litteratur: Kapitel 2 (detaljerna), kapitel 4, kapitel 8 (delar), kapitel 12 (delar) |
|
V 46 | Lab 1: Egen programmering av
animerade procedurella bilder Bilder med elementära funktioner och Perlin noise, cellular noise och eventuellt även spektral syntes, med egen programmering för att skapa egna, nya procedurella bilder. Programmeringsspråket är valfritt. Jag bistår med färdiga basfunktioner i Java, Matlab och C. Pröva gärna på några olika programspråk för bästa utbyte. Särskilda shadingspråk som OSL eller GLSL skall dock inte användas för denna laboration. Det är mer av en interaktiv demonstration och undersökande experimentverkstad. De få obligatoriska uppgifterna skall vara möjliga att klara av inom 4 timmar, självklart med viss förberedelse. |
Föreläsning 4: Open
Shading Language Litteratur: Exemplen för det snarlika språket Renderman SL i boken, kapitel 5 och 6, extra material |
|
Föreläsning 5: Interaktivt seminarium
kring shaderprogrammering i OSL (problemlösning) Litteratur: allt som hittills ingått i kursen |
|
V 47 | Lab 2: Enkla OSL-shaders Litteratur: Kapitel 5 och 6 samt extra material. Kapitel 5 och 6 skall läsas igenom innan laborationen, även om exemplen är skrivna i RSL. OSL är modernare, men ser ut och fungerar ganska likadant. Uppgiften är att ta de första stegen med OSL och fortsätta till att skriva en icke-trivial, någorlunda användbar shader som efterliknar ett verkligt välbekant objekt. Den schemalagda labtiden är bara en introduktion. Mer tid än fyra timmar behövs för att göra uppgiften färdig. Redovisning sker i efterhand via webben. |
Föreläsning 6:
Procedurella bilder i realtid Litteratur: Kapitel 3, kapitel 10, kapitel 13 (översiktligt), extra utdelat material |
|
Föreläsning 7: OpenGL
Shading Language (GLSL) Litteratur: Extra material (labkompendium, material om GLSL) |
|
V 48 | Lab 3: Procedurella bilder i
realtid med GLSL Extra utdelat och länkat material. Specifikationen för GLSL finns på nätet, liksom många exempel, och det finns även några bra tutorials. |
Föreläsning 8: Mer avancerad fysik och optik i shaders | |
Föreläsning 9: Multifraktaler, height maps och procedurella planeter Litteratur: Kapitel 15 (delar), kapitel 16, 17, 18, 20, 21 (översiktligt) |
|
V 49 | Lab 4: Terragen Terragen är ett kommersiellt program för att skapa procedurella planeter. Laborationen syftar till att testköra programmet och därefter skapa något litet mer ambitiöst. |
Föreläsning 10: Projektidéer, diskussion i seminarieform | |
V 50 2019 - V 3 2020 |
Projektarbete (med lagom paus kring jul och nyår) |
19/1 2020 | Slutredovisningar: skriftlig rapport lämnas in för examination. |
Stefan Gustavson 2019-10-29