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 :

[OpenSceneGraph] Pb récupération d'image dans une texture


Sujet :

OpenSceneGraph

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 12
    Points
    12
    Par défaut [OpenSceneGraph] Pb récupération d'image dans une texture
    Bonjour à tous,

    J'ai un problème, lorsque je charge un objet avec osgdb::readNodeFile, comment savoir si les faces qui sont texturées utilisent une image chargée dynamiquement (.osg par exemple qui ne contient que le nom des fichiers de texture) ou si l'image est comprise dans le fichier (.ive où les images sont directement dans le fichier chargé) ?
    Merci

  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 : 38
    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
    Salut

    lorsque tu charge un fichier OSG, comme tu l'as dit il est en .osg (ASCII) ou .IVE(binaire) et seul l'IVE contient les textures...

    Une fois dans le sceneGraph, je doute que tu puisse remonter dans les stateset assez pour trouver ce genre d'info, donc, je te conseille de te baser sur le format de fichier que tu charge...

    C'est tout ce que je vois pr le moment... désolé.
    (d'autres ont peut etre des avis plus poussés sur la question ...)
    "le langage C permet de tout faire, y compris se tirer dans le pied. Le langage C++ permet de tout faire, y compris se tirer dans le pied - et réutiliser la balle"

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 12
    Points
    12
    Par défaut
    En fait, lorsque que je charge le fichier j'utilise un nodeVisitor et j'arrive à retrouver mon osg::Texture, à partir de là je peux récupérer l'osg::Image mais je me suis rendu compte que si le fichier associé à l'image n'existe pas, osg fait comme si l'osg::Image était nul ... alors que j'aimerai quand même récupérer le nom du fichier pour afficher une erreur de chargement et proposer à l'utilisateur de charger un autre fichier image.

    Pour résumer lorsque le fichier image est compris dans l'objet, je voudrais charger l'image normalement et lorsque c'est un lien vers un fichier image uniquement je voudrais le savoir ...

    Ce qui ramène ma question à : comment savoir si un objet osg::Texture à une image compris dans le fichier ou si c'est juste un lien ?

  4. #4
    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 : 38
    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
    Alors techniquement, si l'image est nulle, je pense que de récuperer le nom du fichier est déjà pas trop fesable. Une osg::Image n'a pas de champ "path"... même si elle était valide tu ne pourrais peut etre pas récuperer son chemin...

    Peut etre peut tu tenter qqch dans ce genre là : au chargement de ton modele, tu vérifie si c'est un IVE ou osg, en ensutie tu parcours avec ton visitor et tu voidsi tu as des textures vides. Dans ce cas tu saura quel genre de texture demander à l'utilisateur...

    Je n'ai pas de meilleure réponse... peut etre devrais tu essayer la mailing list si tu veux etre sûr.
    "le langage C permet de tout faire, y compris se tirer dans le pied. Le langage C++ permet de tout faire, y compris se tirer dans le pied - et réutiliser la balle"

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 12
    Points
    12
    Par défaut
    Merci ange_blond, j'ai finalement opté pour ta solution puisque apparement il n' y aurait que les .ive qui contiennent les images, alors j'ai fait un simple booléen que je donne au nodeVisitor (dont je dérive) pour savoir si c'est un fichier .ive.

    C'est sûr que c'est pas très optimal si un autre format du genre .ive voit le jour mais ça fonctionne pour le moment ...

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

Discussions similaires

  1. Récupération d'une image dans une Axes défini
    Par sas202010 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 10/06/2014, 01h25
  2. [MySQL] Récupération d'une image dans une BDD mySQL
    Par jojojo84 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/12/2010, 16h34
  3. Clonezilla Récupération de fichiers dans une image
    Par Invité dans le forum Administration système
    Réponses: 2
    Dernier message: 05/05/2010, 11h38
  4. Réponses: 6
    Dernier message: 17/04/2009, 16h48
  5. [HttpUnit] Récupération Image dans une ligne.
    Par Tan dans le forum Tests et Performance
    Réponses: 5
    Dernier message: 24/07/2007, 13h22

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