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 :

Affichage d'un texte avec OpenGL


Sujet :

OpenGL

  1. #1
    Membre habitué
    Homme Profil pro
    root
    Inscrit en
    Janvier 2013
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : root

    Informations forums :
    Inscription : Janvier 2013
    Messages : 174
    Points : 144
    Points
    144
    Par défaut Affichage d'un texte avec OpenGL
    Salut à tous.
    J'ai utilisé du SFML et SDL pour des utilisations OpenGL.

    Dans les deux cas, pour afficher du texte (en 2d) sur l'écran (utilisant OpenGL), ils utilisent des TTF et surement d'autres logiciel font de même comme les éditeur de texte etc..

    J'aurais aimé savoir quel est la différence entre ces TTF et les caractères (lettre/chiffre/etc) fait (manuellement) en OpenGL directement ?

    Les TTF sont une surcouche pour facilité la tâche (au lieu de le faire manuellement un par un avec par exemple OpenGL) ? où il fonctionne autrement que je l'ignores.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 127
    Points : 33 036
    Points
    33 036
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    qu'appeles-tu TTF et manuellement OpenGL ?
    TTF est un format de fichier TrueTypeFont qui définit une police
    OpenGL n'a rien pour réaliser de l'affichage de texte basiquement

  3. #3
    Membre habitué
    Homme Profil pro
    root
    Inscrit en
    Janvier 2013
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : root

    Informations forums :
    Inscription : Janvier 2013
    Messages : 174
    Points : 144
    Points
    144
    Par défaut
    En fait j'explique:
    J'aimerais pouvoir afficher du texte dans une application utilisant OpenGL, prenons l'exemple d'un jeux en OpenGL, j'aimerais pouvoir afficher du texte dessus.

    J'ai testé SDL et SFML, les deux dispose d'une fonction propre à eu même genre: sdl_ttf(ton_texte) ou sfml_texte(ton_text) pour afficher le texte sur l'écran.

    Et les tutoriels sur OpenGL utilise toujours une fonction externe (SDL,SFML ou d'autres) pour afficher un texte.

    Donc pourquoi sa se passe comme sa, est-ce que le TTF est un requis pour afficher du texte à l'écran ?


    Pour ce qui est du manuel OpenGL, je parlais explicite, faire le caractère (lettre,chiffre,autres) via OpenGL (via des points, ligne, etc) et l'afficher en 2d.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 891
    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 891
    Points : 219 434
    Points
    219 434
    Billets dans le blog
    123
    Par défaut
    Bonjour,

    Ils utilisent le TTF, car c'est un format qui décrit une police (comment afficher le texte).
    Ensuite, comme OpenGL n'en a rien à faire d'afficher du texte (c'est une bibliothèque 3D surtout), alors la bibliothèque ne propose rien pour afficher du texte. Donc l'idée est d'utiliser SDL/SFML pour générer une texture affichable par OpenGL.

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 219
    Points : 239
    Points
    239
    Par défaut
    Bonjours,

    Sinon tu fais le rendu de chaque caractère TTF avec une taille de police choisie dans une image par les bibliothèques de ton choix (ou en recodant tout toi mème ), puis tu charges cette image dans une texture OpenGL. Ensuite pour afficher une chaine de caractère, tu n'auras qu'à dessiner des rectangle avec des coordonnées de textures approprié pour chacun des caractère, avec un petit fragment shader pour donner des effets de style sur tes écritures (ombre porté, colorisation simple, dégradé ...).

    Ensuite tu peut aller dans des solutions plus exotique ou tu met tel quel ta chaine de char dans un VBO et ensuite c'est un geometry shader qui te crée les rectangles avec les coordonnées de textures comme un grand. Cela peut s’avérer intéressant lorsque tu as beaucoup de caractères à afficher.

    En espérant que cela réponde à ta question.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Points : 74
    Points
    74
    Par défaut
    bonjour j ai une fonction qui affiche tout les texte en opengl , comme le l arabe lhebreu le chinoi et toute les langues exotic et aussi le français.....
    Testez la et donner moi vos avis .
    vous pouver tester toute les langue que vous voulez en modifiant le texte dans l exemple inclus ou dans des projet openl 3D .
    le nom de cette fonction arab je le suis moi meme.
    a bientot.
    Fichiers attachés Fichiers attachés

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 891
    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 891
    Points : 219 434
    Points
    219 434
    Billets dans le blog
    123
    Par défaut
    J'ai bien aimé le "dubelclick" dans le README (doubleclick).
    Sinon, les using namespace dans un .h, qui plus est, pour une bibliothèque, sont à bannir -> http://cpp.developpez.com/faq/cpp/?p...SPACE_no_using

    Je trouve aussi que le code est trop spécifique à Windows (WCHAR et autre...).

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Points : 74
    Points
    74
    Par défaut
    Merci pour la remarque : 2 X click
    j'ai supprimé le fichier précédent .rar et j ai reposté le nouveau modifié tu peux l'essayer et pour le WCHAR c'est pour tout les wild caractères comme arabes indou hébreu chinois... , cette fonction affiche aussi le français anglais etc...

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 891
    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 891
    Points : 219 434
    Points
    219 434
    Billets dans le blog
    123
    Par défaut
    Toujours, vous utilisez du code spécifique à Windows, dans le main.cpp.

    le WCHAR vient de windows.h (un fichier d'entête à supprimer pour le code compatible Linux/Windows/Mac). Le vrai type dans le C, pour les Wide characters est : wchar_t
    Le vrai wprintf est wprintf et non une variante bizarre de Microsoft (swprintf pour votre utilisation).
    MessageBox est aussi un truc spécifique à Windows.

    Voilà

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Points : 74
    Points
    74
    Par défaut
    Merci pour le conseil voila j'ai tout remodelé
    Fichiers attachés Fichiers attachés

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 891
    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 891
    Points : 219 434
    Points
    219 434
    Billets dans le blog
    123
    Par défaut
    Il y a toujours l'include à l'entête windows.h
    De plus, l'inclusion correcte de SDL, doit être :
    (Même pour Windows, faut juste bien configurer le projet)

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Il y a toujours l'include à l'entête windows.h
    De plus, l'inclusion correcte de SDL, doit être :
    (Même pour Windows, faut juste bien configurer le projet)
    merci , pour :c est parceque les fichier include de la SDL sont directement dans le dossier include du compilateur , peut etre que je vais reconfigurer l emplacement de la SDL
    mais voila j ai suivi tes conseil et j ai changer tous ce qui se raporte a windows et voici le nouveau code :
    Fichiers attachés Fichiers attachés

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 891
    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 891
    Points : 219 434
    Points
    219 434
    Billets dans le blog
    123
    Par défaut
    Toujours problématique. Il y a une faute de frappe dans l'inclusion de la SDL pour le fichier exemple.cpp
    La vraie inclusion pour le fichier GL (dans font.h) c'est :
    D'où vient gdiplus ? Je présume un truc Windows, non ?

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Toujours problématique. Il y a une faute de frappe dans l'inclusion de la SDL pour le fichier exemple.cpp
    La vraie inclusion pour le fichier GL (dans font.h) c'est :
    D'où vient gdiplus ? Je présume un truc Windows, non ?
    pour l entete GL/GL.h c est rectifier voila le nouveau code
    mais pour gdiplus c est parceque j ai construit le Font a partir du constructeur de la class Font qui est declarer dans le fichier header gdipluheaders.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Font(const WCHAR *familyName, REAL emSize,INT style = FontStyleRegular,
    	Unit unit = UnitPoint,const FontCollection *fontCollection = NULL);
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [PHP 5.2] Affichage d'un texte avec mise en forme
    Par runcafre91 dans le forum Langage
    Réponses: 9
    Dernier message: 16/02/2010, 21h30
  2. Afficher du texte avec OpenGL
    Par Happy dans le forum Contribuez
    Réponses: 0
    Dernier message: 27/09/2009, 00h29
  3. Affichage d'un texte avec plusieurs couleurs
    Par steeves5 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/04/2008, 14h22
  4. [JSTL 1.0.6] affichage d'un texte avec des retour chariots
    Par clettebou dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 09/08/2006, 10h16
  5. [VB.NET] comment écrire du texte avec opengl?
    Par ero_senin dans le forum OpenGL
    Réponses: 2
    Dernier message: 17/01/2005, 13h34

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