JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=f4c79d8dde15e243ca1244cd8b5918ceMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Eigene Fonts benutzen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
fast hawk
Senior JLI'ler



Anmeldedatum: 15.07.2005
Beiträge: 237
Wohnort: Freiburg
Medaillen: Keine

BeitragVerfasst am: 03.11.2006, 14:24    Titel: Eigene Fonts benutzen Antworten mit Zitat

Hallo erstmal

Hät mal ne frage gibt es eine Möglichkeit mit ID3DXFont eigent Fonts zu importieren und benutzten oder ist ID3DXFont veralter und es gibt längst eine
überarbeiterte Möglichkeit der Textausgabe unter dx9.

Danke schonmal jetzt.

mfg fast_hawk
_________________
Jetziges Projekt: The Ring War
Status: 40%
-----------------------------------
Nicht weil es schwer ist, wagen wir es nicht, sondern weil wir es nicht wagen, ist es schwer.
--
Lucius Annaeus Seneca (4)
röm. Philosoph, Dramatiker und Staatsmann
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 03.11.2006, 15:15    Titel: Antworten mit Zitat

Ich glaub man kann einfach ein TrueTypeFont benutzen. Müsste aber in der Doku stehen, wie genau man das einstellt. Sollte sich abr einiges finden lassen zu dem Thema.
Veraltert würde ich nicht sagen, ich würds einfach benutzen.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 03.11.2006, 15:48    Titel: Antworten mit Zitat

Kleiner erfahrungsbericht zum Theme ID3DXFont:

ohne ID3DXFont und bissl Szenenzeugs: 10.000FPS
mit ID3DXFont und bissl Szenenzeugs: 1.000FPS
mit ID3DXFont und bissl Szenenzeugs: 300FPS bei nem anderen Rechner.

Als Notlösung brauchbar aber suche dir lieber was anderes. I3DXLine sowie Font nutzen intern GDI und diverse texturspielerein Wink
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
fast hawk
Senior JLI'ler



Anmeldedatum: 15.07.2005
Beiträge: 237
Wohnort: Freiburg
Medaillen: Keine

BeitragVerfasst am: 03.11.2006, 16:50    Titel: Antworten mit Zitat

naja ist es wirklich so schlimm wenn du ungefähr 10 aufrufe mit je 30 buchstaben benutzt...
und 10.000 schaffst du mit dx9 eh nie. Sad
was benutzt du den???
Aber soweit wie ich das in der msdn seh ist die einzige möglichkeit die eigenen fonts zu den standard fonts einzufügen.....

mfg fast hawk
_________________
Jetziges Projekt: The Ring War
Status: 40%
-----------------------------------
Nicht weil es schwer ist, wagen wir es nicht, sondern weil wir es nicht wagen, ist es schwer.
--
Lucius Annaeus Seneca (4)
röm. Philosoph, Dramatiker und Staatsmann
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 03.11.2006, 16:59    Titel: Antworten mit Zitat

Nun es waren afaik 5 Zeilen

so lang wie die erste Zeile grade eben.

Schreibe dir eine FontEngine, ist aber mit ner Menge Arbeit verbunden, wie gesagt du kannst das Fontzeugs nutzen aber wundere dich nicht über entsprechende Framecounts. Erreicht haben wir dir mit ganz normal DirectX9 nichts extra vagantes, allerdings hatte die Szene selbst kaum inhalt, nur ein Modell ohne Besonderheiten.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 04.11.2006, 00:06    Titel: Antworten mit Zitat

Hm, wie würde man sowas prinzipiell machen?
Meine Idee wäre jetzt ein TTF zu laden und mit GDI quasi jeden Buchstaben auf eine große Textur rendern, an feste Positionen.
Will man einen Text anzeigen wird ein Vertexbuffer erstellt, welcher die Buchstaben nacheinander beinhaltet. Diese kann man dann in einem rutsch rendern.
Denn jeden Buchstaben einzelnt rendern wäre wohl nciht so gut, und für jeden Text eine eigene Textur zu erstellen und diese anzuzeigen auch nicht (so mach cihs bei meinem Spiel im Moment, bei viel Text z.b. Inventar geht das schon mächtig an die Performance).
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 04.11.2006, 11:59    Titel: Antworten mit Zitat

Wenn man seine Font selber zeichnet und Buchtaben aus TTF-Fonts benutzt, welche man z.B. in eine 512*512 Textur gezeichnet hat, sollte man auch die Abstände der einzelnen Buchstaben zueinander speichern.
Am besten in einer zusätzliche Datei wie Arial.textmetrics oder so...

Denn jeder Buchtabe hat erstmal eine Variable Breite und dann noch einen Vorabstand und einen Nachabstand.

GetCharABCWidthsFloat

Die Funktion gibt dir sowas:

ABCFLOAT

The ABCFLOAT structure contains the A, B, and C widths of a font character.
CPP:
typedef struct _ABCFLOAT {
  FLOAT   abcfA;
  FLOAT   abcfB;
  FLOAT   abcfC;
} ABCFLOAT, *PABCFLOAT;

Members

abcfA
Specifies the A spacing of the character. The A spacing is the distance to add to the current position before drawing the character glyph.
abcfB
Specifies the B spacing of the character. The B spacing is the width of the drawn portion of the character glyph.
abcfC
Specifies the C spacing of the character. The C spacing is the distance to add to the current position to provide white space to the right of the character glyph.

Remarks

The A, B, and C widths are measured along the base line of the font.

The character increment (total width) of a character is the sum of the A, B, and C spaces. Either the A or the C space can be negative to indicate underhangs or overhangs.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 04.11.2006, 18:54    Titel: Antworten mit Zitat

jo klar, das müsste man dann halt austüfteln.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
fast hawk
Senior JLI'ler



Anmeldedatum: 15.07.2005
Beiträge: 237
Wohnort: Freiburg
Medaillen: Keine

BeitragVerfasst am: 05.11.2006, 14:22    Titel: Antworten mit Zitat

danke für die antworten.
Ich hab jetzt woanderes gefunden wie ich eigene fonts einfügen kann für alle die es interressiert:
CPP:
int AddFontResource(
  LPCTSTR lpszFilename   // font file name
);


Das mit der eingen Font enegine ist sicherlich besser aber was bringt es einem wenn man eine eigene Font-Enegine macht und dann das laufende Projekt vergisst das mach ich lieber das wenn der Rest fertig ist.....

mfg fast_hawk
_________________
Jetziges Projekt: The Ring War
Status: 40%
-----------------------------------
Nicht weil es schwer ist, wagen wir es nicht, sondern weil wir es nicht wagen, ist es schwer.
--
Lucius Annaeus Seneca (4)
röm. Philosoph, Dramatiker und Staatsmann
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum