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 :

Traits cachés en pointillés ?


Sujet :

OpenGL

  1. #1
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut Traits cachés en pointillés ?
    Bonjour,
    je voulais savoir s'il était possible de faire de la perspective cavalière avec des objets usuels des mathématiques comme un cube par exemple de telle façon qu'apparaissent en pointillés les arêtes cachées ?

    Toute info. est la bienvenue.

  2. #2
    Membre averti
    Profil pro
    Responsable technique
    Inscrit en
    Février 2006
    Messages
    363
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable technique

    Informations forums :
    Inscription : Février 2006
    Messages : 363
    Points : 352
    Points
    352
    Par défaut
    La première chose qui m'est venu à l'idée en lisant ton problème est que tu as dessiné un cube et que tu es passé en mode fil de fer pour afficher seulement les arêtes et que ton glClearColor est noir. Si c'est le cas, tu peux texturer les faces caché avec une texture qui fait des alternance de noir et de blanc. Étant donné que tu serais en mode fil de fer la texture ne se verrait pas mais sur les arrêtes tu verrais une alternance de noir et de blanc ce qui pourrait donner l'effet visuel de tiret. Sinon avec les shader ça doit être possible. Peux-tu nous montrer un screenshot de ce que tu as?

  3. #3
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut
    En fait, j'en suis nulle part, je voulais savoir si cela était possible et dans ce cas comment faire. Existe-t-il un tuto. concret sur les shadres ?

    En fait, je voudrais faire quelque chose comme cette page Internet : http://jmath3d.aspirine.org/galerie/cube_et_plan.html .

  4. #4
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Si tu utilises GL_LINE* pour dessiner, glLineStipple sera ton amie
    (cf http://alien.dowling.edu/~vassil/the...chapter02.html §"Line Details" pour des exemples et détails)

  5. #5
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut
    Je vais reposer un peu mieux ma question.

    Je cherche une méthode pour par exemple définir un objet cube dans l'espace tel que lorsque l'utilsateur fait tourner le cube tout ce qui est devant est en trait plein, et ce qui est derrière en trait pointillé.
    Attention, je cherche en fait une méthode qui mette en trait plein tout ce qui est directement visible et en pointillé tout ce qui est caché pour pouvoir mettre autant d'objets géométriques que je veux.

  6. #6
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    De ce que j'en comprends, c'est pas incompatible, suffit de décomposer.

    Tu rends ta scène une fois de façon tout à fait classique (filtrage GL_LEQUAL ou GL_EQUAL typiquement), ce qui aura pour effet que le cube cachera ce qui devra être en pointillé.
    2ème passe, tu règles le filtrage du zbuffer pour n'accepter les points que s'ils sont plus loin que le point actuel (GL_GREATER), puis tu dessines tes objets, ou leur contours, bref, ce que tu veux, avec l'un des GL_LINE*.

  7. #7
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut
    Citation Envoyé par IrmatDen Voir le message
    2ème passe, tu règles le filtrage du zbuffer pour n'accepter les points que s'ils sont plus loin que le point actuel (GL_GREATER), puis tu dessines tes objets, ou leur contours, bref, ce que tu veux, avec l'un des GL_LINE*.
    Peux-tu préciser un peu ce point ?

  8. #8
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    GL_GREATER est à fournir à glDepthFunc au début de la 2nde passe ; il faut le restaurer soit au début de la première passe, soit à la fin de la 2nde.
    C'est ça qu'il fallait clarifier ?

  9. #9
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut
    En fait, c'est plus sur la méthode générale que je bloque car je suis débutant en OpenGL.
    Ma question est juste de savoir comment régler le zBuffer. De la doc. sur le sujet me suffirait si c'est long à expliquer.

  10. #10
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Ben, j'ai écris la fonction nécessaire, et la valeur à lui passer
    glDepthFunc(GL_GREATER)
    Une petite recherche sur cette fonction te mènera droit à la doc nécessaire.

  11. #11
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 751
    Points
    1 751
    Par défaut
    Merci de ta réponse et de ta patience, je vais étudier cela plus sérieusement.

Discussions similaires

  1. courbe en pointillés en (très) long traits
    Par Bloodista dans le forum MATLAB
    Réponses: 4
    Dernier message: 15/04/2011, 13h52
  2. Trait en pointillé
    Par Invité dans le forum 2D
    Réponses: 1
    Dernier message: 16/01/2011, 18h26
  3. Répertoire caché
    Par KUBITUS dans le forum Delphi
    Réponses: 30
    Dernier message: 13/04/2007, 07h19
  4. [Tkinter] trait pointillé
    Par airod dans le forum Tkinter
    Réponses: 2
    Dernier message: 08/02/2006, 16h54
  5. Webbrowser : Comment ne pas prendre la page en cache
    Par cedm78 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 30/08/2002, 11h17

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