# LWJGL/OpenGL und Text



## Anton2k (16. Jan 2012)

Eine weitere Frage die sich mir stellt. Ich wollte Text ausgeben und bin erst mal ins Staunen gekommen das das gar nicht so simpel ist wie ich dachte. Da bin ich mich jetzt am Einarbeiten und steige langsam durch. Ich werde mir mein Bitmap beim Start des Programms erstellen lassen um dann damit den Text darzustellen. Generell einzelne Buchstaben von ner Textur auf Würfel zu Mappen scheint der sinnigste Weg zu sein wenn ich alles richtig interpretiere. 

Aber jetzt die Frage...ist das permanent genug? Ich hab dann eine GL Liste mit den 256 Standard Zeichen. Ein String wird Zeichen für Zeichen durchgegangen und der Passende Char ausgegeben. Bei einzelnen Worten kann ich mir das noch gut vorstellen, aber was wenn es ein längerer Text ist?

Ich hab immer sorge einen Weg zu nehmen der sich dann aus nicht schnell genug herausstellt wenn das Programm mal größer und umfangreicher ist als mein Testprojekt jetzt.


----------



## Evil-Devil (16. Jan 2012)

Das ist gängige Praxis. Im LWJGL Forum gibt es eine entsprechende TTF Klasse (basierend auf der aus SLICK) die du nutzen und nach deinen Bedürfnissen anpassen kannst.
Complete TrueTypeFont class that only requires LWJGL


----------



## Marco13 (16. Jan 2012)

Wobei man wohl erwähnen sollte, dass man das nicht verwenden würde, um einen Texteditor zu programmieren.... Was sind "längere Texte"?


----------



## Anton2k (16. Jan 2012)

Ok dann bin ich wenigstens auf dem richtigen Weg. 
Unter längeren Texten habe ich eine z.B. Beschreibung verstanden. Sagen wir mal 500 Zeichen.
Oder man nehme ein blödes Beispiel man wolle unbedingt ein ASCII Art mit 10.000 Zeichen in OpenGL Darstellen,...

Wobei der Gedankengang interessant wäre...Ein Grafisch aufwendiger Text Editor mit Explosionen und der gleichen .

Gut ich bin aber soweit zufrieden das dies der normale Weg ist und da viel viel Programme damit Arbeiten kann es nicht der Performance Flaschenhals auf heutigen Systemen sein, auch wenn es mir unwissendem "unpraktisch" vorkommt.


----------



## irgendjemand (16. Jan 2012)

sorry ... aber zeig mir mal bitte ein beispiel wo du gleich 500 zeichen in EINEM string hast ?
klar sieht man vor allem in vielen MMORPGs aufwendige oberflächen ... aber das sind alles einzel-strings mit vielleicht max 20 zeichen ...

und eine riesige ASCII-art wird wohl niemand in 3D redern wollen ...


----------



## schalentier (16. Jan 2012)

Wird viel Text mit dem o.g. Verfahren dargestellt, _kann_ das tatsaechlich die Performance beeinflussen. Als Loesung bietet sich ein Framebuffer an, in den der Text einmal reingerendert wird. Anschliessend wird immer nur noch die Texture hinter dem Framebuffer benutzt und damit _ein_ Rechteck gerendert.

Aber das lohnt sich erst, wenn es um groessere Mengen an Text geht.


----------



## Anton2k (16. Jan 2012)

Ok danke an alle, wieder was gelernt.


----------



## Guest2 (16. Jan 2012)

Moin,

hier hatte ich vor einiger Zeit auch mal einen Ansatz gezeigt, wie man Text mittels Shader darstellen kann.

Viele Grüße,
Fancy


----------



## Spacerat (17. Jan 2012)

Sooo... an dieser Stelle zum X. Mal meine ureigenste Creation einer JGL-Erweiterung für LWJGL (ein JOGL-Pendant existiert dafür auch). An den Bildern lässt sich erkennen, was sich in Sachen Text alles damit anstellen lässt (neben Bitmap-, Outline- und Textured Outline-Texte z.B. auch Texturpuffer aus beliebigen Bildern (Image.class)). Der Quellcode des Ganzen ist bis auf wenige Neuerungen (z.B. Textausrichtung) weitläufig Dokumentiert, jedoch ist die Extension in ihrer Gesamtheit bei weitem noch nicht fertig und mit Sicherheit auch stark verbesserungswürdig. Z.B. können die Texturpuffer noch nicht in Red, Green, Blue, Grayscale oder Monochrome gewandelt werden, obwohl die Konstanten dafür bereits existieren. Wer noch Fragen hat oder mir bei der Weiterentwicklung der Extensions behilflich sein möchte - selbst wenn ich in letzter Zeit nur sehr wenig von eben dieser habe - kann mir ja 'ne PN schicken. Fragen zu den JGL-Methoden beantworte ich natürlich gerne in diesem oder vllt. sogar in einem eigens dafür geschaffenen Projekt-Thread, wenn ich nur wüsst, wie man hier Projekte hosten kann. Naja... viel Spass damit.


----------

