Seite 1 von 1
Bitmap Fonts + Unicode
Verfasst: 09.10.2014, 00:09
von Zudomon
Der Titel sagt es schon. Ich benutze in SQ ja Bitmap Fonts und hätte aber gerne die Möglichkeit, auch andere Sprache korrekt darzustellen. Allerdings weiß ich gerade nicht wie. Wenn ich korrektes Unicode unterstützen möchte, dann kann ich doch da nicht etliche Texturen nur für einen Font machen. :|
Gibt es da eine bessere Möglichkeit?
Re: Bitmap Fonts + Unicode
Verfasst: 09.10.2014, 00:59
von xq
Wenn du vorher weißt, welche Zeichen du haben willst, kannst du via Key->Value bzw Unicode->Index dir Bitmap-Fonts erstellen, die genau die Zeichen enthalten, die du haben möchtest. Das wäre ein kleiner Mehraufwand beim Erstellen eines Font-Renderings (wenn du cached), dafür könntest du alle von dir benötigten Zeichen benutzen, ohne zig Bitmaps zu haben.
Nur so ein Gedanke
Re: Bitmap Fonts + Unicode
Verfasst: 09.10.2014, 10:08
von dot
Ich persönlich arbeite mit einer Art Cache-Textur. Wird eine Glyphe benötigt, die nicht im Cache ist, wird Platz im Cache gemacht und die Glyphe dort hingepackt. Die Glyphenbitmaps lass ich mir on the fly von DirectWrite (geht natürlich aber mit FreeType oder GDI oder sonstwas) rasterisieren.
Re: Bitmap Fonts + Unicode
Verfasst: 09.10.2014, 17:35
von Spiele Programmierer
Ich habe einen Texturatlas in dem ich meine Buchstaben auf Bedarf mit Freetype rendere. Nur einige englischen ASCII Zeichen lade ich im voraus.
Vermutlich also ähnlich wie bei Dot. Wenn das Platz ausgeht, wird der Texturatlas gelöscht, in letzter Zeit nicht verwendete Buchstaben gelöscht und optimierter in eine neue Textur übertragen.
Ein Problem mit meinen Rendersystem ist, dass ich für jede Größe die Zeichen neu über Freetype in die Textur nachladen muss. Ein in der Größe skalierende Textanimation ist zum Beispiel nahezu unmöglich. Außerdem ist die Qualität in einigen Situationen eingeschränkt und es verbraucht viel Speichern, oder alternativ läuft der Texturatlas dauernd über. Wenn ich meinen Text-Renderer mal erneuere, würde ich vermutlich versuchen auf eine Technik, wie Distance Fields, zu wecheln.
Re: Bitmap Fonts + Unicode
Verfasst: 09.10.2014, 18:20
von Zudomon
Danke für eure Antworten! :D
Ich glaube, dann scheint es wohl das Beste zu sein, es mit so einer Cache Textur zur Laufzeit zu probieren.
Re: Bitmap Fonts + Unicode
Verfasst: 12.10.2014, 22:45
von Jonathan
Ja ich meine, wenn es jetzt nicht gerade Chinesisch ist, hast du ja in jeder Sprache echt nur eine Hand voll Buchstaben. Eine Bitmapfont mit ALLEN Unicodezeichen zu machen geht natürlich nicht, aber ich denke, in wirklich den allermeisten Fällen, kann man es im voraus schon so stark einschränken, dass man weiß, was jetzt wohl benötigt werden wird.
Ich habe ja neulich einen kurzen Artikel geschrieben, wie ich Texte render. Die Methode kann absolut nicht viel, war dafür aber ruck zuck implementiert. Damit würde ich es wohl so lösen, dass ich für jede Sprache einen Satz Zeichen definieren würde, und dann schaue welche Sprache gerade gebraucht werden, die Vereinigung der Zeichen bilde und dann die Bitmapfont neu generieren. Selbst wenn das messbar lange dauern würde, Sprachen ändern sich ja nicht 30 mal pro Sekunde.
Bei sowas wie chinesisch, wirst du eventuell nicht alle Zeichen vorrätig halten können (wobei ich mich nie wirklich mit chinesisch beschäftigt habe), und brauchst vermutlich eine Strategie, schnell die benötigten nachladen zu können. Aber ich bin immer der Meinung, dass wenn man ein Problem mit wenig Aufwand so lösen kann, dass es fast immer ausreichend ist, man sich gut überlegen muss, ob man jetzt wesentlich mehr Arbeit in die Version die dann wirklich immer optimal funktioniert stecken will. Denn das immer zu tun ist genau die Art, wie Projekte niemals fertig werden. Das ist einfach so.