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 :

clipping plane et capping


Sujet :

OpenGL

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 99
    Points : 52
    Points
    52
    Par défaut clipping plane et capping
    Bonsoir,

    je developpe un modeleur 3D. J'ai créé un outil permettant a l'utilisateur de voir en coupe son modele 3D (definition d'un plan et d'une profondeur de coupe).
    Tout ceci marche, mais visuellement, il y a un probleme... OpenGl ne dessinant que la surface des formes 3D, avec l'application du plan de coupe, celles-ci paraissent creusées a l'ecran (on voit l'interieur des formes qui sont sensées etre pleines).
    J'aimerais recouvrir les formes coupées pour distinguer les espaces vides du modele et ne pas voir l'interieur de celles-ci. Je suis sur une piste en utilisant le stencil buffer (voir sous google "capping object geometry"), mais je n'arrive pas a le mettre en place (je n'obtiens pas le rendu attendu...).
    L'un d'entre vous aurait-il deja mis en place un tel algo ? Un petit coup de main s'il vous plait, merci !

    Bonne soirée.
    Jc.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 118
    Points : 118
    Points
    118
    Par défaut
    1) effacer le stencil buffer à 0
    2) ne laissé activé l'écriture que dans le stencil buffer et afficher le modèle coupé en deux en incrémentant lors de zpass.(ne pasactivé l'éclairage ou les texture pour rapidité)
    3)afficher normalement le modèle clippé avec les texture et tout et tout....
    4) affiché un quad recouvrant l'écran de la couleur de remplissage de l'objet et ne laissé passé que les fragment lorsque le stencil est supérieur a 0. ne pas activé l'écriture dans le zbuffer.

    J'ai pas mi tout les détail mais essayer de désactiver le plus possible les écriture dans les buffer ou on n'a pas besoin pour optimiser.

    Sa sa marche pour un modele à l'écran : peut être pour plus j'y ai pas réfléchit mais C sur sa marche pour un.
    JC est bien notre dieu...(non non pas jesus christ mais John Carmack!!!)

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 99
    Points : 52
    Points
    52
    Par défaut
    Merci pour l'algo, je vais me plonger dans le stencil buffer,
    j'ai jamais trop touché a ca, enfin direction la faq !
    je donne des nouvelles et une vue dés que c codé.
    T'cho, Jc.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 118
    Points : 118
    Points
    118
    Par défaut
    oki!
    bon courage!
    JC est bien notre dieu...(non non pas jesus christ mais John Carmack!!!)

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 99
    Points : 52
    Points
    52
    Par défaut
    Pour l'instant j'ai traduit l'algo par de la merde je pense, vu que visuellement, ca ne donne rien :

    //Initialisation

    glClipPlane(GL_CLIP_PLANE0, planDeCoupe);
    glEnable (GL_CLIP_PLANE0);
    glEnable(GL_STENCIL_TEST);

    // 1 - Clear
    glClearStencil(0.0);
    glClear(GL_STENCIL_BUFFER_BIT);

    // 2 - Affichage filtré
    glDisable(GL_LIGHTING);
    glDisable(GL_COLOR);
    glDisable(GL_DEPTH_TEST);

    glStencilFunc(GL_ALWAYS, 0, 0);
    glStencilOp(GL_KEEP, GL_KEEP, GL_INCR);


    DessinerScene();

    // 3 - Affichage complet
    glEnable(GL_LIGHTING);
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_COLOR);

    DessinerScene();

    // 4 - Affichage du plan
    glDisable(GL_DEPTH_TEST);
    glStencilFunc(GL_GREATER, 0,0);
    dessinerClipplane();

    J'ai des doutes sur mon ecriture des deux expressions en rouge :je ne comprends pas vraiment "en incrémentant lors de zpass" et "le stencil est supérieur a 0". Comment cela ce traduit-il en opengl ?
    Merci encore.
    Bonne fin d'aprem, Jc.

Discussions similaires

  1. [FLASH MX] Scrollbar associée à un movie-clip
    Par dens63 dans le forum Flash
    Réponses: 19
    Dernier message: 05/06/2006, 11h41
  2. [FLASH MX2004] Clip qui ne s'arrête pas
    Par romain starck dans le forum ActionScript 1 & ActionScript 2
    Réponses: 8
    Dernier message: 10/05/2006, 19h43
  3. Pb d'action sur un clip
    Par bencasp dans le forum Flash
    Réponses: 4
    Dernier message: 22/10/2003, 17h11
  4. Clipping et projection orthogonale
    Par Luke-77 dans le forum DirectX
    Réponses: 4
    Dernier message: 01/10/2003, 20h02
  5. Chemin d'accès au clip et scenario en flash
    Par Gential dans le forum Flash
    Réponses: 4
    Dernier message: 28/02/2003, 10h10

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