Einzelnen Beitrag anzeigen

Benutzerbild von Lossy eX
Lossy eX

Registriert seit: 7. Aug 2007
113 Beiträge
 
#6

AW: OpenGL - Text ausgeben mit TextSuite klappt nicht

  Alt 11. Aug 2010, 09:05
Blackfin: Bitmaps fonts sind hoffnungslos veraltet, hässlich und langsam. Zur heutigen Zeit kann ich niemandem mehr empfehlen solche Texte zu benutzen.

fui-tak: Ich bin per Zufall gerade auf das Thema gestoßen. Normal bin ich nicht wirklich häufig hier unterwegs. Ich weiß nicht ob du die Lösung mit der TextSuite Bibliothek jetzt schon komplett verworfen hast oder nicht. Mir ist in deine Code aufgefallen, dass du ein Font mit der Größe 512 erstellst. Das ist doch ein bisschen arg groß. Vor allem wenn man bedenkt, dass die Zeichen dann eine Höhe von 512 Pixeln besitzen die benutzten Texture aber per default eine Größe von 256x256 haben. Mit anderen Worten. Aufgrund der viel zu großen Schriftgröße werden keine Buchstaben erstellt. Und wenn keine erstellt werden können auch keine dargestellt werden.

Ansonsten kann ich nur empfehlen auch das Faq "What should i do if it's dosn't work?" zu berücksichtigen. Also nach dem Initialisieren der Bibliothek auf Fehler prüfen. Wenn Fehler vorhanden sind, dann auch überprüfen in welchen Methoden die Fehler aufgetaucht sind.

Bei der TextSuite kommt noch hinzu, dass diese den Koordinatenursprung ObenLinks erwartet. Also wie das auf einer 2D Zeichenfläche so üblich ist. Wenn du jetzt aber mit einem Koordinatenursprung UntenLinks arbeitest kann es sein das der Text nicht da auftaucht wo du ihn erwartest. Er müsste auf dem Kopf stehen bzw im schlimmsten Fall je nachdem wie du dein OpenGL verändert hast ist es auch nicht auszuschließen, dass du die Rückseite des Textes siehst der durchaus aus ausgeblendet wird. Also das du nichts siehst obwohl alles funktioniert. Da im Zweifel mal GL_CULL_FACE deaktivieren.

PS: Nur für den Fall, dass du das noch mal probieren solltest. Die TextSuite arbeitet mit Texturen um die Schriften darzustellen. Beim Ausgeben von Text werden also anderen Texturen gebunden. Das heißt du darfst nach der TextAusgabe nicht erwarten, dass deine zuvor gebundene Textur immer noch aktiv ist.

PPS: Sowohl TexturFonts als auch BitmapFonts lassen sich durch deine OpenGL Einstellungen beeinflussen. Das soll bedeuten, wenn du typischerweise mit einem schwarzen Hintergrund arbeitest, irgendwann die Farbe Schwarz gesetzt hast und dann später Text ausgeben willst, dann wird sich diese Farbe auch auf den Text übertragen. Schwarz auf schwarzen Grund sieht man dann aber nicht. Genau so verhält es sich mit Texturen. Das letzte aktive Texel der noch aktiven Textur wird bei BitmapFonts auf die komplette Schrift gepackt. Oder Licht etc. Also alles was die Farben verändert verändert auch immer die Schrift.

Bei Bitmapfonts musst du im übrigen auch immer dafür sorgen, dass die RasterPos im Bild liegt. Sollte die obere Linke Ecke auch nur 1 pixel außerhalb des Bildes sein wird der komplette Text nicht mehr gezeichnet.
Ich habe ja keine Vorurteile gegenüber Autofahrern ... aber Fahrer von BMW und Mercedes bestätigen diese regelmäßig.
Außerdem neue technologische Errungenschaften: Serienmäßig eingebaute Rechtsfahrsperre und der stromsparende Blinker.
  Mit Zitat antworten Zitat