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

OpenGL Discussion :

Limite du rendu volumique


Sujet :

OpenGL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Limite du rendu volumique
    Bonjour à vous,
    J'ai une petite question qui ne trouve pas de réponse concernant le rendu volumique.
    Ma carte graphique une Quadro FX 5800 possède une limitation de texture 3D de 2048^3 cependant lorsque je créer une texture 3D supérieur à 2GB (1024*1024*1024*2) j'obtiens un "OpenGL ERROR: 'mémoire insuffisante'" à chaque Draw...

    Mon allocation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    glTexImage3D(GL_TEXTURE_3D,
                0,                         
                GL_LUMINANCE16,           
                1024,1024,1024,   
                0,                         
                GL_LUMINANCE,             
                GL_UNSIGNED_SHORT,
                _proxy->data());
    Mon rendu fonctionne parfaitement jusqu’à cette limitation de taille . J'ai trouvé sur internet que le problème pouvait venir de mon système d'exploitation (Seven 64 bits) et du Windows Display Driver Model (WDDM) ?
    https://devtalk.nvidia.com/default/t...unt-of-memory/

    Existe-il une manière d'utiliser ma texture 3D dans sont intégralité ? sans la segmenter ?

    Merci d'avance !

  2. #2
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 379
    Points
    11 379
    Billets dans le blog
    10
    Par défaut
    Ta texture est stockée sur la RAM de ta carte graphique... Es-tu sûr que celle-ci a plus de 2Go de mémoire ? (sachant que tu stockes d'autres données sur la VRAM)
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Oui c'est une Quadro fx 5800 du coup j'ai 4GB de mémoires... Même en comptant 400Mo pour Aero plus d'autres données non importante, il me reste normalement beaucoup d'espace

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 46
    Points : 108
    Points
    108
    Par défaut
    Bonjour,

    Pouvez nous nous en dire plus sur vos paramètres du contexte? Notamment si vous utilisez des fonctions type glPixelStore et avec quels arguments si tel est le cas?

    -Omalab

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Pour la texture 3D:

    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
     
    glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, (GLint)GL_LINEAR);
    glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, (GLint)GL_LINEAR); 
    glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
    glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
    glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, GL_MODULATE);
    glTexImage3D(GL_TEXTURE_3D,
                0,                         
                GL_LUMINANCE16,           
                1024,1024,1024,   
                0,                         
                GL_LUMINANCE,             
                GL_UNSIGNED_SHORT,
                _proxy->data());
    Et pour le bind:

    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
     
    glEnable(GL_TEXTURE_3D);
    glEnable(GL_CULL_FACE);
    glCullFace(GL_BACK);            //We don't need to show BackFace in this mode
    glEnable(GL_ALPHA_TEST);
    glEnable(GL_BLEND); 
    glAlphaFunc(GL_GREATER, 1/255.f);
    glBlendEquation(GL_FUNC_ADD); 
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
    glBindTexture(GL_TEXTURE_3D, _tex3D);
     
    glBegin(GL_QUADS);  
    //Draw slices
    glEnd();
     
    glDisable(GL_BLEND);
    glDisable(GL_ALPHA_TEST);
    glBindTexture(GL_TEXTURE_3D, 0);
    glDisable(GL_TEXTURE_3D);
    Je sais que glBegin et glEnd ne sont pas du tout optimisé...

Discussions similaires

  1. rendu volumique 3D (quel outil)
    Par san9our dans le forum Moteurs 3D
    Réponses: 5
    Dernier message: 14/01/2009, 08h34
  2. [Turbo Pascal] Limite de la mémoire virtuelle
    Par moon tiger dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 08/02/2003, 22h30
  3. Limiter le déplacement de la souris
    Par el_bouleto dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/11/2002, 23h56
  4. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 22h09
  5. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31

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