
Martin Reimers
Vårens siste foredrag i Informatikkens verden handlet om realisering av 3 dimensjoner (3D) i dataspillenes verden.
Martin Reimers fra gruppen for Beregningsorientert matematikk snakket om 3D visualisering, hvordan øke kvaliteten på bildene som vises, hvordan introdusere fysiske elementer som kollisjon, elastistitet, osv., og gjøre dette slik at oppførselen i den 3-dimensjonale verden blitt mest mulig realistisk. En nøkkel er bruk av grafikk-kort (GPU) og utnyttelse av kraften i disse spesialbygde enhetene gjennom parallell programmering.
Først og fremst må det bygges geometriske modeller av det vi ser. Disse er som regel bygget opp av trekanter der posisjonen til hver trekant er bestemt av tre punkter i rommet. En samling trekanter som henger sammen kalles en triangulering og alle objektene består av et antall trekanter som til sammen danner flater som vises på skjermen. Videre knyttes farger, materialegenskaper og teksturer (digitale bilder) til hver trekant. I tillegg til dette bruk lys for å skape liv. Et viktig poeng siden bildene skal vises i «sann-tid» er at man bruker så få trekanter som mulig, og Martin viste bl.a. frem en teknikk der man ved hjelp av grafikk-kortet kunne beregne glatte siluetter i «sann-tid» over en relativt grov triangulering. Uten denne metoden ville bildene på skjermen sett kantene ut.
Et annet viktig trekk med utviklingen, primært for å få større realisme inn i spillene, er å introdusere elastisitet i objektene. Dette betyr at objektene skal endre form når de kolliderer, slik f.eks en fotball gjør når foten treffer ballen eller ballen treffer en vegg. Dette betyr at det må knyttes fysiske egenskaper til trekantene som beskriver objektene, og trekantene må endre form som en funksjon av den kraften som påvirker objektet. Martin viste frem en film der elastiske kaniner bestående av ca. 2000 trekanter slippes ned på et plan. De endrer seg og spretter opp og ruller rundt. I tillegg til elastisiteten må systemet også finne ut når og hvor objektene kolliderer.
For å få alt dette til å gå fort nok, dvs kunne tegne mange bilder per sekund på en dataskjerm, er det viktig å utnytte kraften i grafikk-kortet som består av mange beregningskjerner som arbeider sammen (i parallell). Realistisk oppførsel i et dataspill krever god forståelse for den fysikken som skal modelleres, robuste matematiske modeller som beskriver den verden som skal vises frem, og sist men ikke minst avansert programvare som utnytter datamaskinens regnekraft.