On Fri, 2006-07-28 at 17:39 +0100, Robert Osfield wrote:
> Hi Jeremy,
> 
> The easiest way to do it would be to implemenat as custom
> osg::ImageStream.  ImageStream is a subclass from osg::Image, with
> added controls for imagery that is updated dynamically, typically used
> for video.  For an example of a custom ImageStream see the xine-lib
> plugin.
> 
> Once you have you custom ImageStream working you'll be able to utilize
> PBO to effeciently update the texture and this will all be done
> automatically for you, you just have to concentrate of populating the
> image data associated with the ImageStream.

Well, I just ran osgmovie and the framerate was exceptionally fast
(something like ~1000FPS on my crappy NVidia GeForce Go5200). When
you're not busy, would you mind telling me--to quote Tenacious-D
here--"the secret of your powers?" :) Even using a homebrew glTexSub
test for doing texture updates wasn't that fast...

> Depedening on your app usage though, you may not even need to subclass
> from osg::ImageStream, just creating a osg::Image would probably be
> enough.  Every time you update its data you just need to call dirty()
> on the image and it'll be automatically download.
> 
> The osg::Image itself could be a non power of two, but if you assign
> it to a Texture2D without using NPOT texture support (only available
> on OpenGL 2.0 with latest hardware), there will be a rescaling done on
> every update.  As you've already spotted the alternative is to use
> osg::TextureRectangle, and this should work just fine too, avoiding
> the resize but with better support for older hardware.
> 
> Have a look at the osgmovie example, and the xine-lib plugin, in
> particular the code setting up the osg::ImageStream.  It does create
> its own thread, which you may be able to avoid, since I presume Cairo
> will be fast enough to do the image update well within a ms or so.
> 
> Robert.
> 
> On 7/28/06, Jeremy L. Moles <[EMAIL PROTECTED]> wrote:
> > I'm looking at integrating the Cairo (http://cairographics.org) vector
> > graphics library into OSG via osg::Texture*. This will allow me to use
> > the nice Cairo API (which I am very familiar with) to draw sharp, clean,
> > vector-based HUDS on Textures using OSG. Before I get started though, I
> > had a few questions regarding OSG and how it handles Textures.
> >
> > First of all, is going the "texture" route even the most optimal? Cairo
> > supports many backends, but it's most basic backend is simply an image
> > buffer with explicit format semantics. My idea was to inherit from
> > osg::TextureRectangle and implement the Cario API in the subclass, which
> > in turn will operate on the Texture's internal osg::Image object. This
> > is all fine and dandy, except I'm not quite sure what to do when a user
> > wants to change the internal image buffer and have that update the
> > texture in VRAM. Recreating the texture, obviously, is out of the
> > question.
> >
> > I guess my question then is: what is the basic strategy for using a
> > Texture in OSG as a kind of "interactive" canvas?
> >
> > glMapBuffer/glUnmapBuffer seems like it would be nice in this case,
> > though I've only ever seen VBO's used for vertex data. Is this a case
> > where I need FBO's instead? I don't really know anything about them, but
> > Googling leads me to believe they could be helpful here. The osg
> > FrameBufferObject also looks promising, but I'd want someone else to
> > push me in that direction before I wasted time on something unfruitful.
> >
> > Sorry if this is a dumb question... :/
> >
> > _______________________________________________
> > osg-users mailing list
> > [email protected]
> > http://openscenegraph.net/mailman/listinfo/osg-users
> > http://www.openscenegraph.org/
> >
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://openscenegraph.net/mailman/listinfo/osg-users
> http://www.openscenegraph.org/
> 

_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to