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

OpenSceneGraph Discussion :

Disparition progressive de modèles


Sujet :

OpenSceneGraph

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 22
    Points : 19
    Points
    19
    Par défaut Disparition progressive de modèles
    Bonjour,

    Je cherche à réaliser un effet de disparition progressive d'un modèle, comme si il passer derrière une paroi. (Mais une paroi invisible )
    Il faux que la paroi masque que le modèle qui dois disparaitre et pas le décor.

    Comme dans les cartoons où un gros monsieur disparait derrière un lampadaire (Mais sans le lampadaire ) .

    Quelqu'un a une petite idée de comment faire cette effet avec OSG (ou OpenGL) ?

    Merci d'avance.

    Negrel Romain

  2. #2
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    Bonjour,

    Sympa comme problematique, a mon avis va falloir feinter car c'est pas si simple...
    Si la paroi existe vraiment de deux choses l'une : soit elle cache l'autre objet et dans ce cas elle est pas transparente, et c'est donc via le Z buffer que tout le boulot se fait. Soit elle ne cache pas l'objet car elle est transparente... et je ne vois pas comment la rendre transparente en ignorant l'objet derriere elle...

    Tu remet en question le principe meme de la transparence et de la gestion des surfaces transparences en 3D qd meme...

    Sinon faudrait faire disparaitre ton objet petit a petit... genre avec une texture/couleure transparente... ou que ton objet soit en fait pleins de petits elements que tu fait disparaire au fur et à mesure qu'ils dépassent le "poteau" derreire lequel se cacher...

    En tout cas quand tu aura réussi je suis interessé de savoir comment

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Je pense avoir une solution, mais je ne sais pas si c'est la plus simple et la plus élégante.

    Je compte utiliser une méthode en deux rendu :

    Premier rendu : Je fais le rendu de la scène contenant uniquement les parois de masquage et j'extrais de ce rendu le Z buffer

    Deuxième rendu : Je fais le rendu de la scène contenant uniquement l'objet ou les objets à fais disparaitre et j'utilise un shader pour tester le Z buffer du rendu avec celui fais précédemment (Si il est plus petit, j'affiche le pixel si non il est transparent)

    Et au final j'utilise un CompositeViewer pour afficher le décor (Qui est pour moi qu'une image de font "fort heureusement") et le rendu de ma scène.

    Que pensez vous de cette méthode ?

    Quelqu'un a une petit idée de comment la programmée ?

    Merci.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Points : 33
    Points
    33
    Par défaut
    Je suis pas sur d'avoir bien compris la problématique, mais pourquoi ne pas utiliser un plan de clipping ?
    Celui-ci coupera alors ton modèle, en ne laissant visible que la partie du modèle qui est de bon côté du plan.

  5. #5
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    Citation Envoyé par romanegr Voir le message
    Premier rendu : Je fais le rendu de la scène contenant uniquement les parois de masquage et j'extrais de ce rendu le Z buffer

    Deuxième rendu : Je fais le rendu de la scène contenant uniquement l'objet ou les objets à fais disparaitre et j'utilise un shader pour tester le Z buffer du rendu avec celui fais précédemment (Si il est plus petit, j'affiche le pixel si non il est transparent)
    Le rendu en multi passes peut etre fait avec les shader dans OSG. regarde comment sont implémentés les osgFX::Scribe node par exemple.

    Citation Envoyé par Limuath Voir le message
    Je suis pas sur d'avoir bien compris la problématique, mais pourquoi ne pas utiliser un plan de clipping ?
    Celui-ci coupera alors ton modèle, en ne laissant visible que la partie du modèle qui est de bon côté du plan.
    Personellement je vois pas comment utiliser un plan de clipping autre que celui du frutum. je veux dire que le near et le far du frutum sont bien des plans de clipping et en effet ça ferait le boulot, mais aucune idée de comment implémenter ça en OSG ou OpenGl personellement...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Ange_blond Voir le message
    Personellement je vois pas comment utiliser un plan de clipping autre que celui du frutum. je veux dire que le near et le far du frutum sont bien des plans de clipping et en effet ça ferait le boulot, mais aucune idée de comment implémenter ça en OSG ou OpenGl personellement...
    Bin il y a les plans de clipping supplémentaires (jusqu'à huit je crois) que tu peux définir toi même avec glClipPlane(). Après avec OSG je sais pas si c'est prévu dans l'api...

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/05/2011, 08h58
  2. disparition progressive d'un div
    Par st123 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/06/2007, 11h47
  3. Disparition progressive de texte
    Par SheikYerbouti dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 08/04/2007, 19h50
  4. [Progress] Odbc
    Par NewB dans le forum Autres SGBD
    Réponses: 8
    Dernier message: 26/03/2003, 09h19
  5. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 12h22

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