Hi Paul,

When I wrote the OpenFlight reader I didn't worry to much about the
loading times.  The focus was on preserving the structure and
information of the Flight file.  Compared to iterating the list of
primitives a couple of times the disk IO is usually dog slow.

Regards,
Brede


On Sun, Mar 30, 2008 at 2:56 PM, Paul Martz <[EMAIL PROTECTED]> wrote:
>
>
> Gordon, Brede -- Looking for your input on this (but others with FLT
> expertise are welcome to chime in as well...)
>
> Let me explain what the current exporter is doing wrong, and how I believe I
> will fix it, and you guys can help me out by looking for flaws or suggesting
> alternatives.
>
> Imagine drawing a highly approximated plane in OSG. You would have a single
> Geometry with a single VertexArray containing all vertices, and then several
> QUAD_STRIP PrimitiveSets. The result would be a plane approximated by
> several quads.
>
> The exporter currently handles this very inefficiently. For each
> PrimitiveSet in the above example, it outputs a Mesh record, followed by a
> Local Vertex Pool containing _all_ vertices in the VertexArray, followed by
> a Mesh Primitive record for the single QUAD_STRIP. (This was early "turn on"
> code written to get some basic functionality in place, which I forgot about.
> It was never intended for public consumption.)
>
> A better implementation would be: Output a Mesh and Local Vertex Pool for
> the Geometry object, then a Mesh Primitive for each PrimitiveSet.
>
> However, this gets complicated if I want to use Face records if the
> PrimitiveSet mode is TRIANGLES or QUADS. The code would potentially need to
> iterate over the list of PrimitiveSets twice, once processing Mesh record
> data, and then once again processing Face record data.
>
> Alternatively, I could simply not support outputting Face records. A QUAD
> becomes a 4-vertex Mesh Primitive of type QuadStrip, and the same concept
> for a TRIANGLE. Does this sound feasible? Face records would still be used
> for Billboards (not yet implemented) and the Vertex Palette at the top of
> the file would really only be needed to store Light Point vertices.
>
> The downside of this is that if you have multiple Geometry objects that
> share the same VertexArray in OSG, you'd get that VertexArray reproduced
> multiple times as Local Vertex Pool records in the FLT file; not able to
> share that data in the Vertex Palette as you would do when using Face
> records.
>
> Looking forward to your thoughts and input, thanks.
>
> Paul Martz
> Skew Matrix Software LLC
> http://www.skew-matrix.com
> +1 303 859 9466
>
> _______________________________________________
>  osg-users mailing list
>  [email protected]
>  http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to