<div dir="ltr">Hi Jeremy,<br><br>Looking great so far, keep the cool NodeKits coming:)<br><br>Jason<br><br><div class="gmail_quote">On Fri, Sep 12, 2008 at 12:34 PM, Jeremy Moles <span dir="ltr"><<a href="mailto:jeremy@emperorlinux.com">jeremy@emperorlinux.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello folks!<br>
<br>
I'd like to quickly post a message here about (another! yikes!) NodeKit<br>
I'm working on that ties closely with osgWidget and my original<br>
intentions a year ago when I started working on osgWidget in my free<br>
time. :)<br>
<br>
I've created a NodeKit that harnesses the power of the Pango engine<br>
(it's used widely in Linux and works in Windows and Mac, leveraging the<br>
power of Clearfont and ATSUI, respectively) for creating 2D text in<br>
OpenGL. It caches glyphs internally using the osgCairo nodekit (another<br>
one of mine) so that it can quickly create groups of quads to form a<br>
string of UTF-8 text on the fly.<br>
<br>
Furthermore, I plan on creating two objects in osgPango:<br>
<br>
        osgPango::Label<br>
        osgPango::Input<br>
<br>
...that can be optionally built and will inherit from osgWidget::Widget,<br>
so as to be used interchangeably with osgWidget (and adhering to the<br>
existing API so that all that is required is a simple typedef).<br>
<br>
<br>
<br>
--------------------------------------------------------------------<br>
<br>
The main purposes of this NodeKit are:<br>
<br>
        1. To provide nothing less than superb 2D font support for OSG<br>
applications that need to use lots of text in an orthographic<br>
perspective.<br>
<br>
        2. To caches all glyphs internally in OSG textures so that only the<br>
first creation of a glyph requires any significant CPU time; all<br>
subsequent use of the character is simply texturing a quad.<br>
<br>
        3. To support all layout options provided by Pango (text justify, etc.)<br>
<br>
        4. To ensure that all quads are pixel-aligned, for maximum clarity.<br>
<br>
        5. Pad all glyphs iternally with one pixel of blank space so that<br>
scaled text in OpenGL blends properly without unsightly anomalies.<br>
<br>
        6. Finally, to provide a clean and simple API for accessing every piece<br>
of information necessary to create complicated objects such as input<br>
widgets and the like.<br>
<br>
--------------------------------------------------------------------<br>
<br>
<br>
<br>
Keep in mind that just because osgPango is optimized for 2D display<br>
constraints, this doesn't mean you can't throw an osgPango::Text object<br>
(which is just a Geode) into a normal perspective projection (a-la<br>
nameplates above character's names, etc.)<br>
<br>
I'm mainly posting this to solicit feedback and generate interest from<br>
others who need high-quality font support in OSG. This isn't intended as<br>
a replacement for osgText, but perhaps will demonstrate what is<br>
"possible" to one day do with osgText.<br>
<br>
<a href="http://osgpango.googlecode.com" target="_blank">http://osgpango.googlecode.com</a><br>
<br>
I've got some screenshots there on the Googlecode site, so don't be<br>
shy. :) I'm particularly proud of the outline support, which you'll see<br>
is very high-quality. It's currently implemented as TexEnvCombine<br>
(thanks Cedric!), but I will have a GLSL implementation soon. Check out<br>
the justify screenshot, too...<br>
<br>
_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
</blockquote></div><br></div>