Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aplikacja Direct3D może przypisywać współrzędne tekstury do dowolnego wierzchołka dowolnego elementu pierwotnego. Aby uzyskać szczegółowe informacje, zobacz Współrzędne tekstury (Direct3D 9). Zazwyczaj współrzędne tekstury u-i v, które przypisujesz do wierzchołka, znajdują się w zakresie od 0,0 do 1,0 włącznie. Jednak przypisując współrzędne tekstury poza tym zakresem, można utworzyć pewne specjalne efekty teksturowe.
Kontrolujesz, co direct3D wykonuje z współrzędnymi tekstury, które znajdują się poza zakresem [0.0, 1.0], ustawiając tryb adresowania tekstury. Na przykład aplikacja może ustawić tryb adresowania tekstury, tak aby tekstura została powielona w obrębie prymitywu.
Funkcja Direct3D umożliwia aplikacjom wykonywanie zawijania tekstur. Należy pamiętać, że ustawienie trybu adresowania tekstury na D3DTADDRESS_WRAP nie jest takie samo jak wykonywanie zawijania tekstur. Ustawienie trybu adresowania tekstury na D3DTADDRESS_WRAP powoduje zastosowanie wielu kopii tekstury źródłowej do bieżącego prymitywu, a włączenie zawijania tekstur zmienia sposób, w jaki system rasteryzuje wielokąty teksturowane. Aby uzyskać szczegółowe informacje, zobacz Owijanie tekstury (Direct3D 9).
Włączenie owijania tekstur skutecznie sprawia, że współrzędne tekstury poza zakresem [0.0, 1.0] stają się nieprawidłowe, a zachowanie rasteryzacji takich wadliwych współrzędnych tekstury jest niezdefiniowane w takim przypadku. Po włączeniu zawijania tekstur nie są używane tryby adresowania tekstur. Zadbaj o to, aby aplikacja nie określała współrzędnych tekstury niższej niż 0,0 lub wyższej niż 1,0, gdy jest włączone zawijanie tekstur.
Ustawianie trybu adresowania
Tryby adresowania tekstur dla poszczególnych etapów tekstury można ustawić, wywołując metodę IDirect3DDevice9::SetSamplerState. Określ żądany identyfikator etapu tekstury w parametrze Sampler. Ustaw parametr Type na wartości D3DSAMP_ADDRESSU, D3DSAMP_ADDRESSV lub D3DSAMP_ADDRESSW, aby zaktualizować indywidualne tryby adresowania u-, v- lub w-. Parametr Value określa, który tryb jest ustawiany. Może to być dowolny element typu wyliczeniowego D3DTEXTUREADDRESS. Aby pobrać bieżący tryb adresowania etapu tekstury, wywołaj metodę IDirect3DDevice9::GetSamplerState, używając D3DSAMP_ADDRESSU, D3DSAMP_ADDRESSV lub D3DSAMP_ADDRESSW członków D3DSAMPLERSTATETYPE wyliczenia w celu zidentyfikowania trybu adresu, dla którego chcesz uzyskać informacje.
Ograniczenia urządzeń
Mimo że system ogólnie zezwala na współrzędne tekstury poza zakresem od 0,0 do 1,0 włącznie, ograniczenia sprzętowe często wpływają na zakres, w jakim współrzędne tekstury mogą leżeć poza tym zakresem. Urządzenie renderowania komunikuje ten limit w MaxTextureRepeat składowej struktury D3DCAPS9 podczas pobierania możliwości urządzenia. Wartość w tym elemencie opisuje pełny zakres współrzędnych tekstury dozwolonych przez urządzenie. Na przykład jeśli ta wartość to 128, współrzędne tekstury wejściowej muszą być przechowywane w zakresie -128.0 do +128.0. Przekazywanie wierzchołków ze współrzędnymi tekstury poza tym zakresem jest nieprawidłowe. To samo ograniczenie dotyczy współrzędnych tekstury generowanych w wyniku automatycznego generowania współrzędnych tekstury i przekształceń współrzędnych tekstury.
Interpretacja MaxTextureRepeat jest również zależna od bitu możliwości D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE. Po ustawieniu tego bitu wartość członka MaxTextureRepeat jest używana dokładnie jak opisano. Jeśli jednak D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE nie jest ustawiony, ograniczenia dotyczące powtarzania tekstury zależą od rozmiaru tekstury indeksowanej przez współrzędne tekstury. W tym przypadku MaxTextureRepeat musi być skalowany przez bieżący rozmiar tekstury na najwyższym poziomie szczegółowości, aby obliczyć prawidłowy zakres współrzędnych tekstury. Na przykład, biorąc pod uwagę wymiar tekstury 32 i MaxTextureRepeat 512, rzeczywisty prawidłowy zakres współrzędnych tekstury wynosi 512/32 = 16, więc współrzędne tekstury dla tego urządzenia muszą mieścić się w zakresie od -16.0 do +16.0.
Dodatkowe informacje na temat trybów adresowania tekstury znajdują się w następujących tematach.
- Tryb Adresowania Tekstury Wrap (Direct3D 9)
- tryb adresów tekstury dublowanej (Direct3D 9)
- Tryb adresowania tekstury "Clamp" (Direct3D 9)
- Tryb adresowania tekstury koloru obramowania (Direct3D 9)
Tematy pokrewne