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 :

[OpenGL] Framebuffer object FBO


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 199
    Par défaut [OpenGL] Framebuffer object FBO
    Bonjour,

    j'essaye d'utiliser les framebuffers object d'opengl mais lors de leur utilisation je ne comprend pas l'utilité des render buffer comparé aux textures? si quelqu'un peut m'expliquer. j'ai déjà compris le rôle du FBO après qui est de faire un rendu offscreen

    merci d'avance l

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 127
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Je ne vois pas trop ce que vous n'avez pas compris...

    Un FBO (Frame Buffer Object) est un objet OpenGL qui décrit une destination de rendu (un endroit ou dessiner). Habituellement, c'est notre écran, mais maintenant nous pouvons dire que la destination sera une texture. Donc, on transformera la texture en FBO (à peu de choses près) pour pouvoir dessiner dedans (rendu donc offscreen).

    Dans la finalité, cela permet de faire tout un tas de techniques avancées du genre shadow map je crois et autre effet de camera de surveillance sur une scène
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 199
    Par défaut
    Merci mais tout cela je l'avais déjà compris (comprendre le rôle du FBO, soit en général le rendu off screen).

    J'ai dû mal me formuler, mais ce que je ne comprend pas c'est lors de la création du FBO, qu'elle est la différence entre attaché une texture ou un Render Buffer, car on peut mettre les deux aprioris (pour un color buffer ou le depth buffer peu importe).


    Et à cela je pense avoir trouver un élément de réponse, à confirmer :
    - Texture : Si par la suite on souhaite utiliser le depth on le met dans une texture de façon à l'utiliser dans un shader ou autre par la suite.

    - Render Buffer : Imaginons un FBO où l'on ne souhaite recueillir que le color buffer mais que la scène soit complexe et nécessite un depth buffer pour l'exactitude de la scène, alors ce depth buffer la sera un render buffer.


    Si quelqu'un peut infirmer ou affirmer je suis toujours prenant. Et merci des réponses.


    Edit : LittleWhite j'essaye bien oui de mettre sur pied du shadow mapping sur OpenGL 3.3 Et tout autres effets cools, voir les exemples de post traitement sur www.geeks3d.com par exemple

  4. #4
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Bonjour,

    un FBO a besoin de savoir où vont être écrite les infos de couleur. Pour celà on attache soit un "color render buffer", soit une texture.

    Dans mon app je fais du rendu offscreen via un FBO auquel j'attache une texture, et j'utilise cette texture par après.

    d'après ce lien: http://www.gamedev.net/reference/art...rticle2331.asp, on peut utiliser a la place un "color render buffer" pour sauver des infos qui n'on pas de format de texture correspondant, par exemple si on veut sauver le stencil buffer ou le depth buffer du rendu offscreen.

    En pratique, je n'ai malheureusement pas d'exemple d'utilisation à te donner, vu que pour l'instant je n'utilise que le rendu dans des textures

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 199
    Par défaut
    Merci pour ta réponse, mais je ne sais pas toujours dans quels usages utiliser les renders buffers ou sinon les textures.

    Et à cela je pense avoir trouver un élément de réponse, à confirmer :
    - Texture : Si par la suite on souhaite utiliser le depth on le met dans une texture de façon à l'utiliser dans un shader ou autre par la suite.

    - Render Buffer : Imaginons un FBO où l'on ne souhaite recueillir que le color buffer mais que la scène soit complexe et nécessite un depth buffer pour l'exactitude de la scène, alors ce depth buffer la sera un render buffer.


    Si quelqu'un peut infirmer ou affirmer je suis toujours prenant. Et merci des réponses.
    Mais merci de participer au sujet

  6. #6
    Membre émérite

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Par défaut
    Le "render to render buffer" est "utile" quand tu n'as besoin que d'ecrire dans ce buffer et pas besoin de lire par la suite comme tu le fais pour le rendu dans l'ecran classique. Ce type de buffer est donc optimise pour l'ecriture seule et peut (selon l'implementation OpenGL) etre plus rapide qu'un "render to texture".

    Pour ce qui suit je n'en suis pas sur donc a verifier: un "render to render buffer" ne supporte pas tous les types de formats de texture il me semble et aussi supporte d'autres fonctionnalites qu'un "render to texture" ne supporte pas, par exemple l'antialising.

Discussions similaires

  1. Framebuffer Object (FBO) supporté à moitié ?
    Par zenux dans le forum OpenGL
    Réponses: 2
    Dernier message: 16/01/2010, 13h12
  2. framebuffer object : fonctionne pas
    Par casafa dans le forum OpenGL
    Réponses: 6
    Dernier message: 31/07/2007, 17h18
  3. Performance du frame buffer object (FBO)
    Par Grosbenji dans le forum OpenGL
    Réponses: 4
    Dernier message: 24/01/2007, 15h19

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