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

1

11.02.2014, 08:30

Bitmap-Schrifart sinnvoll?

Hi,

nachdem ich vor Kurzem meinen SDL-Wrapper von v1.2 auf v2 migriert habe, möchte ich meinen Text-Rending-Ansatz verbessern. Bisher habe ich mit SDL_ttf gearbeitet und, wenn sich der Text geändert hat, eine neue SDL_Surface erzeugt. Nun müsste ich (da ich generell nur noch mit Textures arbeiten möchte) jedesmal auch die Surface auf die Grafikkarte laden - was sicher nicht die beste Idee ist.

Nachdem ich mich jetzt etwas mit Bitmap-Schriften befasst habe überlege ich einen entsprechenden Ansatz zu verwenden, d.h. verschiedene Characters in eine Grafik vorzurendern und die dann als Texture auf die Grafikkarte zu laden. Dann könnte ich beim Rendern von Strings zeichenweise Bereiche der Texture auf den Bildschirm rendern lassen - je nach dem welcher Character gerade dran ist.

Soweit ich das überblicke, ist das im Grunde genau der Ansatz von Bitmap-Schriften. Nun stellt sich mir aber die Frage, in wie weit das heute noch sinnvoll / üblich ist, soetwas zu verwenden. Analog dazu überlege ich vielleicht "einfach nur" Bitmap-Schriften zu verwenden, d.h. SDL_ttf komplett auszuklammern. Ist dabei die Verwendung von dickengleicher Schrift sinnvoll oder eher unüblich?

Ich hoffe ihr könnt mir da etwas weiterhelfen :) Danke im Voraus :)

LG Glocke

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

11.02.2014, 09:04

Meiner Meinung nach sind Bitmap Fonts für viele Spiele der einzig wirklich sinnvolle Weg, weil Schriften in vielen Spielen oft sehr spezielle Effekte, Verläufe, Outlines oder ähnliches verwenden. Das lässt sich nur über Bitmap Fonts erreichen. Ich persönlich arbeite ausschließlich damit. Fonts, bei denen alle Zeichen breit sind, schränken dabei die Kreativität unnötig ein. Bei mir sind alle Zeichen unterschiedlich breit.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

4

11.02.2014, 13:12

Ich lade mit Freetype die entsprechenden Fonttexturen zur Laufzeit.
Das hat ein paar Vorteile.
Keine Bitmapfonts notwendig(Speicherplatz), in jeder Skalierung sehr scharf und es geht jedes Sonderzeichen.
Die Ladezeit ist bei mir vernachlässigbar klein. Spezielle Buchstaben werden zur Laufzeit ergänzt.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

11.02.2014, 13:18

Und etwaige Spezialeffekte für die Zeichen? Z.B. Umrandung, 3D-Effekt, ...? Machst du die auch selbst im Code, oder brauchst du sowas nicht?

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

6

11.02.2014, 13:27

Für Umrandung hatte ich mal einen Shader. Einfache Farbverläufe gehen einfach über das Colorieren der Vertices.
Spezielle Textureffekte(Risse etc...) sollten kein Problem sein.
Andere Dinge habe ich bisher noch nicht gebracht, sollten aber theoretisch auch möglich sein.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

11.02.2014, 13:39

Na ja, für grundlegende Dinger sicher praktisch. Für Rickety Racquet hätte ich es ganz klar nicht ohne Bitmap Fonts lösen wollen - mir fehlt da die künstlerische Freiheit bei System-Fonts. Außerdem muss man die ja ebenfalls mitliefern, wenn man nicht gerade nur Arial oder Verdana als Schriftart benutzen möchte. Speicher-technisch hat man da meist auch nicht wirklich viel gewonnen. Zumal es auf ein paar mehr KB auch nicht drauf an kommt in der heutigen Zeit. Musik schlägt bei einem Spiel ja meist gleich viel heftiger zu Buche.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

8

11.02.2014, 13:55

Dafür ist zb. bei deinem Spiel halt auch die Schrift relativ unscharf.
Speicher ist natürlich eher nicht der Grund, so etwas umzusetzen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

11.02.2014, 14:57

Was ist die? Relativ unscharf? Aber nur, wenn Du das Fenster auf Vollbild schaltest mit einer Auflösung kleiner als die Bildschirmauflösung. Sonst ist da nix unscharf.
Und mal davon abgesehen sind am Ende ohnehin alles nur Pixel, da ist auch ein Systemfont niemals schärfer als ein Bitmapfont. Schon deshalb, weil man aus einem Systemfont einen Bitmapfont erzeugen kann und ich den Systemfont 1:1 als Bitmapfont hinterlegen könnte. Aber dynamisch nur durch Shader oder sonstewas folgenden Look zu erstellen dürfte ziemlich unnötiger Aufwand sein:

(Link)

Weiterer Vorteil ist, dass ich in einen Bitmapfont Zeichen hinterlegen kann, die der eigentliche Systemfont gar nicht kann (und den ich u.U. nicht nach Belieben einfach ändern darf).
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »BlueCobold« (11.02.2014, 15:05)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

11.02.2014, 15:25

Und mal davon abgesehen sind am Ende ohnehin alles nur Pixel, da ist auch ein Systemfont niemals schärfer als ein Bitmapfont.

http://en.wikipedia.org/wiki/ClearType ;)

Werbeanzeige