IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Guide de programmation Direct3D 10


précédentsommairesuivant

III. Ressources (Direct3D 10)

Une ressource est une zone mémoire à laquelle le pipeline Direct3D peut accéder. Afin que le pipeline accède efficacement à la mémoire, les données qui sont fournies au pipeline (comme une géométrie d'entrée, des ressources de shader, des textures, etc.) doivent être enregistrées dans une ressource. Il existe deux types de ressources dont dérivent toutes les ressources Direct3D : les tampons et les textures. Jusqu'à 128 ressources peuvent être actives à chaque étape du pipeline.

Typiquement, chaque application créera de nombreuses ressources. Des exemples de ressources incluent : vertex buffers, index buffer, constant buffer, textures et ressources shader. Il existe plusieurs options qui déterminent comment on peut utiliser les ressources. Vous pouvez créer des ressources fortement typées ou sans type ; vous pouvez contrôler si les ressources peuvent à la fois être lues et écrites ; vous pouvez rendre des ressources accessibles seulement au CPU, seulement au processeur graphique, ou aux deux. Naturellement, Il y aura un marchandage vitesse contre fonctionnalité - plus vous accordez de fonctionnalité à une ressource, moins vous pouvez attendre de performance.

Puisqu'une application utilise souvent de nombreuses textures, Direct3D introduit également le concept de tableau de texture pour simplifier la gestion des textures. Un tableau de texture contient une ou plusieurs textures (toutes de même type et de mêmes dimensions) qui peuvent être indexées depuis une application ou par des shaders. Les tableaux de texture vous permettent d'utiliser une unique interface avec de multiples index pour accéder à de nombreuses textures. Vous pouvez créer autant de tableaux de texture que vous en avez besoin 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 du pipeline qui les utilisera. Cela se fait en appelant une API de liaison, ce qui place un pointeur sur la ressource. Puisque plus d'une étape du pipeline peut avoir besoin d'accéder à la même ressource, Direct3D 10 introduit le concept de vue ressource (resource view). Un affichage identifie la portion d'une ressource à laquelle il est possible d'accéder. Vous pouvez créer m affichages d'une ressource et les lier à n étapes de pipeline, en supposant que vous suivez les règles de liaison pour les ressources partagées (sinon le runtime enverra des messages d'erreur pendant la compilation).

Une vue ressource fournit un modèle général d'accès à une ressource (textures, tampons, etc.). Puisque vous pouvez utiliser un affichage pour dire au runtime à quelles données accéder et comment y accéder, les vues ressource vous permettent de créer des ressources sans type. 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 quand la ressource est liée au pipeline. Les affichages exposent de nombreuses capacités nouvelles pour utiliser les ressources, comme la possibilité de relire des surfaces profondeur/stencil dans le shader, ce qui génère des cubemaps dynamiques en une seule étape, et le rendu simultané de plusieurs coupes d'un volume.

Pour en savoir plus sur les types de ressources de base, les tableaux de texture, et comment créer et utiliser des ressources, voyez ces autres sujets :


précédentsommairesuivant

Cet article est une traduction d'un article original de Microsoft en anglais. Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Microsoft. Lire l'article original Ici.