Prof. Pat Hanrahan
Foley, van Dam, Feiner and Hughes, Computer Graphics: Principles and Practice, Second edition in C, Addison-Wesley. Tjock men realtivt billig bok (1100 sidor, $65). Bra som referensbok, men max en tredjedel användes i kursen.
Neider, Davis, Woo, The OpenGL Programming, Guide Addison-Wesley. Bra introduktion till Open GL.
Course Reader (kompendium) skrivet av Pat Hanrahan. Sanslöst många småfel, men ganska vettigt innehåll. Felen är nog rättade till nästa år.
Fundamentals of input, display, and hardcopy devices, scan conversion of geometric primitives, 2D and 3D geometric transformations, clipping and windowing, scene modeling and animation, algorithms for visible surface determination, introduction to local and global shading models, color, and photorealistic image synthesis. Written assignments and programming projects.
Linjär algebra (vektoralgebra), C (eller C++).
Kändes något ostrukturerade och oinspirerade. Mest pratade professorn utifrån föreläsningsanteckningar/slides som man i praktiken inte kunde komma över förrän efter föreläsningen. Det hade varit bra att ha anteckningarna framför sig och själv kunna fylla i alla detaljer som han gick igenom. Egentligen gav inte föreläsningarna så mycket mer än en hum om vad kursen handlade om.
Help sessions före varje deadline och review sessions före proven. Office hours i vanlig ordning, varav en del var utlokaliserade till grafiklabbet vid annalkande projektinlämningar.
Tre labbar (som från början vara menade att vara fyra). Hyfsat stora uppgifter av varierande svårighetsgrad. Eftersom det var en ny professor som höll kursen var allting omgjort sedan föregående år. Den tid som labbarna upptog verkade ha minskats ner rejält och innehållet var också helt annorlunda.
Man hade fria händer att implementera ett spel enligt lösa specifikationer. Det skulle bl a vara interaktivt, använda både mus och tangentbord, gå att köra på SGI Indigo och hålla reda på poäng. Mycket mer fick man inte veta förutom att man hade ett hjälppaket med några rutiner som skötte öppning av fönster, mushantering etc. Själva grafiken skötte man via Open GL, ett ganska avancerat grafikbibliotek, främst avsett för 3D.
Många skrev versioner av gamla klassiska spel som Pac Man och Space Invaders, men några hittade på egna spel. Själv valde jag att implementera Space Invaders. Det var lätt hänt att man lade ned för mycket tid på labben, men det gav också viss utdelning när det gällde betygsättningen.
I denna lab använde man sig inte av Open GL, utan man skulle skriva några rutiner som ritade trianglar och texturemappade dem. Givet var ett program som bl a ritade upp insidan av en kub mha de rutiner man själv skrev. När man texturemappar insidan med lämpliga bilder så kan man få effekten av att man befinner sig inne i ett rum där man kan titta i vilken riktining man vill och med vilken perspektivförvrängning man vill (ungefär som som Apples QuickTime). All användarinteraktion sköttes av labskelettet, så man kunde koncentrera sig på det som hade med datorgrafik att göra.
Man fick även ett komplett exempelprogram som man kunde använda för att jämföra uppritningstider mellan exempelprogrammet och ens egna rutiner. Poäng gavs bla efter hur snabba rutiner man lyckades skriva.
Denna lab var också kraftigt underlättad av ett hjälpprogram. Man skulle beskriva ett 3D-objekt (t ex en gubbe eller ett djur av något slag) samt animera detta objekt. Beskrivningen skedde i ett enkelt specialspråk som labbprogrammet förstod och kunde göra en animering av. Objekten konstruerade man mha primitiver (cylindrar, sfärer, koner, kuber etc) som man grupperade i en trädstruktur innehållande med statiska eller dynamiska transformationer (skalning, translation och rotation). De dynamiska translationerna specificerade man genom att ange transformationens värde vid olika tidpunkter under animeringen (keyframes) och programmet interpolerade sedan mellan dessa keyframes. Man kunde också placera ut ljuskällor och kameror samt specificera materialegenskaper.
Ett antal fria latedays som ökade alltefter kursens gång då det nya datorgrafiklabbet som skulle vara klart vid kursens början försenades mer och mer. De flesta verakade utnyttja latedays friskt, men jag klarade mig ändå. Inget direkt samarbete tillåtet.
2 timmar, closed book & notes. Gott om tid och inte alltför svår. Ändå blev det ganska stor spridning.
3 timmar med gott om tid. Inte heller allt för svår.
Kursen kändes lite tunn, men man lärde sig nog en hel del ändå. Förmodligen mycket mindre arbetskrävande än tidigare år. Tyvärr var det mycket strul innan det ny labbet (18 st SGI Indigo 2) blev klart lagom till slutet av lab 3, så det gamla labbet (14 st SGI Indigo) var rejält överbelastat nära deadlaines. Pga detta ställdes även en planerad labb in. Detta borde fungera mycket bättre nästa år.
Det var trevligt att labbarna inte var så styrda, utan att man fick ovanligt fria händer.