Computergrafik programmering

2020/2021

Modulets indhold, forløb og pædagogik

Modulet giver en introduktion til koncepter og teknikker indenfor real-tids computergrafik. Fokus er på de programmerbare funktionaliteter (shader-programmering) i moderne Computer Graphics Units (GPUs), f.eks. som tilgængelige gennem grafiske APIer, såsom OpenGL. Modulet dækker også relevante matematiske koncepter, såsom transformation mellem koordinatsystemer, og matematiske modeller, såsom Phong’s reflektionsmodel, samt hvorledes disse anvendes i GPU-baserede shaderprogrammer.

Læringsmål

Viden

Studerende, som gennemfører modulet, vil opnå:

  • Viden om den programmerbare, hardware-accelererede renderings-pipeline, f.eks. som den er tilgængelig gennem OpenGL, samt dens relation og interaktion med den centrale processeringsenhed
  • Viden om begreberne vektorbaser, vektorrum og koordinatsystemer, samt transformationer mellem disse
  • Viden om matematiske repræsentationer for vilkårlig rotation i 3D rum, herunder repræsentation som matrice, akse og vinkel, samt quaternion
  • Viden om beregning af kvadratisker Bezier-kurver og splines
  • Viden om interpolation af vertex-attributter såsom farve (f.eks. til per-vertex lighting), normaler (f.eks. til per-pixel lighting) og teksturkoordinater
  • Viden om frame-buffer-operationer, herunder blending og dybdetests
  • Viden om accelrationsteknikker, såsom viewport clipping og backface culling
  • Viden om teknikker til forbedring af billedkvalitet, såsom antialiasering via supersampling, og mipmap teksturfiltrering
  • Viden om almindelige performance flaskehalse for GPUer, herunder også GPUer til mobile enheder

Færdigheder

Studerende, som gennemfører modulet, vil være i stand til at:

  • Formulere og anvende en hvilken som helst 3D affin transformation i homogene koordinater som en 4x matrix operation, og anvende dette i et GPU-baseret shaderprogram
  • Beskrive real-tids lokale belysningsmodeller, i særdeleshed Phong reflektionsmodellen, og anvende dette i et GPU-baseret shaderprogram
  • Beskrive texture mapping teknikker, herunder compositing af multiple teksturer, normal mapping, environment/reflection mapping, og shadow mapping, samt anvende disse i et GPU-baseret shaderprogram

Kompetencer

Studerende som gennemfører modulet vil være i stand til at:

  • Implementere et program til proceduralt at generere, og interaktivt kontrollere og rendere, tre-dimensionelt indhold

Undervisningsform

Se oversigt over undervisningsformer under §17.

Eksamen

Forudsætning for indstilling til prøven

  • For at kvalificere sig til eksamen, skal den studerende have:
    - afleveret obligatoriske opgaver rettidigt
    - færdiggjort obligatoriske studieaktiviteter rettidigt

Prøver

Prøvens navnComputergrafik programmering
Prøveform
Skriftlig eller mundtlig
ECTS5
Tilladte hjælpemidler
Med visse hjælpemidler:
Se semesterbeskrivelse
Bedømmelsesform7-trins-skala
CensurIntern prøve
VurderingskriterierVurderingskriterierne er angivet i Universitetets eksamensordning

Fakta om modulet

Engelsk titelComputer Graphics Programming
ModulkodeMSNMEDB5202A
ModultypeKursus
Varighed1 semester
SemesterEfterår
ECTS5
UndervisningssprogDansk og engelsk
UndervisningsstedCampus Aalborg
Modulansvarlig

Organisation

StudienævnStudienævn for Medieteknologi
InstitutInstitut for Arkitektur og Medieteknologi
FakultetDet Tekniske Fakultet for IT og Design