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 :

FBO écriture / copie


Sujet :

OpenGL

  1. #1
    Membre actif Avatar de Robxley
    Homme Profil pro
    Docteur ingénieur traitement d'image
    Inscrit en
    Mai 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Docteur ingénieur traitement d'image

    Informations forums :
    Inscription : Mai 2009
    Messages : 158
    Points : 228
    Points
    228
    Par défaut FBO écriture / copie
    Coucou à tous,

    A l'aide des FBO je cherche à faire de la réflexion/réfraction + GLSL (pour un plan d'eau).

    J'utilise donc si je puis dire 3 FBO différents :

    - un pour générer une texture réflexion
    - un autre pour générer une texture réfraction
    - et le dernière qui est en fait le "FBO" de rendu standard "On screen" de ma scène + surface de l'eau avec placage des textures refraction/reflection (+ bump mapping/mouvement de l'eau par GLSL).

    Ce procédé m'emmène à redessine plusieurs fois quasiment la même scène (3 fois pour être exacte, un par FBO).

    En gros en PSEUDO code ça donne :
    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
     
    void reflexion()
    {
        active_FBO_REFLECTION();
        glScalef(1,-1,1);
        glClipPlane(GL_CLIP_PLANE0, equation_du_plan );
        dessine_ma_scene();
     
       generation_texture_reflexion();
    }
     
    void refraction()
    {
        active_FBO_REFLEXION();
        glClipPlane(GL_CLIP_PLANE0, equation_du_plan );
        dessine_ma_scene();
     
        generation_texture_refraction();
    }
    void scene_final_avec_reflection_refraction()
    {
       active_FBO_STANDARD();
       dessine_ma_scene();
       affichage_plan_deau_avec_refraction_reflexion_GLSL();
     
    }
    Voilà en gros l'idée, comme vous pouvez le voir je dessine 3 fois ma scène à l'aide de la fonction "dessine_ma_scene()" pour chacun des 3 FBOs.

    Ce que j'aimerais savoir c'est si je peux par exemple créer au départs 1 FBO différents ou je calcule une fois pour toute ma scène et après je me sers uniquement de ce FBO pour faire mes quelque transformation scalef et plan de clipping sans recalculer l'ensemble de la scène 3 fois.


    Je doute que ce soit possible car, en faite si j'ai bien compris les FBO sont déjà rasterisés (c'est des buffers images) donc un scalef ou un plan de clipping n'a aucun sens vu qu'il ne contient plus les objets 3D de la scène.

    Des "buffers 3D" qui contiennent toujours une information géométrique et spatial des objets ça existerait pas par hasard ? Par ce que l'idée serait, pour les 3 FBO, d'utiliser ce buffer 3D "constant" sur lequel j'applique les différents scalef, et plan de clipping que je recopie dans chacun des FBOs.

    Si quelqu'un a une idée, je suis preneur.
    Rien ne sert de courir, mieux vaut partir à point. Programmer aussi d'ailleurs.
    Surtout, mais surtout pas d’astuces !
    Pas de bras, pas de chocolat. Les deux mains sur le clavier.

  2. #2
    Membre actif Avatar de Robxley
    Homme Profil pro
    Docteur ingénieur traitement d'image
    Inscrit en
    Mai 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Docteur ingénieur traitement d'image

    Informations forums :
    Inscription : Mai 2009
    Messages : 158
    Points : 228
    Points
    228
    Par défaut
    Encore moi

    Pas beaucoup de réponse

    Donc j'ai un peu réfléchi à mon problème, et donc à priori ses buffers qui garderaint l'aspect spatial de la scène ba ca n'existe pas.

    Le seul truc qui pourrait y ressembler ca serait les listes (compilé) fournit par Opengl. Le souci c'est que je ne suis pas sur que ces listes acceptent toutes les routines opengl à leur création. Dans ma scène j'utilise plusieurs VBO, et shaders.

    Alors pour ce qui est des VBOs je pense que les listes fonctionnent avec étant ni plus ni moins une description semblant au VBA et appel de glVertex, glTexCoord...

    Par contre je ne suis pas sur que les "glUseProgram" fonction dans une liste.
    Enfin, j'ai pas encore essayé, je vais voir ca dès que possible, et je vous dis ca.
    Rien ne sert de courir, mieux vaut partir à point. Programmer aussi d'ailleurs.
    Surtout, mais surtout pas d’astuces !
    Pas de bras, pas de chocolat. Les deux mains sur le clavier.

  3. #3
    Membre actif Avatar de Robxley
    Homme Profil pro
    Docteur ingénieur traitement d'image
    Inscrit en
    Mai 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Docteur ingénieur traitement d'image

    Informations forums :
    Inscription : Mai 2009
    Messages : 158
    Points : 228
    Points
    228
    Par défaut
    Encore moi,

    Je me fais un petit solo de question/réponse.

    En faite je crois que l'idée des display list c'est pas une bonne idée, il semblerait que d'après un précédent topic du forum (ici), il est déconseillé d'utiliser des VBOs dans des display list.

    Et pour les shaders ba j'en sais rien mais bon comme les VBO avec les display list ca marche pas, shader ou pas shader, les display list me sont pas très utile.
    Rien ne sert de courir, mieux vaut partir à point. Programmer aussi d'ailleurs.
    Surtout, mais surtout pas d’astuces !
    Pas de bras, pas de chocolat. Les deux mains sur le clavier.

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/12/2012, 08h51
  2. Copie de buffer avec FBO
    Par matteli dans le forum OpenGL
    Réponses: 5
    Dernier message: 20/02/2012, 14h53
  3. [AC-2003] Cumuler des copie d'écritures dans un champ "memo"
    Par roultabille dans le forum Access
    Réponses: 1
    Dernier message: 05/05/2010, 15h37
  4. Réponses: 3
    Dernier message: 19/08/2008, 10h41

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