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 :

[ReadPixel]probleme de configuration


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de deeal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Par défaut [ReadPixel]probleme de configuration
    bonjour tout le monde
    des que je fais appel a ReadPixel le programme Bug
    voici un peu de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    protectedoverridevoid InitGLContext() 
    {  GL.glPixelStorei(GL.GL_UNPACK_ALIGNMENT, 1);// j'ai essaie PACK_ALI
       GL.glClearColor(0.0f,0.0f,0.0f,0.0f); 
       GL.glClearStencil(0);
       GL.glStencilMask(1); 
    }
    

    et apres je fais juste un petit appel pour lire le contenue du stencil buffer
    ( en fait j'ai copie le code que m'a transmis Shenron pour utiliser le clipping plan et le stencil buffer pour faire des coupes dans une scene et exporter cela)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    privatevoid SnapStencil()
    { this.Data = newbyte[(this.Height+1)*(this.Width+1)];
    GL.glReadBuffer(GL.GL_FRONT);
    GL.glReadPixels(1, 1, this.Width, this.Height,GL.GL_STENCIL_INDEX, GL.GL_UNSIGNED_BYTE, Data);
    int x = 0;
    }
    
    est-ce que quelqu'un aurait une idee d'ou vient le probleme?
    merci

  2. #2
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    lorsque tu dis que ton programme bug, tu pourrais donner plus de détails ?
    il plante lamentablement, tu as un message d'erreur, tu n'obtient pas ce que tu voudrais, ça affiche n'importe quoi...

    juste une idée comme cela, le front buffer a t-il un stencil ?
    si oui, je vois pas à quoi il sert
    si non, normal que a bug
    à mon avis, seul le(s) back buffer possède(nt) un stencil

    également : tu fais appel à SnapStencil après le dessin de toute ta scène et avant le swapbuffer ?
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  3. #3
    Membre confirmé Avatar de deeal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Par défaut
    Citation Envoyé par shenron666
    lorsque tu dis que ton programme bug, tu pourrais donner plus de détails ?
    il plante lamentablement, tu as un message d'erreur, tu n'obtient pas ce que tu voudrais, ça affiche n'importe quoi...

    juste une idée comme cela, le front buffer a t-il un stencil ?
    si oui, je vois pas à quoi il sert
    si non, normal que a bug
    à mon avis, seul le(s) back buffer possède(nt) un stencil

    également : tu fais appel à SnapStencil après le dessin de toute ta scène et avant le swapbuffer ?
    - le bug il me dit : Unhandled exception
    - je crois que tu as raison , il ne prends pas en charge Front buffer et stencil

    - une question, je n'ai pas compris cest quoi le stencil buffer?

    - une deuxieme derniere question , en utilisant le clipping plan, est-ce que je peux utiliser le color buffer pour lire les coupes d'images cree par le clipping plan, au lieu d'utiliser le stencil buffer ?

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    - une question, je n'ai pas compris cest quoi le stencil buffer?
    C'est dans la

    http://jeux.developpez.com/faq/3d/?p...ITIONS_buffers

  5. #5
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    Citation Envoyé par deeal
    - le bug il me dit : Unhandled exception
    Ok déjà il te génère une exception
    ce serait bien de pouvoir la "catcher" (l'attraper en français) histoire de voir ce qu'elle contient (normalement un message d'erreur explicite sur l'origine du plantage)

    Citation Envoyé par deeal
    - une deuxieme derniere question , en utilisant le clipping plan, est-ce que je peux utiliser le color buffer pour lire les coupes d'images cree par le clipping plan, au lieu d'utiliser le stencil buffer ?
    je ne comprend pas ton terme "les coupes d'images cree par le clipping plan"
    tu essaies de faire quoi exactement ?
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  6. #6
    Membre confirmé Avatar de deeal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Par défaut
    Citation Envoyé par Laurent Gomila
    oups merci

    Citation Envoyé par shenron666

    je ne comprend pas ton terme "les coupes d'images cree par le clipping plan"a
    tu essaies de faire quoi exactement ?

    arf bon ok, c'est un peu complexe ce que tu veux faire
    bon alors les plans de coupe, OpenGL gère cela "tout seul"
    seulement comme tu dis, placer un plan de coupe au milieu d'un objet montrera qu'il est vide
    il existe une solution : le stencil buffer
    regardes cette "démo" ATI datant de l'époque... Rage128 (tadam )
    http://www.ati.com/developer/sdk/rag...tencilCap.html
    par contre, si tu veux exporter un volume, il te faudra générer des "couches" successives et faire un rendu pour chacune d'elles
    (pas forcément à l'écran, si tu fais pas de swapbuffer ça s'affiche pas)
    ca te rappelle des trucs?

    le probleme c'est qu'avec le stencil buffer je n'obtient que des valeur 0, ou 1 ( car il applique un masque0
    moi ce que j'ai idee de faire ( mais je ne sais pas comment m'y prendre)

    c'est de faire boufer le clipping plan et n'afficher que ce qu'il sur ce plan et apres faire appel a un readPixel sur le ColorBuffer et pas le stencil
    j'espere que c'est un peu plus clair


    [HS] qu'est-ce que vous pensez de openinvetor? vous auriez une idee de combien coute une license? [/HS]

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Je n'ai pas tout suivi de tes précédents sujets, donc dis moi si je me trompe.

    Tu as une scène générée par l'utilisateur, et tu voudrais exporter le résultat géometrique dans un fichier, c'est bien ça ?

    Est-ce que l'utilitaire OpenGL Exporter ne pourrait pas t'aider ?

    http://jeux.developpez.com/outils/#a_opengl

  8. #8
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    oui je m'en souviens et c'est justement ce qui me venais en tête en te répondant, je voulais juste en être sûr et pas te répondre à côté

    bon, le mieux serait de t'expliquer le principe d'utilisation du stencil dans la démo ATI, je vais essayer de pas dire de connerie

    note : le stencil s'utilise comme un masque, il faut l'initialiser à 0 (par exemple), et cela se fait avec glClear comme pour le colorbuffer

    procédure de rendu :
    -tu commences par tout effacer
    -ton stencil n'est pas actif
    -ton plan de coupe lui est actif
    -le culling doit être actif afin que le rendu des faces arrières ne se fasse pas
    -effectuer un premier rendu de ta géométrie qui va être coupée par le plan de coupe
    -activer le stencil avec pour chaque pixel rendu une modification de la valeur du pixel à 1
    -inverser le culling afin que ce soient les faces arrières qui soient rendues plutot que les faces avant
    -désactiver le rendu dans le color buffer (optionnel mais accélère le rendu vu que les faces arrières vont ensuite être "cachées")
    -effectuer le second rendu de la géométrie, les faces arrières, qui vont donc modifier le stencil
    -tu modifies le test du stencil pour que le rendu passe lorsque la valeur du pixel est à 1
    -réactiver le rendu dans le color buffer
    -dernière étapes, 2 solutions :

    1) ou bien tu effectues le rendu d'un quad (ou triangle strip) qui couvre tout l'écran avec la couleur et/ou la texture voulue sur la coupe
    inconvénient : si le Z buffer est actif, il va mémoriser la profondeur du quad (ou strip) rendu
    si le Z buffer est inactif (si on le désactive) on aura pas l'information de la coupe dans le Z buffer qui soit dit en passant ne serait utile que s'il y a d'autres rendus géométriques par la suite

    2) ou alors tu effectues le rendu d'un quad (ou strip) de ce qui pourrait être le plan de coupe (un polygone dont l'équation de plan est = à l'équation du plan de coupe)

    si je dois éclaircir quelque chose dis le moi
    et si quelqu'un voit une erreur qu'il n'hésite pas
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

Discussions similaires

  1. Réponses: 12
    Dernier message: 15/12/2005, 13h32
  2. [Sécurité] [php.ini][exim]problème de configuration
    Par david_0131b4 dans le forum Langage
    Réponses: 1
    Dernier message: 17/11/2005, 12h34
  3. [Tomcat]Probleme de configuration Tomcat
    Par tatann dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 18/09/2005, 20h30
  4. Problème de configuration ?
    Par Aramiss dans le forum Hibernate
    Réponses: 3
    Dernier message: 28/05/2004, 16h57
  5. [JBOSS]Probleme de configuration
    Par cameleon2002 dans le forum JBuilder
    Réponses: 5
    Dernier message: 11/09/2003, 15h09

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