Mer enn bare fete flater

Ny doktorgrad viser hvordan man kan skape enda fetere grafikk i dataspill, men også at skjermkort kan brukes til mye, mye mer. Kunne du for eksempel tenkt deg din egen supercomputer?

Denne artikkelen er over ti år gammel og kan inneholde utdatert informasjon.

Det visuelle blir stadig viktigere i dataprogrammer. Å få modeller (av for eksempel mennesker, biler eller objekter) til å se så realistiske ut som mulig, er viktig ikke bare for film- og dataspillindustrien, men også for modellering av prototyper i industrien, eller for visualisering innen forskningsfelt som fysikk, geologi og medisin.

Utfordringen er å få så realistiske bilder som mulig til å kunne vises på skjermen så raskt som mulig.

Spillindustriens framvekst har hatt stor påvirkning på utformingen av datasystemer. De fleste datamaskiner har et dedikert skjermkort (GPU) for å kjøre 3D-grafikk.

Skjermkortet har ofte mer enn ti ganger så mye regnekraft som hovedprosessoren i maskinen, siden hovedprosessoren er designet for å gjøre mange forskjellige oppgaver, mens skjermkortet nesten bare brukes til en ting: å tegne trekanter – veldig mange, og veldig fort.

Silhuetten avslører

Det er nemlig dette grafikken i spill bygges opp av: mengder av trekanter, som man limer på bilder som representerer farge og skyggelegging. Problemet er at silhuetten til modellene ofte forblir grov og kantete, fordi man ikke endrer selve geometrien i flatene.

- Silhuetten er svært viktig for hvordan hjernen vår oppfatter objekter, og en grov silhuett blir fremtredende og svekker realismen i bildet, forklarer Johan Simon Seland, som til sin doktorgrad har forsket på hvordan man kan programmere skjermkortet til å gi en bedre fremstilling av flater.

Flere muligheter

Økt behov for å kunne gjøre realistiske rendringer i videospill, har de siste ti årene ført til at skjermkort i dag har blitt fullt programmerbare og fleksible verktøy som kan gjøre svært nøyaktige beregninger, der de før bare kunne brukes til grafiske oppgaver.

Dette har igjen ført til økt interesse for å bruke skjermkortene til annet enn bare grafiske oppgaver. Dette kalles ofte for GPGPU (General-purpose Computing on graphics processing units), eller ”heterogen computing”.

På denne måten avlaster man hovedprosessoren i systemet ved å fordele oppgaver mellom grafikk- og hovedkortet, og får mer regnekraft.

Nye suppeoppskrifter

For å finne måter å få bedre grafikk på, har Seland brukt GPGPU-teknikker for å programmere et skjermkort til å regne ut grafikken med nye matematiske metoder.

- Grafikkort er laget for å representere flater som en ”triangelsuppe”. Da får man ofte skarpere kanter, det blir krevende å endre oppløsning, og man trenger stor lagringsplass, forklarer Seland.

I to forskningsprosjekter har han kommet fram til nye ”suppeoppskrifter” – metoder som automatisk finner silhuetten av grove modeller og forfiner dem, slik at silhuetten blir glattere og mer realistisk. Dette kan gjøres svært raskt, og metoden hans er allerede i bruk av skjermkortprodusenten Nvidia.

Andre boller

I en annen del av doktorgradsarbeidet har han forsket på hvordan man kan bruke en annen type matematikk (algebraisk flate)hvor man istedenfor et bilde bygd opp av trekanter kan bygge opp bildene med en ren geometrisk form, bygd opp av stråler, hvor bildet som vises frem regnes ut i forhold til oppløsningen.

- Før har det tatt flere sekunder å regne ut et skjermbilde basert på slike funksjoner, men ved å utnytte regnekraften til skjermkortet på en ny måte, kan man regne ut og vise bildene i sanntid, forteller Seland.

Dette betyr bedre bilder, noe som vil være viktig ikke bare for spillindustrien, men også vil kunne gi bedre muligheter til visualisering innen for eksempel filmindustrien, eller medisinsk industri og forskning.

Fremtidens personlige supercomputer?

Men forskningen som skjer innen GPGPU-teknikker handler om mer enn bare å få fet grafikk. Siden skjermkort både er raskere enn hovedprosessoren, kan programmeres og jobber dedikert med en oppgave, kan man lett sette sammen flere skjermkort for å få økt regnekraft.

- Dette betyr for eksempel at man kan lage seg sine egne supercomputere ved å koble sammen flere grafikkort, noe som har et stort potensial for mindre forskningsmiljøer eller andre som trenger mye regnekraft, for å kjøpe flere skjermkort er billig sammenlignet med å kjøpe hovedprosessorer, forklarer Seland.

Forskningsområde i utvikling

Om du foretrekker å kalle det GPGPU eller heterogen computing, er dette et område hvor det satses stort, i Norge og i verden. Selands doktorgrad er en del av prosjektet ”GPGPU– Graphics hardware as a high-end computational resource”, som er et samarbeid mellom Sintef Oslo, forskningssenteret Centre of Mathematics for Applications ved Universitetet i Oslo, Universitetet i Bergen og Høgskolen i Narvik.

I løpet av våren kommer to nye doktorgrader på feltet, som ser nærmere på blant annet hvordan man kan bruke skjermkort som regnekraft.

Nylig ble det også lansert et åpent (gratis) programmeringsspråk for heterogen dataprogrammering, kalt ”Open CL”, for å oppmuntre til mer forskning på applikasjoner til alle slags plattformer. Språket er utviklet i et bredt samarbeid mellom blant annet Apple, Ericsson, IBM, Motorola og Universitetet i Umeå, for å nevne noen. Microsoft, derimot, er ikke med på prosjektet.

Mer informasjon:

Johan Simon Seland (2008): Smooth surface visualization using graphics hardware, doktorgradsavhandling, Universitetet i Oslo.

Les mer GPGPU og heterogen computing på SINTEF sine prosjektsider: www.sintef.no/heterocomp

Powered by Labrador CMS