Share via


Ressources

Une ressource est une zone de mémoire accessible au pipeline Direct3D. Pour permettre un accès efficace du pipeline à la mémoire, les données fournies au pipeline (géométrie d’entrée, ressources des nuanceurs et textures) doivent être stockées dans une ressource. Il existe deux types de ressource dont dérivent l’ensemble des ressources Direct3D : la mémoire tampon et la texture. Jusqu’à 128 ressources peuvent être actives à chaque phase du pipeline.

Chaque application crée généralement de nombreuses ressources. Exemples de ressources : mémoires tampons de vertex, mémoire tampon d’index, mémoire tampon constante, textures et ressources de nuanceur. Il existe plusieurs options qui déterminent comment les ressources peuvent être utilisées. Vous pouvez créer des ressources fortement typées ou moins typées ; vous pouvez contrôler si les ressources disposent à la fois d’un accès en lecture et en écriture ; vous pouvez rendre les ressources accessibles uniquement au processeur, au GPU ou aux deux. Naturellement, il y aura un compromis entre la vitesse et les fonctionnalités : plus vous autorisez une ressource à disposer de fonctionnalités, moins vous devez vous attendre à des performances.

Étant donné qu’une application utilise souvent de nombreuses textures, Direct3D a également le concept d’un tableau de textures pour simplifier la gestion des textures. Un tableau de textures contient une ou plusieurs textures (toutes de même type et dimensions) qui peuvent être indexées à partir d’une application ou par des nuanceurs. Les tableaux de textures vous permettent d’utiliser une seule interface avec plusieurs index pour accéder à de nombreuses textures. Vous pouvez créer autant de tableaux de textures que nécessaire pour gérer différents types de textures.

Une fois que vous avez créé les ressources que votre application utilisera, vous connectez ou liez chaque ressource aux étapes de pipeline qui les utiliseront. Pour ce faire, appelez une API de liaison, qui prend un pointeur vers la ressource. Étant donné que plusieurs étapes de pipeline peuvent avoir besoin d’accéder à la même ressource, Direct3D a le concept d’un affichage des ressources. Une vue identifie la partie d’une ressource accessible. Vous pouvez créer des vues m ou une ressource et les lier à n étapes de pipeline, en supposant que vous suivez les règles de liaison pour la ressource partagée (le runtime génère des erreurs au moment de la compilation si ce n’est pas le cas).

Une vue de ressources fournit un modèle général pour l’accès à une ressource (par exemple, les textures ou les mémoires tampons). Étant donné que vous pouvez utiliser une vue pour indiquer au runtime à quelles données accéder et comment y accéder, les vues de ressources vous permettent de créer des ressources de type moins. Autrement dit, vous pouvez créer des ressources pour une taille donnée au moment de la compilation, puis déclarer le type de données dans la ressource lorsque la ressource est liée au pipeline. Les vues exposent de nombreuses fonctionnalités permettant d’utiliser des ressources, telles que la possibilité de lire les surfaces de profondeur/gabarit dans le nuanceur, la génération de cubemaps dynamiques en une seule passe et le rendu simultané sur plusieurs tranches d’un volume.

Dans cette section

Rubrique Description

Types de ressources

Différents types de ressources ont une disposition (ou empreinte mémoire) distincte. Toutes les ressources utilisées par le pipeline Direct3D dérivent de deux types de ressources de base : les mémoires tampons et les textures. Une mémoire tampon est une collection de données brutes (éléments) ; une texture est une collection de texels (éléments de texture).

Choix d’une ressource

Une ressource est une collection de données utilisée par le pipeline 3D. La création de ressources et la définition de leur comportement constituent la première étape de la programmation de votre application. Ce guide traite des rubriques de base pour le choix des ressources requises par votre application.

Copie et consultation des données des ressources

Les indicateurs d’utilisation indiquent comment l’application a l’intention d’utiliser les données de ressource pour placer les ressources dans la zone de mémoire la plus performante possible. Les données de ressource sont copiées entre les ressources afin que le processeur ou le GPU puisse y accéder sans affecter les performances.

Affichages de texture

Dans Direct3D, les ressources de texture sont accessibles avec une vue, qui est un mécanisme d’interprétation matérielle d’une ressource en mémoire. Une vue permet à une étape de pipeline particulière d’accéder uniquement aux sous-ressources dont elle a besoin, dans la représentation souhaitée par l’application.

 

Systèmes de coordonnées

Guide d’apprentissage de Direct3D Graphics

Règles en matière de virgule flottante

Conversion de types de données