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

Sylence

Community-Fossil

  • »Sylence« ist der Autor dieses Themas

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

1

22.04.2011, 16:10

Vektorfonts vs. Bitmapfonts

Hallo :)
Ich wollte mal in mein kleines 2D-Framework Vektorfonts reinbasteln. Beim stöbern im Netz hab ich dann gemerkt, dass das eigentlich niemand macht, sondern immer Bitmapfonts benutzt werden. "Weil es jeder so macht" ist für mich aber kein Grund Bitmapfonts einzusetzen. Das Vektorfonts langsamer zu rendern sind ist mir klar, wobei ich eigentlich bezweifel, dass das so stark ins Gewicht fällt, um sich mit Bitmapfonts rumzuschlagen.

Ist die Geschwindigkeit echt der einzige Grund Bitmapfonts zu benutzen, oder gibts da noch andere Nachteile, an die ich noch nicht gedacht habe ?

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

22.04.2011, 16:27

Wäre spontan der einzige Grund der mir einfallen Würde. Was du jedoch machen kannst, ist wie bei XNA einfach deine Fonts vorrendern lassen. Du Erstellst quasi zur Laufzeit einfach Bitmapfonts aus deinen Vektorfonts und kannst diese dann direkt rendern. So hast du das Problem mit der Geschwindigkeit nicht.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Sylence

Community-Fossil

  • »Sylence« ist der Autor dieses Themas

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

3

22.04.2011, 16:49

Hm das beste aus beiden Welten :)
Das werd ich wohl so machen. Klasse Idee. Danke.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

22.04.2011, 16:52

Unter Windows gibts neuerdings DirectWrite, eine sehr mächtige API zum Umgang mit allen Arten von Fonts. Wenns plattformunabhängig sein soll schau dir mal FreeType an.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

5

22.04.2011, 17:54

Schriften sind oft auch ein heikles Thema was Copyrght und Patente angeht. Das Patent für Bytecode Hinting ist z.B. erst im Mai 2010 (siehe http://www.freetype.org/patents.html) abgelaufen. Es war zwar schon lange in Freetype implementiert, aber rechtlich fraglich und daher oft auf Kosten der Darstellung deaktiviert. Und eine Schriftart nutzen um ein Bitmap Font zu erstellen, oder die Schriftart mitliefern ist bzgl. des Copyrights auch ein Unterschied. Aber da gibt es inzwischen auch open source Schriftarten wie z.B. Libaration.

6

22.04.2011, 21:09

Also wenn du es so machen willst wie Schorsch´s Idee und du DirectX verwendest, dann kannst ganz easy wärend der Laufzeit mit der GDI ein Font auf eine Textur zeichnen und diese entspricht, dann einer ganz normalen Bitmapfont. Mach ich neuerdings auch so und es läuft sehr schnell, da man ja nur ganz normale Textured-Quads rendert.

Oder wenn es Vista/7 only ist wäre, wie dot schon vorgeschlagen hat, DirectWrite wohl die beste Lösung.
Die API ist sehr schön zu benutzen. Habe allerdings nur ein paar kleinere Tests damit gemacht.

Sylence

Community-Fossil

  • »Sylence« ist der Autor dieses Themas

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

7

22.04.2011, 21:21

Jup mach das jetzt mit der GDI. DirectWrite ist zwar schöner, aber ja nicht unter XP verfügbar.
Und da ich DirectX9 benutze hätte ich auch gern noch XP unterstützt...

Naja mal gucken vielleicht schreib ich den render teil irgendwann mal auf Dx11 um...

8

22.04.2011, 23:55

Intern müsste so ziemlich alles Bitmapfonts sein. Die werden halt nur beim Laden passend aus den TTF Dateien erzeugt.
Ich würd mir aber auch irgendwie eine schöne Lib dafür suchen. Texte darstellen kann sehr kompliziert werden und am Ende kann man halt Text darstellen. Das haut letztendlich keinen vom Hocker und ist deshalb die Arbeit meist nicht wert.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige

Ähnliche Themen