Kortlægning af tekstur

Image
Tekstur kortlægning af ansigtet på en terning

Udtrykket tekstur kortlægning (tysk for "mønsterillustration") beskriver en metode til 3D computergrafik . Det bruges til at udstyre overfladerne på tredimensionelle overflademodeller med todimensionale billeder - såkaldte " teksturer " - og overfladeegenskaber. Teksturer får computergenererede billeder til at fremstå mere detaljerede og realistiske uden at skulle forfine selve den underliggende model.

Teksturkoordinater

Ud over sin position i xyz-rummet kan en teksturkoordinat i uvw-plads tildeles hvert toppunkt i et 3D-objekt. Teksturkoordinaterne (også kaldet uv- eller uvw-koordinater ) bruges til at definere, hvordan en tekstur (en bitmap eller en matematisk tekstur) kortlægges på en polygon . Hvis der anvendes en todimensional bitmaptekstur, som det er tilfældet i computerspil, kræves kun u- og v-koordinaterne for at bestemme, hvilken del af billedet der skal kortlægges på polygonen . Med matematiske strukturer som f.eks B. 3D-støj eller volumetriske strukturer, w-koordinaten er ofte også påkrævet.

Uv-koordinaten (0,0) svarer til det nederste venstre hjørne af strukturen, og uv-koordinaten (1,1) svarer til det øverste højre hjørne. Uv-værdier større end 1 og mindre end 0 er mulige og fører til kant-gentagelseseffekter i strukturen. Disse kan normalt defineres. To muligheder er kant gentagelse eller spejling. En struktur kan fliselægges ved at definere teksturkoordinaterne over en polygon .

Det er også muligt at tildele flere teksturkoordinater til et toppunkt. Man taler derefter om flere kortlægningskanaler . På denne måde kan flere billeder eller billedsektioner vises overlejret på en polygon .

I 3D-modeller med mange polygoner bruges ofte en enkelt struktur til hele modellen, så hvert punkt på modellen har kun et sæt teksturkoordinater (og ikke forskellige teksturkoordinater til de forskellige polygoner, der bruger dette punkt), fordi dette format er til hardware-accelereret 3D -Grafisk og også for designeren af ​​3D-modellen er særlig gunstig.

I den enkleste variant af teksturkortlægning interpoleres teksturkoordinaterne lineært langs polygonets kantlinjer, der allerede er transformeret fra 3D til 2D-rum . Derefter interpoleres de lineært langs en skærmlinje (eller søjle) fra kantlinje til kantlinje, hvor hver pixel vedtager farveværdien af ​​texelen, der hører til de interpolerede (u, v) koordinater (billedpunkt i strukturen).

Perspektivkorrektion

I tilfælde af polygoner, der har en større udstrækning i betragtningsretningen, fører metoden beskrevet ovenfor til visuelt utilfredsstillende resultater, fordi teksturkoordinaterne interpoleres efter projektionen og derfor ikke tager højde for, at en linje i den fjernere del af den projicerede polygon er en større linje i den originale polygon i 3D-rummet svarer til en linje i den nærmere del af polygonen. Som et resultat ændres tildelingen af ​​tekstur til punkter i det tredimensionelle rum, når perspektivet ændres.

For at løse dette problem i stedet for teksturkoordinaterne u og v, er værdierne for u / z og v / z og også 1 / z interpoleret lineært, hvor z er koordinaten i 3D-rummet i synsretningen (z eller 1 / z skal derfor gemmes for hvert projicerede punkt på polygonen). For at beregne teksturkoordinaterne for en pixel skal der nu udføres opdelinger:

u = (u / z) / (1 / z)

v = (v / z) / (1 / z)

Fordi divisioner er relativt langsomme, udføres de normalt ikke på hver pixel; i stedet beregnes u og v kun på denne måde for et par pixels, der er jævnt fordelt på polygonen. For alle andre pixels interpoleres værdierne for u og v mellem disse pixels. På denne måde kan du i høj grad reducere de forstyrrende effekter uden at skulle bruge for meget computerkraft.

Teksturinterpolation

For at forenkle forhold antager de hidtil beskrevne metoder, at hver pixel kan tildeles nøjagtigt til en texel. Men hvis både pixels og texels ses som punkter uden udvidelse, er dette generelt ikke tilfældet. Snarere ligger teksturkoordinaterne for en pixel normalt mellem flere texler. Det er derfor vigtigt at beslutte, hvordan farveværdien for pixlen opnås ud fra farveværdierne for de omgivende texler: En passende skaleringsproces er påkrævet .

Den nemmeste og hurtigste skaleringsmetode er at vælge den nærmeste tekst. Denne procedure kaldes nærmeste nabo eller også punktudtagning . Med den mere komplekse bilineære filtrering interpoleres den ønskede farveværdi fra de fire omgivende tekster afhængigt af deres afstand. Endnu mere komplekse filtre, såsom det Gaussiske filter , inkluderer yderligere texler i beregningen eller vejer afstanden forskelligt. Da uegnede interpolationsmetoder fører til uønskede aliaseffekter - for eksempel moiré-effekter - skal der findes et kompromis mellem hastighed og dannelse af artefakter.

MIP-kortlægning

Disse teknikker anvendes, så længe pixelens gitterafstand er mindre end texels, dvs. højst en texel tildeles en pixel. Imidlertid, hvis pixelens gitterafstand er større end texels, svarer en pixel til et helt område af strukturen. Selvom det ikke længere er vanskeligt at danne farveværdien som gennemsnitsværdien af ​​alle texlerne, er dette meget komplekst - mange aritmetiske operationer skal udføres for en enkelt pixel - og derfor ikke praktisk muligt.

I stedet bruges MIP-kort . Ud over den originale tekstur indeholder disse kopier af strukturen med faldende størrelse, såkaldt " niveau for detaljer " ( LOD). Du vælger det største detaljeringsniveau ud fra dette, som gendanner den sædvanlige tilstand for "pixels mindre end texel" og arbejder på det som på den oprindelige struktur. Ud over de tidligere interpolationsmetoder er der mulighed for at udføre en yderligere lineær interpolation mellem to successive detaljeringsniveauer; i kombination med den bilineære filtrering opnås en tredobbelt filtrering . Anvendelsen af MIP kort i forbindelse med punkt prøveudtagning allerede i høj grad reducerer aliasing effekter, i forbindelse med mere komplekse filtre og interpolation mellem de niveauer, som de kan reduceres til et minimum.

Anisotropisk filtrering

De ovenfor beskrevne applikationer betragter pixels og texels som punkter, det vil sige som endimensionelle objekter uden udvidelse. I stedet kan de også ses som små firkanter. Derefter skal det tages i betragtning, at en pixel, der projiceres på strukturen, ikke danner en firkant, men snarere en strakt i en retning, når den observerede polygon udvides i betragtningsretningen. Hvis der tages højde for denne forskellige formering i forskellige retninger ( anisotropi ) af pixlen i teksturrummet under filtreringen , taler man om anisotropisk filtrering .

Særlige procedurer

Der er flere metoder til at få en overflade dækket af en struktur til at se tredimensionel ud:

Weblinks

Commons : Textures  - samling af billeder, videoer og lydfiler