Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher du texte sous OpenGL

    8 juin 2008 à 23:01:43

    Bonsoir à tous,
    je sais que pleins de gens ont posté pour ça mais en lisant les topics, soit je ne comprenais pas, soit les résultats étaient mauvais ^^

    Pour revenir au sujet je souhaite donc afficher du texte avec OpenGL qui est variable et qui s'affiche toujours à l'écran en premier plan etc... J'ai lu qu'on pouvait utiliser TTF, FreeType truc, enfin j'ai tellement lu de trucs à ce propos que j'me suis complètement embrouillé :)

    Donc quelqu'un pourrait expliquer un moyen d'afficher du texte sous OpenGL?

    Merci

    PS: Désolé, vous devez en avoir marre d'avoir toujours les mêmes questions mais j'ai vraiment pas compris là :D
    • Partager sur Facebook
    • Partager sur Twitter
      8 juin 2008 à 23:54:02

      Salut,
      il me semble qu'il faut passer par la SDL. Tu crées une surface, tu y blittes du texte et tu l'affiches, de mémoire. Je l'ai jamais fait, juste lu quelque part... Mais je pense qu'avec une petite recherche google...
      • Partager sur Facebook
      • Partager sur Twitter
        9 juin 2008 à 6:45:45

        Oui j'ai aussi lu ça, mais pour la recherche google je tombe tout le temps sur des sites où les tutos sont incompréhensibles, ou en anglais(je parle allemand ^^ ).
        • Partager sur Facebook
        • Partager sur Twitter
          9 juin 2008 à 9:14:51

          Le moyen est assez grossièrement le suivant:

          1) Ouvrir un fichier de police (via FreeType par exemple)
          2) Récupérer les "images" (glyphes) de chaque lettre.
          3) Créer des textures à partir de ces images.
          4) Associer chaque texture à un char.
          5) Et voilà.

          Il faut vraiment plonger dans la doc de FreeType pour trouver ce que tu cherches. Ce n'est pas facile.
          • Partager sur Facebook
          • Partager sur Twitter
          Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
            9 juin 2008 à 19:56:02

            Est-ce que t'aurais le code pour ça ? Parceque j'ai regardé la doc et encore une fois j'ai pas vraiment compris.
            • Partager sur Facebook
            • Partager sur Twitter
              10 juin 2008 à 9:21:01

              Oui, j'ai du code pour ça.

              Ca sert cependant à rien que je te le donne. Tu vas rien y comprendre et pas savoir comment l'utiliser. Je te coneille plutôt d'essayer par toi même et de poser des questions sur des points précis qui coincent.
              C'est vrai que c'est pas facile, mais c'est pas la dernière difficulté que tu vas rencontrer dans le monde de la 3D.
              • Partager sur Facebook
              • Partager sur Twitter
              Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
                10 juin 2008 à 17:55:59

                SDL -> si tu veut pas de perte de performance, prend plutot la SFML :D

                sinon, tu peut allez voir le code de la SFML pour afficher du texte ( elle utilise openGL ^^).
                • Partager sur Facebook
                • Partager sur Twitter
                  10 juin 2008 à 23:43:40

                  Citation : danman

                  SDL -> si tu veut pas de perte de performance, prend plutot la SFML :D


                  ah ? Ce qui est plus rapide avec la SFML c'est l'affichage car elle passe par l'accélération 3D et donc par opengl.. La on utilise la SDL avec un contexte OpenGL, donc tout le rendu se fait via opengl et on utilise juste la SDL pour les entrées/sorties/la fenetre. Donc niveau rapidité ca change rien ... encore un troll de plus quoi ..


                  Citation : Arkhiall

                  alut,
                  il me semble qu'il faut passer par la SDL. Tu crées une surface, tu y blittes du texte et tu l'affiches, de mémoire. Je l'ai jamais fait, juste lu quelque part... Mais je pense qu'avec une petite recherche google...


                  Il est fortement déconseillé de blitter une surface SDL sur un contexte opengl pour des raisons de performance.



                  Sinon pour l'affichage de texte, il y a plusieurs possibilitées, soit passer par une police vectoriel (comme les fonts freetype (.ttf)), soit passer par une image bitmap contenant l'alphabet.
                  La 2eme methode est plus simple a mettre en oeuvre, mais ne bénificie pas de l'avantage de la 1ere : aucune perte qualité au zoom.

                  La 1ere solution, la mieux, mais elle est difficilement portable (le code source complet est disponible dans les liens en bas)
                  http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=13

                  La 2eme solution, par bitmap (idem pour les sources)
                  http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=17

                  Tu peux aussi te servir de SDL_ttf qui te permet d'écrire facilemment du texte sur une surface SDL, il te suffira ensuite de la convertir en une texture opengl.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Afficher du texte sous OpenGL

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown