Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Korowai

unregistriert

1

17.02.2015, 18:37

Text mit GLFW

Hi,

ich suche ein Tutorial für eine Erstellung von 2D Text mit Open GL 3+ und GLFW. Oder kann jemand einen einfachen Codeblock einstellen, bei dem ein Beispielsatz gerendert wird.
GLFW unterstützt keinen Textoutput.
Kann man gleichzeitig GLUT für Text und ansonsten GLFW nehmen? Ist zwar bescheuert, aber wäre nach einer zeitintensiven Googelei meine momentane Intension.


Danke,

Julién

Alter Hase

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

2

17.02.2015, 21:18

Was hat Rendering direkt mit GLFW zu tun?
GLFW ist als Abstraktionsschicht zum OS gedacht.

Das Textrendering muss du mit OpenGL umsetzten.
Am besten funktioniert es, wenn du eine Textur (Texturatlas) mit allen ASCII Buchstaben nimmst
und nur einen Teil der Textur (mit dem entsprechenden Buchstaben) auf ein 2D Quad renderst.

Ansonsten: hier
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

3

18.02.2015, 09:44

Ich mach es so:

http://zfx.info/viewtopic.php?f=11&t=3557

Warum die Lösung besser ist:
- du kannst zur Laufzeit die Textgröße bestimmen
- du kannst zur Laufzeit die Schriftart bestimmen
- du kannst zur Laufzeit bestimmen, welche Zeichen (genauer gesagt: Glyphen) du brauchst und sparst damit Speicher
- die Glyphen sind viel effizienter in der Textur gespeichert
- du hast Proportionale und nicht nur Mono-Space Schriftarten
- du hast Kerning (d.h. Unterschneidung)
- du benötigst keine externen Tools um Font-Dateien zu erstellen

Was daran ok ist:
- Es ist zum reinen Rendern sehr schnell, ich wüsste derzeit nicht, wie man es wesentlich effizienter machen kann. Aber das andere verlinkte Tutorial sieht auch gut aus und in einem klassischen Spiel hat man nur eine handvoll Texteinblendungen. Und es ist schwierig, so viel Text auf einem Bildschirm unter zu bringen, dass du selbst eine sehr schlechte und langsame Implementierung irgendwie bemerken würdest. Geschwindigkeit ist also ziemlich egal

Was nicht so gut ist:
- Du benötigst eine externe Bibliothek, nämlich Freetype. Aber Freetype hat keine weiteren Abhängigkeiten und lässt sich kinderleicht kompilieren.
- Du benötigst eine zweite externe Bibliothek, Freetype-Gl. Aber du kannst Problemlos die ~5 benötigten Dateien rüberkopieren und in dein Projekt einbinden und musst (und solltest) es nicht als extra Projekt kompilieren. Der Aufwand ist also minimal.


Insgesamt ist es immernoch eine Lösung, die du sehr schnell einbinden kannst und die dir echt viele Freiheiten lässt.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige