Sampler (Direct3D 9 asm-ps)
Sampler to pseudorejestr wejściowy dla pikselowego shaderu, który służy do identyfikowania etapu próbkowania. Istnieje 16 rejestrów etapów próbkowania dla shaderów pikseli: od s0 do s15. W związku z tym w jednym przejściu cieniatora można odczytać maksymalnie 16 powierzchni teksturowych. Instrukcje korzystające z rejestru próbnika to texld i texldp.
Próbkator musi być zadeklarowany przed użyciem za pomocą instrukcji dcl_samplerType (sm2, sm3 - ps asm).
Wersje cieniowania pikseli | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_sw | 2_x | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
Próbnik | x | x | x | x | x |
Próbkatory są pseudorejestrami, ponieważ nie można ich bezpośrednio odczytywać ani zapisywać.
Jednostka próbkowania odpowiada etapowi próbkowania tekstury, hermetyzując stan specyficzny dla próbkowania dostarczony przez SetSamplerState. Każdy sampler jednoznacznie identyfikuje pojedynczą powierzchnię tekstury, która jest przypisana do odpowiedniego samplera przy użyciu SetTexture. Można jednak ustawić tę samą powierzchnię tekstury na wielu próbkach.
W czasie rysowania tekstura nie może być jednocześnie ustawiona jako docelowa tekstura renderowania i tekstura w etapie.
Próbnik może występować jako jedyny argument w poleceniu ładowania tekstury: texldl - ps.
W ps_3_0, jeśli jest używany próbkator, należy go zadeklarować na początku programu cieniowania przy użyciu instrukcji dcl_samplerType (sm2, sm3 - ps asm).
Próbkowanie tekstury o wyższym wymiarze niż występuje we współrzędnych tekstury jest nielegalne. Próbkowanie tekstury o niższym wymiarze niż w współrzędnych tekstury zignoruje dodatkowe współrzędne tekstury.
Tematy pokrewne