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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DirectX Discussion :

DXT5 et directX 11


Sujet :

DirectX

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 33
    Points : 23
    Points
    23
    Par défaut DXT5 et directX 11
    Bjour,
    je tente de faire un ptit projet 3D (premier en directX :s)
    Donc j'ai besoin de charger des textures depuis un fichier, l'image est compressée en dxt5 (==> http://en.wikipedia.org/wiki/S3_Texture_Compression)
    J'ai une gestions des textures dans l'appli, pas de prob pour charger des textures simples (2x2 pixels en format DXGI_FORMAT_R8G8B8A8_UNORM)
    Mais là ca coince, le fichier est chargé correctement, mais la texture ne ressemble a rien.
    Il me semblais avoir compris que le format Dxt5 est DXGI_FORMAT_BC3_UNORM, mais apparement non.
    Voici le code de création de texture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    void Texture::Init(int width, int height, int mipmap_levels, void * data_ptr, DXGI_FORMAT format = DXGI_FORMAT_R8G8B8A8_UNORM)
    		{
    			D3D11_TEXTURE2D_DESC desc = {};
    			desc.Width = width;
    			desc.Height = height;
    			desc.MipLevels = mipmap_levels;
    			desc.ArraySize = 1;
    			desc.Format = format;
    			desc.SampleDesc.Count = 1;
    			desc.Usage = D3D11_USAGE_DEFAULT;
    			desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
    			desc.CPUAccessFlags = 0;
     
    			D3D11_SUBRESOURCE_DATA data = {};
    			data.pSysMem = data_ptr;
    			data.SysMemPitch = 4;;
     
    			HRESULT hr = g_pd3dDevice->CreateTexture2D( &desc, &data, &pTexture );
     
    			D3D11_SHADER_RESOURCE_VIEW_DESC shaderResourceViewDesc;
     
    			shaderResourceViewDesc.Format = desc.Format;
    			shaderResourceViewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
    			shaderResourceViewDesc.Texture2D.MostDetailedMip = 0;
    			shaderResourceViewDesc.Texture2D.MipLevels = 1;
     
    			// Create the shader resource view.
    			g_pd3dDevice->CreateShaderResourceView(pTexture, &shaderResourceViewDesc, &pshaderResourceView);
     
    			D3D11_SAMPLER_DESC sampDesc;
    			ZeroMemory( &sampDesc, sizeof(sampDesc) );
    			sampDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_POINT;//D3D11_FILTER_MIN_MAG_MIP_LINEAR;
    			sampDesc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP;
    			sampDesc.AddressV = D3D11_TEXTURE_ADDRESS_WRAP;
    			sampDesc.AddressW = D3D11_TEXTURE_ADDRESS_WRAP;
    			sampDesc.ComparisonFunc = D3D11_COMPARISON_NEVER;
    			sampDesc.MinLOD = 0;
    			sampDesc.MaxLOD = D3D11_FLOAT32_MAX;
    			g_pd3dDevice->CreateSamplerState( &sampDesc, &g_pSamplerLinear );
    		}
    Quelqu'un peut m'éclairer?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    qu'est ce que D3DX11CreateTextureFromFile te sort comme format pour tes textures?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    D3DX11CreateTextureFromFile crée une texture depuis un fichier .dds non?
    Car s'en est pas un, c'est un format particulier, avec un header, ect.... donc je doit le charger manuellement.
    (ps : j'avais déjà fais un equivalent en opengl, ca marchait correctement)

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    D3DX11CreateTextureFromFile charge depuis un paquet de format, bmp, png, dds etc.

    après sans plus d'information, je ne peux pas deviner.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    Okay,
    trouvé l'erreur, j'avais oublié de modifier le MemPitch, tout marche nikel

Discussions similaires

  1. Directx ou opengl
    Par scorpiwolf dans le forum DirectX
    Réponses: 13
    Dernier message: 07/02/2003, 08h29
  2. Alpha blending et Z-buffer directx 8
    Par Cesar4 dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2002, 12h58
  3. OpenGL ou DirectX
    Par Nadir dans le forum DirectX
    Réponses: 6
    Dernier message: 02/05/2002, 12h48
  4. Documentation DirectX dans C++Builder 3
    Par srvremi dans le forum DirectX
    Réponses: 1
    Dernier message: 26/04/2002, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo