Fast and High-Quality Visibility Determination

Popular Abstract in Swedish Datorgenererade bilder ar en viktig del av underhallningsindustrin, som bland annat innefattar spel- och filmindustrin. For att kunna skapa avancerade specialeffekter i filmer samt stora och detaljerade spelvarldar kravs datorprogram som utnyttjar berakningskraften i dagens datorer pa ett effektivt satt. Battre och snabbare datorprogram leder ofta till nya anvandarupplevelser som tidigare inte var mojliga. Aven industrier utanfor underhallningsbranschen anvander sig av avancerad visualisering. Inom medicin kan rontgenbilder presenteras tredimensionellt for effektiv diagnostisering av sjukdomar och arkitekter kan lata sina klienter ga en virtuell tur i byggnader som annu inte ar fardigbyggda. For att generera en bild fran en tredimensionell scen kravs en modell att utfora berakningar pa. Vanligtvis bestar modellen av geometriska former (exempelvis trianglar), ljuskallor och en kamera. Dessa ar i regel utplacerade i ett modelleringsverktyg som fungerar som ett ritprogram med en extra dimension. De geometriska formerna har en beskrivning av sin yta som bestammer hur ljus interagerar med den. En diffus yta sprider ljus jamnt at alla hall vid en traff och en spegel reflekterar alla stralar till en viss vinkel baserat pa vinkeln mellan ljuset och ytan, for att namna nagra exempel. For att skapa en bild fran kamerans synfalt behover en simulering genomforas dar virtuellt ljus propagerar fran ljuskallorna i modellen, traffa geometrin i ett eller flera studs och slutligen hamnar pa kamerans sensor. For att gora processen snabbare kan stralar istallet skickas fran kameran. Stralarna haller da reda pa var pa sensorn de utgick ifran och varje studs kan paverka sensorn pa den ursprungliga platsen. Alternativt kan geometrin direkt projiceras till kamerans bildplan, vilket ar vanligt i realtidsapplikationer som spel. Dessa tekniker har olika for- och nackdelar i form av prestanda och vilka ljuseffekter de kan fanga. En av de mest fundamentala operationerna nar en bild ska genereras ar att bestamma vad som ar framfor en bildpunkt pa kamerasensorn eller vad som ar framfor en virtuell ljusstrale. Vi kallar dessa operationer for synlighetsberakningar. Mycket forskning fokuserar pa detta omrade men utvecklingen som har lett fram till dagens moderna datorer har samtidigt skapat nya utmaningar. Berakningskraften har okat mycket medan tiden det tar att lasa och skriva data fran arbetsminnet inte har minskat lika snabbt. Vidare kan berakningskraften inte utnyttjas till fullo om algoritmer inte anpassas for parallellt arbete pa flera processorkarnor samt for vektoroperationer pa instruktionsniva. Ofta finns det aven flera olika typer av berakningsenheter pa samma chip som maste samarbeta for att uppna hogsta mojliga prestanda. Mitt arbete innefattar algoritmer for att snabbt genomfora synlighetsberakningar i olika situationer. Linjer over kamerasensorn har anvants for att bestamma synlighet med hog kvalite for trianglar under rorelse samt tunna kurvor som exempelvis har. De kombinerade resurserna av bade centralprocessor och integrerad grafikprocessor pa samma chip har anvants for att snabbare rita bilder med kantutjamning. Vidare har tva algoritmer for att testa stralar mot geometri som ligger i specifika datastrukturer tagits fram. Den forsta algoritmen innebar att testning mot ett binart trad kan ske rekursivt utan att anvanda minne for att lagra en stack. Den andra algoritmen testar manga stralar samtidigt mot ett trad sa att vektoroperationer kan anvandas pa ett effektivt satt. (Less)