Hi J-S

Some thoughts...

- any ideas on exactly where you're bottlenecked?

- if perception of cable width is critical, how are you ensuring the quads are 
orthogonal to the viewer?  Billboards, adjusting the quad verts, viewer/quad 
relationship is fixed, etc?

- quadstrips are converted to tristrips in the driver; perhaps there's 
advantage in dispatching tristrips directly.

- Ideally, and your target hardware supports it, suggest dispatch linestrip and 
tessellate each linesegment into a pair of tris in a geometry shader.  A vertex 
shader could take care of texcoord computation given cable/segment lengths.

Cheers
-- mew




> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:osg-users-
> [EMAIL PROTECTED] On Behalf Of Jean-Sébastien Guay
> Sent: Monday, February 04, 2008 9:43 AM
> To: OpenSceneGraph Users
> Subject: [osg-users] Displaying cables
> 
> Hello,
> 
> I imagine this is pretty common, I'm just looking for a few hints of
> how
> to optimize things.
> 
> Our apps need to display cables (and most of the time, a large number
> of
> them). The cables themselves are controlled by a physical simulation
> which gives us a set of transforms for the ends of each segment of a
> cable.
> 
> For now, we are creating some geometry (quad strips, specifically) to
> display the cables, and assigning texture coordinates to that geometry,
> on the fly. This is needed because if, for example, a cable is
> lengthened (because it's being spooled out of a pulley system for
> example) the texture shouldn't stretch over it. Similarly, if the
> physical simulation subdivides the cable into more segments than it was
> in the last frame, we need to have correct texture coordinates to
> (hopefully) make the fact that the cable now has more, shorter segments
> invisible to the user.
> 
> I know the cable display needs to be optimized because if I just set
> the
> cables' nodemasks to 0, the draw times go from 6.6ms to 2.2ms (for the
> same view). And there are not *that* many cables... There's a lot of
> other geometry in the scene which is still drawn in the 2.2ms time...
> 
> So I would appreciate some pointers. I would have assumed quad strips
> are pretty fast, so perhaps something else is the problem?
> 
> There's the fact that the geometry is dynamic, which could mean that
> OSG
> is trying to recreate display lists each frame, but I tried
> setUseDisplayList(false) on the geometry and the cables just did not
> display anymore... Is there something else I need to do in that case?
> 
> Thanks in advance,
> 
> J-S

_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to