T. M. Murali (tmax++at++cs.duke.edu)
Thu, 11 Sep 1997 12:47:01 -0400 (EDT)
The application will first read in an input model (say, containing
only triangles) and construct a Binary Space Partition (BSP) for the
model. For each frame, it will traverse the BSP in a depth first order
that depends on the viewpoint, determine the triangles that are
visible, and render them. The application uses some tricks to
determine (a small subset of) the visible triangles and render only
these triangles.
It is unlikely that the triangles will need to be rendered in
different modes. Most of them will be untextured and opaque, with
attributes bounded per-vertex or per-triangle uniformly throughout the
model.
I need to be able to process each triangle to construct and traverse
the BSP. It seems to me that I need finer access to the triangles than
is provided by a pfGeoSet. Further, the order in which the triangles
are rendered will be completely determined by the traversal. If I
store the input model in a Performer scene graph, this order might be
confounded by the order in which the pfGeoSets are normally rendered
by Performer.
One possibility I am considering is to read in the triangles into my
own data structures and use OpenGL calls to render them. To use the
multiprocessing support built into Performer, I can traverse the BSP
in the APP process and render in the DRAW process.
Another possibility is to create a new node called (say) pfBSP in the
Performer node hierarchy. I could conceivably traverse the hierarchy
of pfBSP nodes in the CULL process and do all the necessary processing
using callbacks. However, it seems to be me that I still need to
render triangles using OpenGL calls.
If I am to take advantage of Performer's ability to draw pfGeoSets
efficiently, I might have to create pfGeoSets on the fly. Is that a
very costly operation? Typically, I expect to create many pfGeoSets
for the first frame and only a small number in each subsequent frame.
Are there any other options I should consider? Thanks for your help.
Murali
=======================================================================
List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/
Submissions: info-performer++at++sgi.com
Admin. requests: info-performer-request++at++sgi.com
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:55:54 PDT