Texturansichten (Direct3D 10)

In Direct3D 10 wird auf Texturressourcen über eine Ansicht zugegriffen, die ein Mechanismus für die Hardwareinterpretation einer Ressource im Arbeitsspeicher ist. Eine Ansicht ermöglicht es einer bestimmten Pipelinephase, nur auf die benötigten Unterressourcen in der von der Anwendung gewünschten Darstellung zuzugreifen.

Eine Ansicht unterstützt das Konzept einer typlosen Ressource. Eine typlose Ressource ist eine Ressource, die mit einer bestimmten Größe, aber nicht mit einem bestimmten Datentyp erstellt wird. Die Daten werden dynamisch interpretiert, wenn sie an die Pipeline gebunden sind.

Die folgende Abbildung zeigt ein Beispiel für die Bindung eines 2D-Texturarrays mit 6 Texturen als Shaderressource, indem eine Shaderressourcenansicht dafür erstellt wird. Die Ressource wird dann als Array von Texturen adressiert. (Hinweis: Eine Unterressource kann nicht gleichzeitig als Eingabe und Ausgabe an die Pipeline gebunden werden.)

Abbildung eines Texturarrays mit sechs Texturen

Wenn Sie ein 2D-Texturarray als Renderziel verwenden, kann die Ressource als Array von 2D-Texturen (6 in diesem Beispiel) mit Mipmapebenen (3 in diesem Beispiel) angezeigt werden.

Erstellen Sie ein Ansichtsobjekt für ein Renderziel, indem Sie CreateRenderTargetView aufrufen. Rufen Sie dann OMSetRenderTargets auf, um die Renderzielansicht auf die Pipeline festzulegen. Rendern Sie in die Renderziele, indem Sie Draw aufrufen und renderTargetArrayIndex verwenden, um in die richtige Textur im Array zu indizieren. Sie können eine Unterressource (mipmap-Ebene, Arrayindexkombination) verwenden, um eine Bindung an ein beliebiges Array von Unterressourcen zu erstellen. Sie können also an die zweite mipmap-Ebene binden und diese bestimmte Mipmap-Ebene nur aktualisieren, wenn Sie möchten, wie in der folgenden Abbildung gezeigt.

Abbildung der Bindung nur an die zweite Mipmap-Ebene eines Texturarrays

Unterschiede zwischen Direct3D 9 und Direct3D 10:

  • In Direct3D 10 binden Sie eine Ressource nicht mehr direkt an die Pipeline, erstellen eine Ansicht einer Ressource und legen dann die Ansicht auf die Pipeline fest. Dies ermöglicht die Überprüfung und Zuordnung in der Laufzeit und dem Treiber bei der Erstellung der Ansicht, wodurch die Typüberprüfung zur Bindungszeit minimiert wird.

 

Ressourcen (Direct3D 10)