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] shader et depth buffer


Sujet :

OpenGL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 396
    Points : 230
    Points
    230
    Par défaut [FBO] shader et depth buffer
    Hello,

    J'ai un FBO qui est attaché à une texture depth buffer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    glBindFramebuffer(GL_FRAMEBUFFER, fboIDs[FBO_SHADOW]);
     
    glBindTexture(GL_TEXTURE_2D, textureIDs[TEX_SHADOW_DEPTH]);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
    glTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, width, height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, 0);
    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, textureIDs[TEX_SHADOW_DEPTH], 0);
    J'aimerais écrire dans ce depth buffer: qu'est ce que je dois mettre comme code source dans mon fragment shader ? Petit précision: je suis en OpenGL 3.3.

    J'ai essayer d'attaché une texture diffuse à mon shader (GL_COLOR_ATTACHMENT0) et écrire dedans avec cette ligne dans mon fragment shader:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #version 330
     
    in vec2 textCoordinates;
    uniform sampler2D diffuseTex;
    layout (location = 0) out vec4 fragColor;
     
    void main()
    {
    	fragColor = texture2D(diffuseTex, textCoordinates);
    }
    Dans ce cas, mon depth buffer est correctement remplit...mais bon c'est pas top comme solution d'ajouter une texture diffuse pour écrire dans le depth buffer !
    Comment écrire dans le depth buffer sans diffuse textures ?

    J'ai essayer de ne rien mettre comme code source dans mon fragment shader mais dans ce cas, il n'écrit rien dans le depth buffer

    Merci d'avance.

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 064
    Points
    219 064
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Je ne comprends pas vraiment pourquoi vous utilisez une texture pour "pouvoir" écrire dans le depth buffer. En effet, le depth buffer est écrit à chaque rendu, et je crois que cela est fait automatique (avec les coordonnées des pixels).
    Donc, le simple fait de remplir le fragColor suffira à écrire dans le depth buffer.
    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 actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 396
    Points : 230
    Points
    230
    Par défaut
    Oubliez mon post, c'est mon logiciel de debug OpenGL qui affichait n'importe quoi

    Donc, le simple fait de remplir le fragColor suffira à écrire dans le depth buffer.
    Apparement, même avec un fragment shader vide, OpenGL remplit mon depth buffer.

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 064
    Points
    219 064
    Billets dans le blog
    120
    Par défaut
    Oui, je m'en doutais vu que c'est le vertex shader qui donne la position des vertexs.
    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.

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

Discussions similaires

  1. fbo et depth buffer
    Par casafa dans le forum OpenGL
    Réponses: 1
    Dernier message: 27/06/2007, 09h25
  2. [FBOs, Renderbuffers et depth]
    Par Trev dans le forum OpenGL
    Réponses: 4
    Dernier message: 27/03/2007, 13h48
  3. [HLSL][C++] Lecture du Depth Buffer dans un PS3.0
    Par xterminhate dans le forum DirectX
    Réponses: 6
    Dernier message: 26/09/2006, 00h34
  4. Comment tester un point du depth buffer.
    Par Pyou dans le forum DirectX
    Réponses: 2
    Dernier message: 02/10/2005, 21h17
  5. A propos depth buffer
    Par j.yves dans le forum DirectX
    Réponses: 1
    Dernier message: 03/12/2002, 00h41

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