Hoppa till huvudinnehållet
Institutionen för informationsteknologi

Programmeringsmetodik 2 VT-04

Utökningar

De studenter som går kursen som fristående kurs (och alltså får 5p) skall göra en något större uppgift. Utökningarna beskrivs översiktligt nedan. Ni får själva välja hur de ytterligare indata som behövs skall kodas i XML, men jag (Lars-Henrik) hjälper gärna till med förslag.

Ytterligare info kan fås via lärarna.

Transformation och sammansatta objekt

För att få större frihet vid modellering vill man på ett enkelt sätt kunna skala om, flytta och vrida objekt enskilt eller flera på en gång. Detta löses genom att man till varje objekt har ett eget lokalt koordinatsystem och transformerar till och från det när man gör själva strålföljningen.

Ett utdrag ur 3D Computer Graphics (kan fås på begäran) beskriver hur man kan använda en matris för att beskriva transformationer på ett objekt och hur omvandling mellan det lokala och globala koordinatsystemet går till.

Sammansatta objekt

Implementera sammansatta objekt, dvs ett objekt som består av flera andra objekt. Den stora poängen med sammansatta objekt är att kunna behandla det som ett objekt och t.ex. göra transformationer på det (utan att själv behöva räkna ut nya koordinater för varje ingående objekt).

Transformation

Implementera transformation på objekt med hjälp av transformationsmatriser.

Omslutande sfärer

Vid en träffpunktsberäkning för en stråle undersöker vi vilket objekt strålen träffar genom att titta på samtliga objekt i världen. För att reducera antalet träffpunktsberäkningar kan vi gruppera några av varandra närliggande objekt i en omslutande sfär. Om strålen missar den omslutande sfären kommer den garanterat att missa samtliga objekt som sfären omsluter. I fallet med en värld bestående av många objekt i ett antal kluster kan denna optimering löna sig mycket väl. Man kan tänka sig att man grupperingen av objekten i omslutande sfärer görs automatiskt, men i detta fall räcker det med att de omslutande sfärerna ska kunna anges explicit. Inte heller behöver ni ta hänsyn till rekursiva omslutande sfärer, dvs en omslutande sfär kan inte innehålla en annan omslutande sfär.

Uppdaterad  2004-05-13 12:39:05 av Lars-Henrik Eriksson.