Originally posted by jwatte:
The difference is that the texture is uploaded ONCE, but the vertex has to be re-sent each frame.
[\QUOTE]
Have you ever heard of display lists???
[QUOTE]From a fill rate perspective, the approaches should be equivalent. [QUOTE]
I’m really impressed that you can’t see the wood from the trees.
When you render the whole string the size of the quad has to be the total width of the glyphs together* maximum height of any one of the glyphs. The maximu height is what gets you, you end with lots of white space to fill with all those small letters.
When you render glyphs individually the quads change size from glyph to glyph, you end you render much less white space. Fill is quite clearly less.
[QUOTE][b]
From a main RAM bandwidth perspective, the pre-rendered text clearly wins unless you change the text more often than once every 10 frames or so. [\B][\QUOTE]
You couragously deluded. Imagine rendering this post. How many glyphs would you need? Compare this to how much texture size you’d need if you just use one image? Please do the sums that I presented in a previous post, the memory footprint is much much smaller when rendering individual quads.
[QUOTE][b]
If you change the text that often, the user is unlikely to actually be able to read it.
[\B][\QUOTE]
The real strength of rendering indivudual glyphs, comes in scalability. There are users of the OSG that require 10 of thosands of unqiue labels, such as depths along a line, each label is unique.
If you use a seperate piece of texture for each label and each one is 32 pixels high, 128 wide, how much space will you need? Now you’ll need 40 textures of 1024x1024 to pack them all in. That’s one heck of texure usage, and if you’re lucky and the user doesn’t have any other requirements for your video cards memory then you might just get away without any thrashing. But lets face in the real world we have other things in our scene…
Contrast this with the need of individual glyphs, subloaded on demand. Numbers, well there only then of them. Add a comma and a decimal place and we have 12 glyphs in total. 32x32x12 = 8192 pixels. This is hefty saving in texture memory. And please remeber that the quads coords are only going to take up a meg for all this geometry, nothing compared to 80Meg you’ll need above.
[QUOTE]
But, as I said, your system works for you; good for you! We found a system that runs faster for us; good for us!
You say it runs faster for you, but have you really tested the alternatives? Were the alternatives properly implemented?
It really doesn’t take much to do the sums properly and realise that the individual glyph approach is going to much more efficient once you really start pushing your text needs there really isn’t any comparison.
I don’t have a problem with rendering whole text strings to textures. If you texts needs are modest, then it is probably the one of easier implementation to go for whilest still retaining high image quality. For a small number of text labels
peformance will also be more than adequate, in fact performance delta with the most efficient methods will be very small.
But PLEASE, don’t tell me or anyone else its most efficient implementation once you start scaling things up, because its just plain mis-informed clap trap.
Robert.