Alla labbar är skrivna för OpenGL 3.2. Det betyder modern OpenGL, 3.2 och upp, till skillnad från det föråldrade 2.1 och ner. Tillägg för OpenGL 4 kan användas, och ni är mer än välkomna att använda dem, speciellt i projekten. Dock kan det förekomma att man hittar maskiner som inte klarar OpenGL 4, medan 3.2 fungerar även på lite blygsammare hårdvara.
När vi jobbade på distans genom ThinLinc så har detta minimikrav visat sig vara en fullträff, för ThinLinc stödjer bara OpenGL 3.3! Men det klarade därmed kravet! :)
Allt labbmaterial är för Linux, men är ganska enkelt att anpassa för andra OS. Den skall också fungera direkt i MacOSX och Windows. Allt som behövs är lämpliga inställningar i makefiler eller projekt.
Laborationerna är obligatoriska (förutom labb 0)! Labb 1-4 inleds med duggor!
Observera att duggorna är del av den betygsgrundande examinationen!
Det är inte säkert att ni kan fullfölja en labb på de schemalagda 4 timmarna. Ni ägnar då labben en del tid utanför schemalagd tid, och redovisar på en senare labb. Reservlabben är labbkursens officiella slut, så se till att du är så nära färdig att du blir klar på den. Det går att redovisa senare, för kursen är ju inte slut, men möjligheten att få hjälp är mindre.
Alla laborationer går i labbsalarna Olympen och Asgård. Båda är i korridor 25, övre planet. Nollstället, ett seminarierum som jag ibland använder som reservutrymme, är straxt intill, bakom Olympen.
Olympen har hyfsat nya maskiner med NVidia 1080-kort. Asgård har RTX-kort, 2060. Övriga labbsalar har enkla GPUer som är direkt olämpliga för alla GPU-tunga övningar.
För användargränssnittet använder vi MicroGlut, en enda källfil och i sammanhanget mycket liten, med API baserat på OpenGL Utility Toolkit, men det är inte samma sak, det finns både skippade saker och tillägg. Den finns för Mac, Linux och MS Windows. Filerna ingår i common-mappen för alla labbar, som är en uppsättning hjälpfiler (modelladdare, texturladdare, vektor- och matrisoperationer med mera) med ambitionen att vara ganska komplett samtidigt som de är tillräckligt överskådliga för att de skall vara begripliga och därmed transparenta.
2022 inföde jag på försök ordentligt stöd för att använda C++ i labbarna, vid sidan av C. Detta är helt nytt men jag hoppas att det kan underlätta en del av kodningen. Detta var mycket lyckat så vi fortsätter där.
INGEN FÖRANMÄLAN. Det skall finnas plats för alla.
Laboration 0: Introduktion till shaderprogrammering med GLSL
Olympen & Asgård, torsdag 5/9 13-17
Detta är en frivillig laboration för er som inte känner er så säkra på OpenGL 3.2+ och GLSL.
Labbhandledning, se menyn
Laborationen har ingen egentlig examination, men det finns möjlighet för er att få viss assistans och diskutera problem.
Laboration 1, Datorgrafik: Avancerad Shaderprogrammering
Olympen & Asgård torsdag 12/9 13-17
Laborationen inleds med en dugga, som täcker kapitel 3-5, förutom 3.7-3.8, till och med 5.5. (5.6 och framåt på omduggan.)
Labbhandledning, se menyn
Förberedelser: Läs på kapitel 3 till 5 innan labben. Kapitel 5 är viktigast för själva labben, övriga för duggan.
Laboration 2, Animation, skinning
Olympen & Asgård torsdag 19/9 13-17
Laborationen inleds med en dugga, som täcker kapitel 6, 7.5, 9, 11.
Labbhandledning, se menyn
Laboration 3, Fysik: Biljardbordet
Olympen & Asgård torsdag 26/9 13-17
Laborationen inleds med en dugga, som täcker kapitel 8 (Rigid body animation) fram till 8.5 samt den nya “Beachball Physics". Sergyis föreläsningsanteckningar ingår också (förra årets duger bra) men från i år (2023) skall Beachball Physics täcka i princip samma material. Det innebär att min plan för i år är att duggafrågor baseras på kapitel 8 och Beachball Physics. 8.6-8.7 ingår i omduggan.
Förberedelser: Läs igenom kapitel 8 samt Sergyis föreläsningsanteckningar. Använd gärna Baraff, Physically Based Modelling som stöd och komplettering, kapitel 1-3 samt 8, samt de delar av föreläsningsmaterialet som gäller partikeldynamik och stela kroppens dynamik.
Labbhandledning, se menyn
Laboration 4: AI: flocking
Olympen & Asgård, torsdag 3/10 13-17
Laborationen inleds med en dugga, som täcker kapitel 10, 12-14 (förutom 12.9-12.10) samt 5.7-5.8. (Omduggan täcker även kapitel 7 förutom 7.5 som är i dugga 2, samt 12.9-12.10.)
Labbhandledning, se menyn.
Reservlaboration 1:
Olympen & Asgård, torsdag 10/10 13-17
Reservtid för tidigare laborationer.
OBS! Omduggor! Laborationen inleds med möjlighet att göra om samtliga duggor från tidigare laborationer.
Observera att omduggorna täcker något mer material, inklusive det som var på sista föreläsningen.
Reservlaboration 2:
Olympen & Asgård, torsdag 17/10 13-17
Reservtid för tidigare laborationer.