Author Topic: Text blitting  (Read 9058 times)

Offline Sloothword

  • byte
  • *
  • Posts: 12
    • View Profile
Text blitting
« on: May 30, 2006, 03:44:48 pm »
Hi

Ich suche eine Möglichkeit einen String zu blitten, ähnlich dem blitNumber() in der fps-Demo. Geht das überhaupt so einfach.
Billboarding und co scheidet ja aus, denk ich.

Danke schonmal

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 12295
    • View Profile
    • http://www.jpct.net
Text blitting
« Reply #1 on: May 30, 2006, 04:28:42 pm »
Das geht im Prinzip genauso. Entweder setzt du es als einzelne Blits aus einer Textur zusammen, die alle Buchstaben enthält (analog zu den numbers, in den Paradroidz-Quellen findest du in naroth.overlay.SystemOutOverlay ein Beispiel) oder du renderst den Text mit Java2D in ein Bild, machst daraus eine Textur und blittest die. Oder du malst direct in den FrameBuffer...das geht aber nur im Software-Renderer.

Offline Sloothword

  • byte
  • *
  • Posts: 12
    • View Profile
Text blitting
« Reply #2 on: July 20, 2006, 10:46:38 am »
Danke
Ich nehme eine Textur und blitte die. Des funktioniert prima.

Offline mogli

  • byte
  • *
  • Posts: 38
    • View Profile
Text blitting
« Reply #3 on: July 30, 2006, 06:52:46 pm »
Quote from: "EgonOlsen"
...oder du renderst den Text mit Java2D in ein Bild, machst daraus eine Textur und blittest die.



Hast du evtl. ein Beispiel wie man das macht! Ich bekomme es leider nicht hin!

Ich hab es folgendermassen probiert:

Code: [Select]
BufferedImage bf = new BufferedImage(128,128,BufferedImage.TYPE_INT_RGB);
Graphics2D g = bf.createGraphics();
g.drawString("test",20,40);
texMan.addTexture("test", new Texture(bf));



Eine Fehlermeldung erhalte ich nicht. Aber die Textur wird auf dem Objekt auch nicht angezeigt bzw das Objekt bleibt einfach schwarz. :(

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 12295
    • View Profile
    • http://www.jpct.net
Text blitting
« Reply #4 on: July 31, 2006, 09:15:57 pm »
Evtl. stimmen die Texturkoordinaten nicht? Ansonsten sieht der Code für mich ok aus. Das sollte so funktionieren. Füll mal den Hintergrund z.B. mit rot, um zu sehen, ob überhaupt was mit dieser Textur passiert.

P.S.: So kann man das für statische Texturen machen, aber nicht unbedingt für dynamische (d.h. solche, deren Inhalt sich öfter ändert. Dafür solltest du die Pixel aus dem erzeugten BufferedImage nehmen und mittels eines ITextureEffects in die Zieltextur kopieren)...ist effizienter.

Offline mogli

  • byte
  • *
  • Posts: 38
    • View Profile
Text blitting
« Reply #5 on: July 31, 2006, 10:31:41 pm »
...das mit der Hintergrundfarbe hab ich auch schon probiert. Passiert leider nichts. :(

Hmm, ok, dann werd ich das noch mal mit dem ITextureEffect probieren.
Mein Ziel ist es vor Türen eines Gebäudes so ne Art Namensschilder zu erzeugen. Dabei lese ich den Text aus ner Datenbank un will ihn dann auf ne Fläche "setzen"...

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 12295
    • View Profile
    • http://www.jpct.net
Text blitting
« Reply #6 on: July 31, 2006, 11:35:30 pm »
Hmm, also wenn ich den obigen Code irgendwo einfüge, dann bekomme ich auch das gewünschte Ergebnis. Da stimmt bei dir irgendwas anderes nicht... :?: