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 :

modification textures en temps réel


Sujet :

OpenGL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Points : 21
    Points
    21
    Par défaut modification textures en temps réel
    Bonsoir à tous,

    j'aurai une question afin de savoir s'il est possible de réaliser mon idée sous openGL. Ayant pour idée projet de réaliser une sorte de musée virtuelle et sachant que les textures sont chargées initialement durant la compilation je souhaiterais savoir si celles-ci peuvent être modifiables en temps réel ?

    Je m'explique, je souhaiterais pouvoir modifier une image représentant un tableau (chargé comme une texture sur un objet 3D) lors d'un clique. Pour exemple, après une balade dans le "musée" virtuel 3D, en cliquant sur un des tableau s'y trouvant l'utilisateur verrait apparaitre un menu déroulant lui permettant d'afficher les différentes modifications possible du tableau (modifier ses couleurs, sa rotation ou autres modification), puis suite au divers traitements effectués par le programme, l'ancienne image serait remplacée par la nouvelle ayant subit les transformations.

    Merci d'avance pour vos avis

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 579
    Points : 1 539
    Points
    1 539
    Par défaut
    Salut

    les textures sont chargées initialement durant la compilation
    Je ne comprend pas trop ce que tu veux dire par là. Normalement les textures sont générée à l'exécution à coup de glTexImage().
    Sinon, c'est tout à fait possible de modifier les textures à la volée pendant l'exécution du programme

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 897
    Points : 219 633
    Points
    219 633
    Billets dans le blog
    125
    Par défaut
    Bonjour,

    Je pense que la solution se trouve dans l'utilisation des FBO. Cela permettra de faire un rendu de texture à l'écran (ou dans une autre texture) et de lui appliquer des effets.

  4. #4
    Membre actif Avatar de Robxley
    Homme Profil pro
    Docteur ingénieur traitement d'image
    Inscrit en
    Mai 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Docteur ingénieur traitement d'image

    Informations forums :
    Inscription : Mai 2009
    Messages : 158
    Points : 228
    Points
    228
    Par défaut
    Un peu comme pyros, je ne vois pas trop ce que tu appelles chargement pendant la compilation. Tu veux peut être plutôt dire, chargement des données en début d’exécution de ton programme hors boucle principale ?

    Si non à première vue rien ne t’empêche de changer de texture pour un objet en temps réel avec opengl.

    En temps réel, l'utilisateur de ton programme choisit la texture via un menu textuel, tu charges cette texture en temps réel et tu l'affiches sur l'objet en question, après c'est juste une question de "bind" avec la fonction glBindTexture.

    Si ton menu présente un aperçu de l'ensemble des textures, rien ne t'empêche de toutes les charger en début de ton programme, ou à l'ouverture du menu en temps réel s'il n'y en a pas trop ( tu peux même chargée des images de résolution inférieure pour ton menu si besoin), une fois le choix de l'image faite par l'utilisateur tu gardes celle choisi et tu supprimes les autres.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Points : 21
    Points
    21
    Par défaut
    Bonsoir à tous,
    tout d'abord excusez moi pour la réponse tardive, je me suis effectivement trompé en m'exprimant les textures étant chargées lors de l'execution.

    En fait je ne charge pas une nouvelle texture lors du clique, mais lors du clique l'image subit différents traitement via des algo (exemple passage de couleurs RGB en HSV ou transformation d'une image bitmap en appliquant du dithering) ce qui me génére une nouvelle image (textures).

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 579
    Points : 1 539
    Points
    1 539
    Par défaut
    FBO+shader si tu es motivé et que tu t'y connais un minimum en OpenGL.

    Sinon, peut être qu'une solution CPU suffirait:
    Tu applique ton algo sur l'image coté CPU et tu la renvois à coup de glTexImage(). Si l'algo n'est pas trop compliqué, cela pourrait prendre quelques dizaines de ms au plus et resté relativement réactif.
    La solution FBO + shader serait beaucoup plus rapide, mais aussi plus délicate à mettre en place.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Points : 21
    Points
    21
    Par défaut
    Merci pour l'info, je vais choisir la première méthode pour faciliter le temps de réalisation. Cependant avec cette méthode sera t-il possible de travailler sur mon image pixel par pixel avec l'import de l'image comme une structure ?

    Je pensais initialement importer mon image initiale et plaquer la texture, puis sur click faire appel à mes fonctions prenant l'image en paramètre qui me générerait donc une nouvelle texture remplaçant la première.

    Actuellement toutes mes images(pour les tableaux devant subir des transformations) sont stockées avec leurs coordonnées (et rst) accompagnées de l'image à plaquer dans un fichier auxiliaire .m3s . Travaillant sur chaque image de manière indépendante est-il préférable de supprimer ce fichier et de coder en dur les coordonnées?

    Merci d'avance

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 579
    Points : 1 539
    Points
    1 539
    Par défaut
    Je ne comprends pas trop ton problème en fait.

    Tu as ton image coté CPU (chargé depuis un fichier quelconque), sous forme de buffer de pixel. Tu applique ta transformation dessus (changement de couleur, noir et blanc, ...), et tu met à jour ta texture. Normalement, tu n'as pas besoin des coordonnées pour faire ça, non ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Points : 21
    Points
    21
    Par défaut
    Merci pour tous, cela fonctionne parfaitement donc le problème est résolu

Discussions similaires

  1. Modification d'une page Html en temps réel avec pHp.
    Par Destiny-06 dans le forum Langage
    Réponses: 5
    Dernier message: 12/06/2014, 15h44
  2. Textures procédurales temps réel
    Par idmapria dans le forum DirectX
    Réponses: 35
    Dernier message: 08/06/2012, 19h40
  3. Modification en temps réel
    Par sepullayer dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 21/10/2008, 15h51
  4. [AJAX] Modifications en temps réel.
    Par Bouarf77 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/08/2006, 15h27
  5. Durée d'un traitement temps réel
    Par Almex dans le forum C
    Réponses: 5
    Dernier message: 29/03/2003, 14h15

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