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 :

Framebuffer object et texture 3D


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Par défaut Framebuffer object et texture 3D
    Bonjour,

    Dans un programme que je réalise actuellement je dois stocker des données dans des textures 3D, et j'ai besoin de réaliser un traitement pour chacun des voxels de ma texture 3D et stocker le résultat dans une autre texture 3D. Pourriez vous me décrire brièvement la procédure à suivre ?

    En 2D je n'ai aucun problème pour faire ça : je passe ma texture 2D au programme de shader de la carte graphique en dessinant un quad texturé sur tout le viewport, j'applique un traitement sur chaque fragment et je stocke le tout dans une autre texture via un framebuffer object. Mais la généralisation à la 3D me pose quelque problème

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 604
    Par défaut
    Salut,

    Je ne suis pas sûre que tu puisse écrire directement dans une Texture3D (utiliser une slice comme FBO), ou si ça existe je ne sais pas faire .

    Sinon, ce que tu peux faire est de dessiner slice par slice dans un FBO, remonter en mémoire CPU, et lorsque tu as fait toutes tes slices, redescendre en mémoire GPU. Si ton volume n'est pas trop gros, tu peux dessiner plusieurs slices les unes au dessus des autres:

    Par exemple, si ton volume fait 64*64*64, tu crée un viewport de 64*4096 (4096 = 64*64), tu affiche 64 quads les uns au dessus des autres, glreadPixel de ton FBO pour avoir le buffer de pixel, glTexImage3D de ce buffer (pas besoin de réorganiser les données, si les quad sont l'un au dessu de l'autre, c'est déjà dans le bon sens) et tu a ta nouvelle texture. Cela fait un Aller-retour GPU/CPU mais c'est mieux qu'un pour chaque slice...

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Par défaut
    Arf, c'est vraiment dommage qu'on ne puisse pas écrire directement dans une slice de texture 3D

    La technique des slices les uns au dessus des autres m'a l'air pas mal sinon, je vais essayer de l'implémenter.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Par défaut
    Je remonte ce topic pour préciser que j'ai trouvé une solution pour préciser la slice dans laquelle on veut rendre

    Il suffit d'utiliser la variable gl_Layer dans le geometry shader en GLSL > 150 :
    http://www.opengl.org/sdk/docs/mangl...l/gl_Layer.xml

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OpenGL] Framebuffer object FBO
    Par victor_gasgas dans le forum OpenGL
    Réponses: 5
    Dernier message: 08/12/2010, 22h09
  2. Framebuffer Object (FBO) supporté à moitié ?
    Par zenux dans le forum OpenGL
    Réponses: 2
    Dernier message: 16/01/2010, 13h12
  3. framebuffer object : fonctionne pas
    Par casafa dans le forum OpenGL
    Réponses: 6
    Dernier message: 31/07/2007, 17h18

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