Laborationer

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 är det troligt att en del av er har egna maskiner som inte klarar OpenGL 4, medan 3.2 fungerar även på lite blygsammare hårdvara.

När vi jobbar 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 klarar 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. (Exempelkod för Windows finns på demosidan.)

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.

Alla laborationer går i labbsalarna Olympen och Asgård. Båda är i korridor 25, övre planet. (2021 är ett par labbar tyvärr i det sämre labbet Egypten. Jag hoppas att det fungerar.) Nollstället, ett seminarierum som jag ibland använder som reservutrymme, är straxt intill, bakom Olympen. Vi har gott om plats, utnyttja det för att hålla distans med hänsyn till rådande smittorisk.

Olympen har ganska nya maskiner med NVidia 1080-kort. Asgård har RTX-kort, 2060! (Om detta fungerar bra så kan jag rekommendera projekt som utnyttjar dessa!) Ö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 miniversion av OpenGL Utility Toolkit med fokus på modern OpenGL. 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.

Obligatorisk COVID-19-anpassning: Vi har ganska gott om plats i labben, så meningen är att ni skall sprida ut er så mycket som möjligt. På grund av COVID-19-hänsyn har schemaläggning blivit knepig. Jag har dock (mot alla odds) lyckats få labbpass på dagtid så att Norrköpingstudenterna kan komma hem med bussen! Ett labbpass, labb 4, blir lite trixigt, för ena labbet har vi bara två timmar. Detta innebär att Norrköpingsstudenterna har förtur till 4-timmars-labbet med hänsyn till deras restid! Det finns också ett 2-timmarspass på kvällstid avsett för att ge Linköpingsstudenterna lite kompensationtid, om än lite väl tidigt.

INGEN FÖRANMÄLAN: Det är meningen att labbarna skall göras i grupper om två med på grund av Covid-19 så rekommenderas ni att jobba en och en. Labb 0 går på distans men jag räknar med ett begränsat antal deltagare så jag kan nog hantera breakoutrummen manuellt.

Om labbar i distansläge: Laborationer på distans körs genom ThinLinc. Information om detta finns här. På distanslabbar kör vi ett kösystem som finns här. Grafikprestandan genom ThinLinc är dock gräslig så det är hopplöst att köra krävande program.

Anslut till thinklinc.edu.liu.se.

ssh till en labbdator. Exempel:

ssh olympen1.101.ad.liu.se -X

ssh asgard1.301.ad.liu.se -X

Dina OpenGL-program kommer nu att visas korrekt i fönster. (Fast inte snabbt.)

Här kan man se vilka datorer som är påslagna och lediga.

Laboration 0: Introduktion till shaderprogrammering med GLSL

Asgård på distans, torsdag 2/9 13-17

Denna labb körs på distans 2021. Vi har inget större behov av att ha er på plats så speciellt Norrköpingsstudenterna kan nog uppskatta att köra denna på distans.

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+Egypten torsdag 9/9 13-17

Tyvärr fick vi inte Asgård. Jag hoppas det sämre labbet Egypten skall fungera.

Laborationen inleds med en dugga, som täcker kapitel 3-5, förutom 3.7-3.8, till och med 5.5. (5.6-5.8 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

Egypten+Asgård torsdag 16/9 13-17

Än en gång fick vi ett dåligt labb. Jag hoppas det sämre labbet Egypten skall fungera.

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 23/9 13-17

Laborationen inleds med en dugga, som täcker kapitel 8 (Rigid body animation) fram till 8.5. Sergyis föreläsningsanteckningar ingår också (förra årets duger bra).

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 30/9 13-17 resp 13-15

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, måndag 17/10 17-21 + distans

Reservtid för tidigare laborationer.

Denna räknar jag med att köra huvudsakligen på distans.

Reservlaboration 2:

Olympen, torsdag 14/10 13-17

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.

Denna sida underhålls av Ingemar Ragnemalm.