Sampler (Direct3D 9 asm-ps)
Ein Sampler ist ein Eingabe-Pseudoregister für einen Pixel-Shader, der verwendet wird, um die Stichprobenphase zu identifizieren. Es gibt 16 Pixel-Shader-Samplingstufenregister: s0 bis s15. Daher können bis zu 16 Texturoberflächen in einem einzigen Shaderdurchlauf gelesen werden. Die Anweisungen, die ein Samplerregister verwenden, sind texld und texldp.
Der Sampler muss vor der Verwendung mit der anweisung dcl_samplerType (sm2, sm3 – ps asm) deklariert werden.
Pixel-Shaderversionen | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_sw | 2_x | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
Sampler | x | x | x | x | x |
Sampler sind Pseudoregister, da Sie sie nicht direkt lesen oder schreiben können.
Eine Samplingeinheit entspricht der Textur-Samplingphase, die den von SetSamplerState bereitgestellten samplingspezifischen Zustand kapselt. Jeder Sampler identifiziert eindeutig eine einzelne Texturoberfläche, die mithilfe von SetTexture auf den entsprechenden Sampler festgelegt wird. Die gleiche Texturoberfläche kann jedoch auf mehrere Sampler festgelegt werden.
Zur Zeichnungszeit kann eine Textur nicht gleichzeitig als Renderziel und Textur in einer Phase festgelegt werden.
Ein Sampler kann als einziges Argument in der Texturladeanweisung angezeigt werden: texldl - ps.
Wenn in ps_3_0 ein Sampler verwendet wird, muss er am Anfang des Shaderprogramms mit der anweisung dcl_samplerType (sm2, sm3 – ps asm) deklariert werden.
Das Sampling einer Textur mit einer höheren Dimension als in den Texturkoordinaten ist unzulässig. Beim Sampling einer Textur mit einer niedrigeren Dimension als in den Texturkoordinaten werden die zusätzlichen Texturkoordinaten ignoriert.
Zugehörige Themen