Hello Ogre community!
Assaf, thank you very much for collecting all of the wonderful articles.
I've decided I'm going to tackle this project in my spare time. After about a week I currently have a tiny program which spits out a curvy outline of a truetype glyph. I wanted to make sure I could at least get that far before I announced my involvement.
The first and most obvious question I have is if anyone else is already working on this.?
If nobody else is doing this, I'll probably start another thread for keeping track of my particular implementation for this problem. However, I'd like to make a few observations and pose a few questions about how this technology should be integrated into OGRE.
1. I know there's been talk about different methods of accessing really high resolution textures. Do they make this obsolete (yet)?
2. I'm implementing Loop & Blinn's method; it seems to me that they've put the most thought into designing a technique that's actually practical to use.
3. I'm using true-type fonts (currently). The technique will easily work with any font file format / api combo that will split some shape into quadratic bezier curves and straight lines. xavier, you've made your feelings on this clear, but I see TrueType as a mature 2d vector graphic format that already has content creation tools available for it.
I have put a lot of thoughts into this but I'll summarize them for now by saying that what I'm trying to accomplish is 2d fonts being displayed at any distance / orientation in ogre. There's a lot more things that could be accomplished with this or similair technology but there's always a better technique around the corner, not to mention hardware will continually improve the old techniques.
What I'm saying here is that if we try to account for every possible application of this we will spend more and more time developing for a smaller and smaller audience, all the while hardware is getting better and marginalizing the improvement of this versus bigger textures. Also, OpenVG is a more open-ended bullet on the wish list that I don't want to overlap. Furthermore, remember that just because it's meant for fonts, doesn't mean anything should keep content creators from making new abstract glyphs a la "WingDings."
4. Pt 4 was an overly long explanation of why I'm not trying to replace Ogre's built-in font system with this. These are my main concerns:
-I'm not familiar enough with Ogre's font system to design a replacement for it but:
-Ogre's font system and a GPU font system should not be trying to accomplish the same thing. Ogre's font system is designed to spit out colored 2d-textures which represent a graphical representation of the font (or so it seems to me).
GPU based font systems are designed to spit out abstract sets of data which is used to cleverly render shapes across a fragment. I just don't see how code written for the first system would be able to compile and produce the same results with code from the second system. Nor can I think why anyone would want GPU fonts for screen-aligned 2d text, improvements in quality or speed would be minimal if existent. Of course, I'd love to prove myself wrong on this.
5. This is how I imagine the system being used in practice:
-The content creation tool calls the new GPU font system to generate a mesh that contains a glyph or a string.
-The artist adds this mesh to their model as a subentity (or whatever the terminology is for this scenario).
-The end user's application needs no additional code to render the mesh. The submesh (or the right term for what I'm describing) is associated with a material which has the GPU renderer as a technique.
p.s. Sorry for the very verbose post. Also, I'm admittedly new to pretty much everything I'm trying to do here, OGRE included, so please cut me some slack if I've grossly misused some terminology. Or if I'm way off on some aspect of this concept altogether, please just shake your head and try to correct me.