Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

Utilisation de ressources 3D dans vos jeux et applications

Cet article explique comment utiliser Visual Studio pour traiter les ressources 3D et les inclure dans vos builds.

Une fois que vous avez utilisé les outils dans Visual Studio pour créer des ressources 3D, l'étape suivante consiste à les utiliser dans votre application. Mais avant de pouvoir les utiliser, vos ressources doivent être converties dans un format compatible avec DirectX. Pour vous aider à transformer vos ressources, Visual Studio fournit des personnalisations de la build pour chaque type de ressource qu'il peut produire. Pour inclure les ressources dans votre build, il vous suffit de configurer votre projet pour utiliser les personnalisations de la build, d'ajouter les ressources à votre projet, puis de configurer les ressources pour qu'elles utilisent la personnalisation de la build appropriée. Ensuite, vous pouvez charger les ressources dans votre application et les utiliser en créant et en renseignant des ressources DirectX comme vous le feriez dans une autre application DirectX.

Avant de déployer vos ressources 3D dans le cadre de votre build, Visual Studio doit connaître les types de ressources que vous souhaitez déployer. Visual Studio connaît déjà de nombreux types de fichiers communs, mais étant donné que seuls certains genres d'applications utilisent des ressources 3D, Visual Studio ne considère pas qu'un projet va générer ces types de fichiers. Vous pouvez indiquer à Visual Studio que votre application utilise ces types de ressources à l'aide des fichiers de personnalisation de la build fournis pour chaque type de ressource, qui indiquent à Visual Studio comment gérer différents types de fichiers de manière utile. Comme ces personnalisations sont appliquées pour chaque projet, tout ce que vous devez faire consiste à ajouter les personnalisations appropriées à votre projet.

Pour ajouter les personnalisations de la build à votre projet

  1. Dans l'Explorateur de solutions, ouvrez le menu contextuel du projet, puis choisissez Dépendances de build, Personnalisations de la build. La boîte de dialogue Fichiers de personnalisation de la build Visual C++ s'affiche.

  2. Sous Fichiers de personnalisation de la build disponibles, activez les cases à cocher correspondant aux types de ressources à utiliser dans votre projet, comme il est décrit dans le tableau suivant :

    Type de ressource

    Nom de personnalisation de la build

    Textures et images

    ImageContentTask (.targets, .props)

    Modèles 3D

    MeshContentTask (.targets, .props)

    Shaders

    ShaderGraphContentTask(.targets, .props)

  3. Cliquez sur le bouton OK.

Maintenant que votre projet sait les différents types de ressources 3D à utiliser, l'étape suivante consiste à lui indiquer les fichiers qui sont des ressources 3D et les types de ressources que ces fichiers contiennent.

Pour ajouter un composant à votre build

  1. Dans l'Explorateur de solutions, dans votre projet, ouvrez le menu contextuel d'une ressource, puis choisissez Propriétés. La boîte de dialogue Page de propriétés de la ressource s'affiche.

  2. Vérifiez que les propriétés Configuration et Platform ont les valeurs auxquelles vous souhaitez que vos modifications s'appliquent.

  3. Sous Propriétés de configuration, choisissez Général, puis dans la grille des propriétés, sous Général, affectez à la propriété Type d'élément le type d'élément de pipeline de contenu approprié. Par exemple, pour un fichier image ou un fichier de texture, choisissez le pipeline de contenu d'image.

    Remarque importante Important

    Par défaut, Visual Studio suppose que de nombreux types de fichiers image doivent être classés à l'aide du type d'élément Image intégré dans Visual Studio. Par conséquent, vous devez modifier la propriété Type d'élément de chaque image qui doit être traité par le pipeline de contenu d'image. D'autres types de fichiers sources de contenu de pipeline pour les modèles 3D et les graphiques shaders visuels ont comme valeur par défaut le Type d'élément correct.

  4. Cliquez sur le bouton OK.

Voici les trois types d'éléments de contenu de pipeline et leurs types de fichiers source et de sortie associés.

Type d'élément

Types de fichiers sources

Format du fichier de sortie

Pipeline de contenu d'image

Portable Network Graphics (.png)

JPEG (.jpg, .jpeg, .jpe, .jfif)

Direct Draw Surface (.dds)

Graphics Interchange Format (.gif)

Bitmap (.bmp, .dib)

Format d'image TIFF (Tagged Image File Format, .tif, .tiff)

Targa (.tga)

DirectDraw Surface (.dds)

Pipeline de contenu de maillage

Fichier AutoDesk FBX Interchange (.fbx)

Fichier DAE Collada (.dae)

Fichier Wavefront OBJ (.obj)

Fichier de maillage 3D (.cmo)

Pipeline de contenu de shader

Graphe de nuanceur visuel (.dgsl)

Sortie du nuanceur de pixels (.cso)

Vous pouvez définir les propriétés du pipeline de contenu de chaque fichier de ressources afin qu'il soit généré de manière spécifique.

Pour configurer les propriétés de contenu de pipeline

  1. Dans l'Explorateur de solutions, dans votre projet, ouvrez le menu contextuel du fichier de ressources, puis choisissez Propriétés. La boîte de dialogue Page de propriétés de la ressource s'affiche.

  2. Vérifiez que les propriétés Configuration et Platform ont les valeurs auxquelles vous souhaitez que vos modifications s'appliquent.

  3. Sous Propriétés de configuration, choisissez le nœud de pipeline de contenu (par exemple, Pipeline de contenu d'image pour les ressources d'image et de texture), puis dans la grille des propriétés, affectez aux propriétés les valeurs appropriées. Par exemple, pour générer des mipmaps pour une ressource de texture au moment de la génération, appliquez à la propriété Générer des mips la valeur Oui.

  4. Cliquez sur le bouton OK.

Hh972446.collapse_all(fr-fr,VS.120).gifConfiguration du pipeline de contenu d'image

Lorsque vous utilisez l'outil de pipeline du contenu de l'image pour générer un composant de texture, vous pouvez compresser la texture de plusieurs façons, indiquer si les niveaux de MIP doivent être générés au moment de la génération, puis modifiez le nom du fichier de sortie.

Propriété

Description

Compresser

Spécifie le type de compression utilisé pour le fichier de sortie.

Les options disponibles sont les suivantes :

  • Aucune compression

  • Compression BC1_UNORM

  • Compression BC1_UNORM_SRGB

  • Compression BC2_UNORM

  • Compression BC2_UNORM_SRGB

  • Compression BC3_UNORM

  • Compression BC3_UNORM_SRGB

  • Compression BC4_UNORM

  • Compression BC4_SNORM

  • Compression BC5_UNORM

  • Compression BC5_SNORM

  • Compression BC6H_UF16

  • Compression BC6H_SF16

  • Compression BC7_UNORM

  • Compression BC7_UNORM_SRGB

Pour plus d'informations sur les formats de compression pris en charge dans les différentes versions de DirectX, consultez le guide de programmation pour DXGI.

Générez des mips

Oui pour générer une chaîne MIP complète au moment de la génération et l'inclure dans le fichier de sortie ; sinon, Non. Si Non et que le fichier source contient déjà une chaîne mipmap, le fichier de sortie aura une chaîne MIP ; sinon, le fichier de sortie n'a aucune chaîne MIP.

Sortie de contenu

Spécifie le nom du fichier de sortie.

Remarque importante Important
La modification de l'extension du fichier de sortie n'a aucun effet sur son format de fichier.

Hh972446.collapse_all(fr-fr,VS.120).gifConfiguration du pipeline de contenu de maillage

Lorsque vous utilisez l'outil du pipeline de contenu de maillage pour générer un composant de maillage, vous pouvez modifier le nom du fichier de sortie.

Propriété

Description

Sortie de contenu

Spécifie le nom du fichier de sortie.

Remarque importante Important
La modification de l'extension du fichier de sortie n'a aucun effet sur son format de fichier.

Hh972446.collapse_all(fr-fr,VS.120).gifConfiguration du pipeline de contenu de Shader

Lorsque vous utilisez l'outil du pipeline de contenu de nuanceur pour générer un composant de nuanceur, vous pouvez modifier le nom du fichier de sortie.

Propriété

Description

Sortie de contenu

Spécifie le nom du fichier de sortie.

Remarque importante Important
La modification de l'extension du fichier de sortie n'a aucun effet sur son format de fichier.

Hh972446.collapse_all(fr-fr,VS.120).gifUtilisation des textures et des images

Direct3D fournit des fonctions pour créer des ressources de texture. Dans Direct3D 11, la bibliothèque d'utilitaires D3DX11 fournit des fonctions supplémentaires pour créer des ressources de texture et des affichages de ressources directement à partir des fichiers image. Pour plus d'informations sur la création d'une ressource de texture dans Direct3D 11, consultez Textures (page éventuellement en anglais). Pour plus d'informations sur l'utilisation de la bibliothèque D3DX11 pour créer une ressource de texture ou une vue de ressource à partir d'un fichier image, consultez Comment : initialiser une texture à partir d'un fichier.

Hh972446.collapse_all(fr-fr,VS.120).gifUtilisation des modèles 3D

Direct3D 11 ne fournit pas de fonctions pour créer des ressources à partir des modèles 3D. Au lieu de cela, vous devez écrire le code qui lit le fichier de modèle 3D et crée les mémoires tampons de vertex et d'index qui représentent le modèle 3D et toutes les ressources que le modèle nécessite : par exemple, textures ou nuanceurs.

Hh972446.collapse_all(fr-fr,VS.120).gifUtilisation de nuanceurs

Direct3D fournit des fonctions pour créer des ressources de nuanceur et les lier au pipeline graphique programmable. Pour plus d'informations sur la création d'une ressource de nuanceur dans Direct3D et sa liaison au pipeline, consultez Guide de programmation pour HLSL (page éventuellement en anglais).

Dans le pipeline graphique programmable, chaque étape du pipeline doit fournir à l'étape suivante du pipeline un résultat mis en forme de manière à être compris. Comme le Concepteur Shader peut uniquement créer des nuanceurs de pixels, cela signifie qu'il appartient à votre application de vérifier que les données qu'elle reçoit sont au format attendu. Plusieurs étapes du Shader programmables se produisent avant le nuanceur de pixels et effectuent des transformations géométriques (le nuanceur de sommets, le nuanceur Hull Shader, le nuanceur de domaine et le nuanceur de géométrie). L'étape de pavage non programmable se produit également avant le nuanceur de pixels. Quelle que soit l'étape qui précède directement le nuanceur de pixels, son résultat doit se présenter au format suivant :


struct PixelShaderInput
{
    float4 pos : SV_POSITION;
    float4 diffuse : COLOR;
    float2 uv : TEXCOORD0;
    float3 worldNorm : TEXCOORD1;
    float3 worldPos : TEXCOORD2;
    float3 toEye : TEXCOORD3;
    float4 tangent : TEXCOORD4;
    float3 normal : TEXCOORD5;
};

Selon les nœuds du concepteur Shader que vous utilisez dans votre nuanceur, vous devrez peut-être fournir des informations supplémentaires formatées en fonction de ces définitions :


Texture2D Texture1 : register( t0 );
Texture2D Texture2 : register( t1 );
Texture2D Texture3 : register( t2 );
Texture2D Texture4 : register( t3 );
Texture2D Texture5 : register( t4 );
Texture2D Texture6 : register( t5 );
Texture2D Texture7 : register( t6 );
Texture2D Texture8 : register( t7 );

TextureCube CubeTexture1 : register( t8 );
TextureCube CubeTexture2 : register( t9 );
TextureCube CubeTexture3 : register( t10 );
TextureCube CubeTexture4 : register( t11 );
TextureCube CubeTexture5 : register( t12 );
TextureCube CubeTexture6 : register( t13 );
TextureCube CubeTexture7 : register( t14 );
TextureCube CubeTexture8 : register( t15 );

SamplerState TexSampler : register( s0 );

cbuffer MaterialVars : register (b0)
{
    float4 MaterialAmbient;
    float4 MaterialDiffuse;
    float4 MaterialSpecular;
    float4 MaterialEmissive;
    float MaterialSpecularPower;
};

cbuffer LightVars : register (b1)
{
    float4 AmbientLight;
    float4 LightColor[4];
    float4 LightAttenuation[4];
    float3 LightDirection[4];
    float LightSpecularIntensity[4];
    uint IsPointLight[4];
    uint ActiveLights;
}

cbuffer ObjectVars : register(b2)
{
    float4x4 LocalToWorld4x4;
    float4x4 LocalToProjected4x4;
    float4x4 WorldToLocal4x4;
    float4x4 WorldToView4x4;
    float4x4 UVTransform4x4;
    float3 EyePosition;
};

cbuffer MiscVars : register(b3)
{
    float ViewportWidth;
    float ViewportHeight;
    float Time;
};

Titre

Description

Comment : exporter une texture qui contient des mipmaps

Décrit comment utiliser le pipeline de contenu d'image pour exporter une texture qui contient des mipmap précalculées.

Comment : exporter une texture qui possède des valeurs alpha prémultipliées

Décrit comment utiliser le pipeline de contenu d'image pour exporter une texture qui contient des valeurs alpha prémultipliées.

Comment : exporter une texture pour l'utiliser avec des applications Javascript ou Direct2D

Décrit comment utiliser le pipeline de contenu d'image pour exporter une texture qui peut être utilisée dans une application Direct2D ou Javascript.

Utilisation de ressources 3D pour les jeux et les applications

Décrit les outils de modification que Visual Studio fournit pour la création et la manipulation des composants 3D, qui incluent des textures et des images, des modèles 3D et des nuanceurs.

Comment : exporter un nuanceur

Décrit comment exporter un nuanceur depuis le concepteur Shader.

Ajouts de la communauté

Afficher:
© 2014 Microsoft