A new, slightly-kick-ass-er version of BitmapText

Latest work has been revolved around creating a BitmapText replacement (well… for my GUI library anyways) that allows for animations, alpha-based fading of text, individual character animations, drop-shadows, as well as a slew of other possibilities.

Here is a quick demo of it put to practical use:

[video]http://youtu.be/t7MViMRzx34[/video]

7 Likes

This looks cool =) Have your created your own or refactored the existing one? (I heard the code in there is scary)…

@t0neg0d said: Latest work has been revolved around creating a BitmapText replacement

Is it now also savable? I always had problems with saving and loading bitmap text nodes

looks cool!!
Animations are shader based or do you modify the underlying mesh?

@kwando said: This looks cool =) Have your created your own or refactored the existing one? (I heard the code in there is scary)..

This uses the existing BitmapFont character sets and leverages the libraries 2D framework AnimElement to create the visuals for the string. So, aside from the loaded BitmapFont, it is a complete rewrite.

@simon.heinen said: Is it now also savable? I always had problems with saving and loading bitmap text nodes

The AnimElement class is not a Savable atm. Once it is added, the text will work as all other elements.

@nehon said: looks cool!! Animations are shader based or do you modify the underlying mesh?

No… not shader based. The only way to get the 2D framework to work with a managed scene graph is to update the original mesh and resend updated buffers to the GPU. Each contained quad can have parent linkage (works like armatures basically) and the transforms are calculated up the chain until it hits a parent node that is not from the framework, at this point the transforms happen as per JME.

Because of the way this works, each ship in the scene above can be part of a single mesh. Each quad within the mesh can have TemporalActions applied to them which only effect quads in the linkage chain. Basically it allows for configuring your scene in multiple ways to optimize frame rate with the given limitations.

The (close to finished) game, with all ElementEmitter effects, weapons, etc runs at a solid 400fps on my incredibly CRAPPY machine. Though, the maximum in-scene object count is about 105(ish)… including all UI components.

well that definitely looks pretty cool.

Is the source code for this example available somewhere? I tried looking here:

https://code.google.com/p/tonegodgui/source/browse/trunk/src/

But wasn’t sure where it is located.

Thanks!