Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Obtékání textury mění základní způsob, jakým Direct3D rasterizuje texturované mnohoúhelníky pomocí souřadnic textury zadaných pro každý vrchol. Při rastrování mnohoúhelníku systém interpoluje mezi souřadnicemi textury v každém z vrcholů mnohoúhelníku, aby určil texely, které by se měly použít pro každý pixel mnohoúhelníku. Systém za normálních okolností považuje texturu za 2D rovinu a interpoluje nové texely tím, že vezme nejkratší trasu z bodu A v rámci textury do bodu B. Pokud bod A představuje pozici u, v (0,8, 0,1) a bod B je na (0,1,0,1), čára interpolace vypadá jako následující diagram.
Všimněte si, že nejkratší vzdálenost mezi A a B v tomto obrázku běží zhruba uprostřed textury. Povolením obíhání souřadnic textury v u-směru nebo v-směru se změní způsob, jakým Direct3D vnímá nejkratší trasu mezi souřadnicemi textury v u-směru a v v-směru. Obtékání textury způsobí, že rastrovač vezme nejkratší trasu mezi sadami souřadnic textury za předpokladu, že se shodují hodnoty 0,0 a 1,0. Poslední část je ta složitá: Můžete si představit, že když povolíte obtékání textury v jednom směru, systém bude s texturou zacházet, jako by byla obtočena kolem válce. Představte si například následující diagram.
Předchozí obrázek znázorňuje, jak obtékání v u - směru ovlivňuje, jak systém interpoluje souřadnice textury. Pomocí stejných bodů jako v příkladu pro normální nebo nerovinné textury můžete vidět, že nejkratší trasa mezi body A a B již nevede středem textury; teď vede přes hranici, kde se společně objevují 0.0 a 1.0. Obtékání ve směru v- je podobné, s tím rozdílem, že obtéká texturu kolem válce, který leží na boku. Zabalení ve směrech u i v je složitější. V této situaci si můžete představit texturu jako torus nebo prstenec.
Nejběžnější praktickou aplikací pro zabalení textury je provést mapování prostředí. Objekt s texturou z mapy prostředí se obvykle zobrazuje jako silně odrážející a ukazuje zrcadlený obraz okolí objektu. Pro účely této diskuze si představte místnost se čtyřmi stěnami, každý z nich malovaný písmenem R, G, B, Y a odpovídajícími barvami: červená, zelená, modrá a žlutá. Mapa prostředí pro takovou jednoduchou místnost může vypadat jako na následujícím obrázku.
Představte si, že strop místnosti je podepřen dokonale reflexním, čtyřstranným sloupem. Mapování textury mapy prostředí na pilíř je jednoduché; aby pilíř vypadal, jako by odrážel písmena a barvy, není tak snadné. Následující diagram znázorňuje drátový rám pilíře s příslušnými souřadnicemi textury uvedenými v blízkosti vrcholů. Šev, kde se obal kříží přes hrany textury, je označen tečkovanou čárou.
Když je obtékání povoleno ve směru u, texturovaný pilíř zobrazuje barvy a symboly z mapy prostředí správně a na švu v přední části textury rasterizátor správně zvolí nejkratší trasu mezi souřadnicemi textury za předpokladu, že souřadnice u 0,0 a 1,0 sdílejí stejné umístění. Texturovaný pilíř vypadá jako na následujícím obrázku.
Pokud není povolené opakování textury, rastrovač neprovádí interpolaci ve směru potřebném k vygenerování věrohodného, odraženého obrazu. Místo toho oblast na přední straně pilíře obsahuje vodorovně komprimovanou verzi texelů mezi souřadnicemi u 0,175 a 0,875, protože procházejí středem textury. Efekt zalamování je zničen.
Nezaměňujte obtékání textury s podobnými pojmenovanými režimy adresování textury. Obtékání textury se provádí před adresováním textury. Ujistěte se, že data obtékání textury neobsahují žádné souřadnice textury mimo rozsah [0,0, 1,0], protože výsledkem budou nedefinované výsledky. Další informace o adresování textury naleznete v tématu režimy adresování textury.
obtékání mapy posunutí
Mapy posunu jsou interpolovány tesselovacím enginem. Vzhledem k tomu, že režim obtékání nelze zadat pro modul tessellation, nelze obtékání textury provést pomocí map posunutí. Aplikace může použít sadu vrcholů, které vynutí interpolaci zabalit libovolným směrem. Aplikace může také určit interpolaci, která se má provést jako jednoduchá lineární interpolace.
související témata