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 :

Problème Stencil Buffer


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Par défaut Problème Stencil Buffer
    Bonjour à tous,

    J'ai un petit problème avec le stencil buffer. J'essaye déséspérément de créer des ombres portées mais rien à faire je n'y arrive pas. Est-il possible que le stencil buffer ne soit pas disponible sur mon système? J'utilise opengl avec sdl sous linux.

    Sinon voici le code qui trace le rendu :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
          glEnable(GL_LIGHTING);
          glDisable(GL_LIGHT0);   //On désactive la lampe.
          //On trace la scène
          glVertexPointer(3,GL_FLOAT,0,object1);
          glDrawArrays(GL_TRIANGLES,0,taille1/3);
          glVertexPointer(3,GL_FLOAT,0,object2);
          glDrawArrays(GL_QUADS,0,taille2/3);
     
          glEnable(GL_STENCIL_TEST);
          glDisable(GL_DEPTH_TEST);
          glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
          glStencilFunc(GL_ALWAYS, 0x0, 0xffffffff);
          /*glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_INCR);
          glStencilOpSeparate(GL_BACK, GL_KEEP, GL_KEEP, GL_DECR);*/ 
          glEnable(GL_CULL_FACE);
          glStencilOp(GL_KEEP,GL_KEEP,GL_INCR);
          glFrontFace(GL_CW);
          glVertexPointer(3,GL_FLOAT,0,shape);
          glDrawArrays(GL_QUADS,0,shape_vertex_count);
          glStencilOp(GL_KEEP,GL_KEEP,GL_DECR);
          glFrontFace(GL_CCW);
          glDrawArrays(GL_QUADS,0,shape_vertex_count);
          glDisable(GL_CULL_FACE);
     
          glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
          glEnable(GL_DEPTH_TEST);
          glStencilFunc(GL_EQUAL, 0, 0xffffffff);
          glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
     
          glEnable(GL_LIGHT0);
          glVertexPointer(3,GL_FLOAT,0,object1);
          glDrawArrays(GL_TRIANGLES,0,taille1/3);
          glVertexPointer(3,GL_FLOAT,0,object2);
          glDrawArrays(GL_QUADS,0,taille2/3);
     
          glDisable(GL_STENCIL_TEST);
          glEnable(GL_DEPTH_TEST);
    J'ai essayé de tracer seulement le volume d'ombre il est correct et les faces sont bien orientées! Au final j'obtiens la scène illuminée mais sans ombre.

    Merci d'avance pour vos idées a+!

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Par défaut
    Resalut! J'ai trouvé le problème!

    J'avais effectivement un problème de stencil qui n'était pas activé!

    Il faut donner une taille au stencil buffer avant d'appeler SDL_SetVideoMode(..)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_GL_SetAttribute( SDL_GL_STENCIL_SIZE, 8 );
    A+

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

Discussions similaires

  1. Problème de Stencil-buffer
    Par Steki-kun dans le forum OpenGL
    Réponses: 2
    Dernier message: 18/03/2005, 23h42
  2. stencil buffer
    Par graphicsxp dans le forum OpenGL
    Réponses: 2
    Dernier message: 13/12/2004, 13h21
  3. mask in stencil buffer
    Par graphicsxp dans le forum OpenGL
    Réponses: 3
    Dernier message: 13/12/2004, 11h17
  4. Probleme Stencil Buffer
    Par supergrey dans le forum DirectX
    Réponses: 14
    Dernier message: 20/07/2004, 20h54
  5. stencil buffer
    Par patapetz dans le forum OpenGL
    Réponses: 6
    Dernier message: 26/02/2004, 17h23

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