Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Ressource ist ein Bereich im Arbeitsspeicher, auf den von der Direct3D-Pipeline zugegriffen werden kann. Damit die Pipeline effizient auf den Arbeitsspeicher zugreifen kann, müssen Daten, die der Pipeline bereitgestellt werden (z. B. Eingabegeometrie, Shaderressourcen, Texturen usw.), in einer Ressource gespeichert werden. Es gibt zwei Arten von Ressourcen, von denen alle Direct3D-Ressourcen abgeleitet sind: ein Puffer oder eine Textur. Bis zu 128 Ressourcen können für jede Pipelinestufe aktiv sein.
Jede Anwendung erstellt in der Regel viele Ressourcen. Beispiele für Ressourcen sind: Vertexpuffer, Indexpuffer, Konstantenpuffer, Texturen und Shaderressourcen. Es gibt mehrere Optionen, die bestimmen, wie Ressourcen verwendet werden können. Sie können Ressourcen erstellen, die stark typisch oder weniger typisch sind. Sie können steuern, ob Ressourcen sowohl Lese- als auch Schreibzugriff haben; Sie können Ressourcen nur für die CPU, GPU oder beides zugänglich machen. Natürlich gibt es Geschwindigkeit im Vergleich zu Funktionalitätskonflikten – je mehr Funktionalität Sie für eine Ressource zulassen, desto weniger Leistung sollten Sie erwarten.
Da eine Anwendung häufig viele Texturen verwendet, führt Direct3D auch das Konzept eines Texturarrays ein, um die Texturverwaltung zu vereinfachen. Ein Texturarray enthält eine oder mehrere Texturen (alle gleichen Typs und Dimensionen), die innerhalb einer Anwendung oder von Shadern indiziert werden können. Mit Texturarrays können Sie eine einzelne Schnittstelle mit mehreren Indizes verwenden, um auf viele Texturen zuzugreifen. Sie können beliebig viele Texturarrays erstellen, um unterschiedliche Texturtypen zu verwalten.
Nachdem Sie die von Der Anwendung verwendeten Ressourcen erstellt haben, stellen Sie eine Verbindung her oder binden jede Ressource an die Pipelinephasen, die sie verwenden. Dazu wird eine Bindungs-API aufgerufen, die einen Zeiger auf die Ressource annimmt. Da mehr als eine Pipelinestufe Zugriff auf dieselbe Ressource benötigt, führt Direct3D 10 das Konzept einer Ressourcenansicht ein. Eine Ansicht identifiziert den Teil einer Ressource, auf die zugegriffen werden kann. Sie können m-Ansichten oder eine Ressource erstellen und an n-Pipelinephasen binden, vorausgesetzt, Sie befolgen Bindungsregeln für freigegebene Ressourcen (die Laufzeit generiert Fehler zur Kompilierungszeit, wenn sie nicht).
Eine Ressourcenansicht bietet ein allgemeines Modell für den Zugriff auf eine Ressource (Texturen, Puffer usw.). Da Sie eine Ansicht verwenden können, um die Laufzeit mitzuteilen, auf welche Daten zugegriffen werden soll und wie darauf zugegriffen werden kann, ermöglichen Ressourcenansichten das Erstellen weniger Ressourcen. Das heißt, Sie können Ressourcen für eine bestimmte Größe zur Kompilierungszeit erstellen und dann den Datentyp innerhalb der Ressource deklarieren, wenn die Ressource an die Pipeline gebunden wird. Ansichten bieten viele neue Funktionen für die Verwendung von Ressourcen, z. B. die Möglichkeit, Tiefen-/Schablonenoberflächen im Shader zu lesen, dynamische Cubemaps in einem einzigen Durchlauf zu generieren und gleichzeitig in mehreren Segmenten eines Volumes zu rendern.
Weitere Informationen zu den grundlegenden Ressourcentypen, Texturarrays und zum Erstellen und Verwenden von Ressourcen finden Sie in den folgenden anderen Themen:
- Ressourcentypen
- Auswählen einer Ressource
- Erstellen von Pufferressourcen
- Erstellen von Texturressourcen
- Kopieren und Zugreifen auf Ressourcendaten
- Speicherstruktur und Ansichten
- Blockkomprimierungs-
- Tabelle mit Ressourcenbeschränkungen
- Koordinatensysteme
- Floating-Point Regeln
- Datentypkonvertierungsregeln
- Zuordnen von Legacyformaten
Verwandte Themen