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 :

Affiche d'image sur bord d'ecran


Sujet :

OpenGL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut Affiche d'image sur bord d'ecran
    Bonjour,

    je debute en opengl, mais pour l'instant je souhaite juste afficher des images a l'ecran, sans effet particulier.

    j'utilise les fonctions glRasterPos2i() et glDrawPixels(), qui fonctionnent tres bien pour ca.

    Le probleme, c'est que parfois je donne a glRasterPos2i() des coordonnees negative, pour par exemple afficher juste le bord droit d'une image sur la partie gauche de l'ecran.
    Et cela ne fonctionne pas, car visiblement des que le coin en bas a gauche de l'image n'est pas sur l'ecran, celle ci n'est pas du tout affichee.

    Ci vous avez une solution simple a ce probleme ...


    Alex.

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Par défaut
    Salut
    la fonction RasterPost et ReadPixel considere la fenetre ou tu affiches commencant par (0,0), donc pas d'indes negative ( d'apres ce que j'ai compris du redbook)

    X = 0, Width
    Y = 0 , height

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut
    Oui j'ai lu ca aussi sur internet.
    Mais du coup, existe il un autre moyen pour afficher une image qui marche dans mon cas precis ?


    Alex.

  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
    Le mieux pour afficher une image, c'est un bête quad (deux triangles) texturé. Là tu n'auras aucune limitation.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut
    Merci je vais me renseigner.


    Alex.

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

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 610
    Par défaut
    ne pas oublier une limitation : npot

    ton image, si tu veux l'afficher avec des triangles ou un quad, c'est en l'utilisant comme texture

    et par conséquent l'image doit être de dimensions en puissances de 2
    ou il faudra la décomposer en plusieurs sous parties de dimensions en puissance de 2

    ps: npot = Non Power Of Two

    si tu cherches un peu su rle forum, c'est une sujet qui a fait partie de quelques discutions déjà
    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.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut
    Ah la ca devient deja complique pour un probleme apparemment simple.
    L'image en question est un carre de 26 pixels de cote.


    Alex.

  8. #8
    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
    Rien n'empêche de mettre une image de 32x32 sur un carré de 26 pixels de côté, par exemple. Tout comme rien n'empêche de mettre une image de 26x26 dans une texture de 32x32, quitte à boucher les trous avec du blanc.

    Bref il y a plein de façons de faire, ce n'est pas si problèmatique que ça.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut
    Oui c'est vrai.
    Merci beaucoup pour ces quelques pistes, je devrais quand meme m'en sortir.


    Alex.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut
    Bonjour,

    avant de tester ce que l'on m'a dit sur ce forum, je teste quelque chose d'autre que j'ai trouvé sur internet :

    10.070 How do I draw glBitmap() or glDrawPixels() primitives that have an initial glRasterPos() outside the window's left or bottom edge?

    When the raster position is set outside the window, it's often outside the view volume and subsequently marked as invalid. Rendering the glBitmap and glDrawPixels primitives won't occur with an invalid raster position. Because glBitmap/glDrawPixels produce pixels up and to the right of the raster position, it appears impossible to render this type of primitive clipped by the left and/or bottom edges of the window.

    However, here's an often-used trick: Set the raster position to a valid value inside the view volume. Then make the following call:

    glBitmap (0, 0, 0, 0, xMove, yMove, NULL);

    This tells OpenGL to render a no-op bitmap, but move the current raster position by (xMove,yMove). Your application will supply (xMove,yMove) values that place the raster position outside the view volume. Follow this call with the glBitmap() or glDrawPixels() to do the rendering you desire.
    Cela semble tres bien correspondre a mon probleme, mais me retourne une erreur a l'execution :

    Cannot use offsets when Pixel Unpack Buffer Object is disabled.

    Je ne trouve pas d'info a ce sujet sur internet.
    Si quelqu'un a une idée...


    Alex.

Discussions similaires

  1. [débutant]Afficher une image sur une JFrame
    Par mavina dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 09/08/2006, 17h25
  2. afficher une image sur toute la fenêtre
    Par argon dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 18/02/2006, 10h44
  3. Afficher des images sur une grille
    Par Coussati dans le forum Composants VCL
    Réponses: 3
    Dernier message: 27/10/2005, 10h27
  4. [images] afficher une image en fond d'ecran
    Par soulhouf dans le forum Windows
    Réponses: 8
    Dernier message: 19/09/2005, 21h03
  5. [images][C/C++] afficher une image en fond d'ecran
    Par soulhouf dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 19/09/2005, 13h54

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