Results 1 to 4 of 4

Thread: text rendering

  1. #1
    Principal
    Join Date
    Jun 2009
    Posts
    52
    Thanks
    18
    Thanked 4 Times in 4 Posts

    text rendering

    hej allerseits

    welche methode zur darstellung von text (gaaanz einfacher 2D text, keine effekte oder sonstiges kopliziertes zeug) ist empfehlenswert?
    bzw. ist die verwendung von (zb.) FTGL erlaubt und hat da schon jemand erfahrungen gesammelt?

    persönlich nicht sehr aufwändig stelle ich mir folgende methode vor:
    1. für jedes textzeichen (buchstabe, ziffer, symbol, ...) liegt ein bitmap vor.
    2. diese einzelnen bitmaps werden dann kombiniert (richtig zusammengestückelt) über das textfeld (ein simples rechteck das den text darstellen soll) gelegt


    ... ich hab halt (immer) noch nicht wirklich viel erfahrung was C++ und OpenGL anbelangt, und kann deshalb den wahren aufwand und eventuelle stolpersteine nicht abschätzen

    vielen dank für eure anmerkungen.
    dominik

  2. #2
    Veteran
    Join Date
    Oct 2011
    Posts
    14
    Thanks
    5
    Thanked 3 Times in 2 Posts
    Ich habs bei uns so eingebaut:
    1. eine bitmap die eine 16x16 matrix mit allen Chars des 8bit Ascii zeichensatzen. (gibt tools fürs bitmap erstellen)
    2. Dann Eine Methode die für jeden Buchstaben ein viereck anlegt und aus Asciiwert die UV-koordinaten ausrechnet.
    3. Einen Shader ohne Projektion der die Buchstaben zeichnet. (mit der Z-Koordinate kann man dann die reihenfolge (bei alpha und mehreren übereinander) beieinflussen

    Hier wird das einigermaßen gut erklärt:
    http://www.opengl-tutorial.org/inter...al-11-2d-text/

  3. The Following User Says Thank You to pWn3d For This Useful Post:


  4. #3
    Baccalaureus
    Join Date
    Jan 2007
    Posts
    520
    Thanks
    0
    Thanked 46 Times in 38 Posts
    habe leider selbst keine erfahrung mit text rendering libraries in c++, würde aber dazu raten eine zu verwenden wenn sich eine anbietet (generell kann es nützlich sein sich eine user interface library für weiterführende lvas/projekte anzuschauen, hier hat sich zb qt empfohlen; für einfaches text rendering rentiert es sich vielleicht nicht, aber bevor man sein eigenes komplexes user interface system baut, auf jedenfall auf libraries zurück greifen)

    der lern-effekt sich selbst einen text renderer zu schreiben ist nicht so groß, es ist in erster linie aufwand es zu implementieren; außerdem kann es je nach font hübscher sein die abstände zwischen buchstaben zu variieren etc - ein einfacher/potentiell hübscher mittelweg ist es, wenn man nur wenige menüs braucht, diese in einem anderen programm zusammen zu bauen und dann über texturen zu laden, nur den dynamischen text mittels text rendering zu erstellen

    Also für spiele ist es oft auch üblich das menü außerhalb zu erstellen und dann aus bitmaps zusammen zu stückeln. Weil man dabei einerseits mehr gestaltungsmöglichkeiten hat und andererseits den mehraufwand minimiert der zwangsweise durch einen selbst implementiertes menü system entsteht. Oft hat es in der vergangenheit ausgereicht die menüs ziemlich statisch zu halten. Aber das varriiert natürlich von genre zu genre sehr. (Ein vermutlich uralt beispiel für ein hübsches user interface ist für mich diablo 2 - das aber soweit ich mich erinnern kann nur für 2 bildschirmauflösungen optimiert war.)
    Last edited by Necrowizzard; 15-06-2012 at 18:24.
    Matthias
    CG, Vis2, AlgRT Tutor

  5. #4
    Principal
    Join Date
    Jun 2009
    Posts
    52
    Thanks
    18
    Thanked 4 Times in 4 Posts
    Quote Originally Posted by pWn3d View Post
    Ich habs bei uns so eingebaut:
    1. eine bitmap die eine 16x16 matrix mit allen Chars des 8bit Ascii zeichensatzen. (gibt tools fürs bitmap erstellen)
    2. Dann Eine Methode die für jeden Buchstaben ein viereck anlegt und aus Asciiwert die UV-koordinaten ausrechnet.
    3. Einen Shader ohne Projektion der die Buchstaben zeichnet. (mit der Z-Koordinate kann man dann die reihenfolge (bei alpha und mehreren übereinander) beieinflussen

    Hier wird das einigermaßen gut erklärt:
    http://www.opengl-tutorial.org/inter...al-11-2d-text/
    hej

    das tutorial ist genial!
    vielen dank für den tip - hat super geholfen

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •