Sampler (Direct3D 9 asm-ps)

Een sampler is een pseudo-register voor invoer voor een pixel shader, dat wordt gebruikt om de sampelingsfase te identificeren. Er zijn 16 pixel shader sampling fase registers: s0 tot s15. Daarom kunnen maximaal 16 textuuroppervlakken worden gelezen in één arceringspas. De instructies die een samplerregister gebruiken, zijn texld en texldp.

De sampler moet worden ingesteld voordat deze wordt gebruikt met de dcl_samplerType (sm2, sm3 - ps asm) instructie.

Pixel shader-versies 1_1 1_2 1_3 1_4 2_0 2_sw 2_x 3_0 3_sw
Sampler x x x x x

 

Samplers zijn pseudoregisters omdat u ze niet rechtstreeks kunt lezen of schrijven.

Een sample-eenheid komt overeen met de textuurmonsternemingsfase, waarbij de monsterspecifieke status van SetSamplerStatewordt ingekapseld. Elke sampler identificeert een uniek patroonoppervlak, dat is ingesteld op de bijbehorende sampler met behulp van de SetTexture. Hetzelfde patroonoppervlak kan echter worden ingesteld bij meerdere samplers.

Tijdens het tekenen kan een textuur niet tegelijkertijd worden ingesteld als een renderdoelwit en een textuur in een fase.

Een sampler kan worden weergegeven als het enige argument in de textuurladinstructie: texldl - ps.

In ps_3_0, als een sampler wordt gebruikt, moet deze worden gedeclareerd aan het begin van het shader-programma met behulp van de dcl_samplerType (sm2, sm3 - ps asm) instructie.

Het samplen van een textuur met een hogere dimensie dan aanwezig is in de textuurcoördinaten is illegaal. Als u een textuur bemonstert met een lagere dimensie dan in de textuurcoördinaten aanwezig is, worden de extra textuurcoördinaten genegeerd.

registreert