3TX 3D Computer Graphics

Uit Diana's examenwiki

Extra uitleg

Dit vak wordt gedoceerd door Mario Ausseloos. De cursus is vrij duidelijk maar desondanks blijft dit een moeilijk vak. Indien je een les mist is het niet makkelijk om bij te benen. Naar de les gaan is dus zeer belangrijk.

Het examen was opgebouwd uit twee delen: mondeling en schriftelijk. Deze telden elk voor 50% van je resultaat! Indien je de labo's hebt gemaakt valt het schriftelijk goed mee. Mondeling is echter heel wat moeilijker.

Vanaf het studiejaar 2012-2013 is het examen volledig schriftelijk! Een grafisch rekentoestel is toegestaan.

Augustus 2012

Schriftelijk

  • Gegeven een bepaald stuk code (soortgelijk lab 2 en 3). Wat krijg je op je scherm te zien?
    • Geef de 2 types van shades die OpenGL gebruikt. Bespreek ze en wat is het verschil.
    • Welke vectoren gebruikt OpenGL om de shading te berekenen.
  • een meshfile van wat een schuur bleek te zijn. Er ontbreken onderaan 1 of meerdere lijnen. Vul deze aan.
  • een implementatie oefening waarbij een kubus gecentreerd rond de oorsprong moest getransformeerd worden en men 12 kubussen moest bekomen in de vorm van een uurwerk.
  • Een stuk code (raytracer, intersectie van sphere). Zoek de fout(en) in de code en pas deze aan
  • Waarom gebruik je de parameter inside bij refraction, moet deze altijd geïnitialiseerd worden als null, legt dit beperkingen op.
  • Bonus: Gegeven, stuk code voor camera rotatie naar boven. Wat als je de camera naar rechts wil laten bewegen.

Mondeling

  • parameters om een camera op te zetten in een scene
  • wat versta je onder view volume
  • Wat is Z-fighting? Oplossingen?
  • Hoe berekend OpenGL de schaduw van een object (geen formules gewoon het principe uitleggen en wat er voor nodig is)
  • Waarom gebruiken we 4x4 matrices terwijl een punt maar 3 coördinaten heeft? (oa. translate gaat niet met 3x3)
  • Wat is een generic sphere, hoeveel spheres bevat een generic sphere (1)

Januari 2012

Examen1

Schriftelijk

  • Gegeven een bepaald stuk code waarin 1 of meerdere bugs zitten. Vind ze en geef een oplossing ervoor.
  • Geef de 2 types van shades die OpenGL gebruikt. Bespreek ze en wat is het verschil.
  • Geef de params die nodig zijn om een kleur van een 3D object te berekenen.
  • een implementatie oefening waarbij een kubus gecentreerd rond de oorsprong moest getransformeerd worden en men 12 kubussen moest bekomen in de vorm van een uurwerk.
  • een stuk code waarbij 1 of meerdere bugs zitten. Vind ze en geef oplossing ervoor.
  • Een mesh file van de 'Barn' echter 3 lijnen ontbreken 1 normaal vector lijn en 2 face lijnen. Vul deze lijnen in.
  • bonusvraag : geef de implementatie van de Camera wanneer deze naar rechts moet draaien ten opzichte van de oorsprong

Mondeling

  • parameters om een camera op te zetten in een scene
  • wat versta je onder view volume
  • nadelen van depth buffer
  • gegeven een 3D scene met vervormde schaduwen, hoe komt dit en wat is de oplossing ?

Examen2

Schriftelijk

  • stuk code met 1 of meerdere bugs. Vind ze en geef oplossing. (=>GL_LINE ipv GL_LINE_LOOP gebruikt)
  • Wat is backface culling? Is het nog nodig om dan een Dept buffer te gebruiken?
  • Meshfile van piramide. Enkele lijnen ontbreken. Vul aan en teken de piramide.
  • een implementatie oefening waarbij een kubus gecentreerd rond de oorsprong moest getransformeerd worden en men 12 kubussen moest bekomen in de vorm van een uurwerk. Deze kubus moest dan ook nog draaien
  • een stuk code met 1 of meerdere bugs in, welke en los op. (=>feeler kan eigen shape intersecten, hiervoor een kleine correctie met de hitpoint meegeven als start)
  • waar wordt reflectivity gebruikt? welk mechanisme hebben we geimplementeerd om lange of oneindige loops hierin te voorkomen?
  • bonusvraag: geef implementatie van camera als deze naar links moet draaien. (down is gegeven)

Mondeling

  • Hoe gaat men van een 3D naar een 2D afbeelding?
  • gegeven afbeelding bespreken. Wat is er mis? Was dit bij de Raytracer of bij OpenGL? Is hier een depthbuffer gebruikt?
  • Welke 2 technieken gebruiken we om het complexe gebeuren te vereenvoudigen? (sdl en cfg)