Dela via


Texturomslag

Texturomslag ändrar det grundläggande sättet som Direct3D rastrerar texturerade polygoner med hjälp av de texturkoordinater som anges för varje hörn. Vid rastrering av en polygon interpolerar systemet mellan strukturkoordinaterna vid var och en av polygonens hörn för att fastställa de texels som ska användas för varje pixel i polygonen. Normalt behandlar systemet strukturen som ett 2D-plan och interpolerar nya virvel genom att ta den kortaste vägen från punkt A inom en textur till punkt B. Om punkt A representerar positionen u, v (0,8, 0,1) och punkt B är på (0,1,0,1), ser interpolationslinjen ut som följande diagram.

diagram över en interpoleringslinje mellan två punkter

Observera att det kortaste avståndet mellan A och B i den här bilden går ungefär genom mitten av strukturen. Om du aktiverar u-textur eller v-texturens koordinatomslutning ändras hur Direct3D uppfattar den kortaste vägen mellan texturkoordinater i u-riktning och v-riktning. Enligt definition gör texturomslutning att rastreraren tar den kortaste vägen mellan texturkoordinatuppsättningar, förutsatt att 0.0 och 1.0 sammanfaller. Den sista biten är den knepiga delen: Du kan föreställa dig att aktivering av texturomslutning i en riktning får systemet att behandla en textur som om den var lindad runt en cylinder. Tänk till exempel på följande diagram.

diagram av en textur och två punkter lindade runt en cylinder

Föregående bild visar hur omslutning i u -riktningen påverkar hur systemet interpolerar strukturkoordinater. Med samma punkter som i exemplet för normala eller icke-komprimerade texturer kan du se att den kortaste vägen mellan punkterna A och B inte längre är över mitten av strukturen. Det är nu över gränsen där 0.0 och 1.0 finns tillsammans. Omslagning i v-riktningen är likartad, förutom att den sveper texturen runt en cylinder som ligger på sidan. Omslutning i både u-riktning och v-riktning är mer komplext. I den här situationen kan du föreställa dig texturen som en torusformad yta, eller munk.

Den vanligaste praktiska tillämpningen för texturomslagning är att utföra miljömappning. Vanligtvis visas ett objekt som är strukturerat med en miljökarta mycket reflekterande och visar en speglad bild av objektets omgivning i scenen. För den här diskussionens skull, föreställ dig ett rum med fyra väggar, var och en målad med bokstaven R, G, B, Y och motsvarande färger: röd, grön, blå och gul. Miljökartan för ett så enkelt rum kan se ut som följande bild.

bild av lodräta ränder av rött, grönt, blått och gult

Föreställ dig att rummets tak hålls upp av en perfekt reflekterande, fyrsidig pelare. Det är enkelt att mappa miljökartans struktur till pelaren, men att få pelaren att se ut som om den återspeglar bokstäver och färger är inte lika lätt. Följande diagram visar en trådram av pelare med tillämpliga strukturkoordinater listade nära de övre hörnen. Sömmen där omslag kommer att korsa kanterna på strukturen visas med en prickad linje.

diagram över en rektangel med en streckad linje

När omslutningen är aktiverad i u-riktningen visar den strukturerade pelaren färgerna och symbolerna från miljökartan på lämpligt sätt och i sömmen framför strukturen väljer rastreringen korrekt den kortaste vägen mellan strukturkoordinaterna, förutsatt att u-koordinaterna 0.0 och 1.0 delar samma plats. Den texturerade pelaren ser ut som följande illustration.

bild av en pelare som består av röda, gröna, blå och gula kvadranter

Om strukturomslutning inte är aktiverat interpolerar rastreringen inte i den riktning som behövs för att generera en trovärdig, reflekterad bild. Snarare innehåller området längst fram i pelaren en horisontellt komprimerad version av texellerna mellan u-koordinaterna 0,175 och 0,875, när de passerar genom mitten av strukturen. Wrap-effekten är förstörd.

Blanda inte ihop strukturomslutning med liknande namngivna strukturhanteringslägen. Texturomslagning utförs innan texturadressering. Kontrollera att strukturomslutningsdata inte innehåller några strukturkoordinater utanför intervallet [0.0, 1.0] eftersom detta ger odefinierade resultat. Mer information om struktur adressering finns i Struktur adressering lägen.

Förskjutningskarteomslag

Förskjutningskartor interpoleras av tessellationsmotorn. Eftersom omslutningsläget inte kan anges för tessellationsmotorn kan strukturomslutning inte utföras med förskjutningskartor. Ett program kan använda en uppsättning hörn som tvingar interpolationen att omslutas i valfri riktning. Programmet kan också ange den interpolation som ska utföras som en enkel linjär interpolation.

Texturer