[D3D] Scissor Test - wann?
-
In der Direct3D Dokumentation steht zum Scissor-Test folgendes:
Scissor testing is done just after pixel processing is completed by a pixel shader or the fixed function pipeline, as shown below.
Pixel Shader
Scissor Test
Z Test
Stencil Test
...
Alpha Blend
...
Write MaskMit jeweils einem Pfeil nach unten. Lese ich also richtig heraus, dass man den Scissor Test nicht verwenden kann, um den Pixelshader zu sparen (beispielsweise wenn man weiß, dass später dort das GUI drüber gemalt wird)? Und anscheinend machen doch einige Entwickler einen eigenen Z-Pass oder sortieren die Objekte so, dass das nächstliegende zuerst gezeichnet wird. Der würde nach diesem Bild aber auch nicht den Pixelshader sparen (ich dachte eigentlich, das wäre die Hauptmotivation dafür). Verstehe ich das hier richtig? Und wenn ja, was kann ich machen um zu vermeiden, dass ein Bereich gezeichnet wird, wo später mein GUI hin kommt (aus Optimierungsgründen)?
-
Ein Test von mir hat jetzt allerdings ergeben, dass es schon Performance bringt (wenn das Programm durch das pixel shading limitiert ist). Ich nehme an, diese Beschreibung mit dem Pixelshading vor dem scissor/z test ist eher so konzeptionell zu verstehen...
-
in der hardware uebernimmt das scissoring einen grossteil des clippings.
das ruehrt daher, dass 3d-frustum-clipping neue eckpunkte erzeugen wuerde - was man vermeiden will.
der scissor-test passiert also weit vor dem pixel-shader und auch nicht pro-pixel.
-
Macht auch Sinn. Nach meinem Verständnis ist das Scissoring ja nichts anderes als das Clipping. Danke für die Auskunft.
