Re: advice on using Performer

New Message Reply Date view Thread view Subject view Author view

Rémi Arnaud (remi++at++remi.engr.sgi.com)
Thu, 11 Sep 1997 22:46:20 -0700 (PDT)


T. M. Murali wrote:
>
> Rémi Arnaud writes:
> > T. M. Murali wrote:
> > >
> > > Hi,
> > > I am planning to write a walkthrough application on top of Performer
> > > and would like some advice on the issues I am facing. I will be using
> > > an SGI Octane with two R10000 processors.
> > >
> > > 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.
> >
> > Is there any reason why you do not use the Z-buffer ?
>
> I am sorry. I should have been more clear. I *will* render the visible
> triangles using the Z-buffer. Even if I know a triangle is visible, I
> will not know exactly which portions of that triangle are
> visible. Hence, to form the final image, I do need the Z-buffer.

 Well if you use BSP, you can draw the triangles in the back to
 front order and have the correct result without any Z-buffer.
 This would be faster to just turn off the Z-buffer in that
 case.

>
> The basic motivation of the application is to do occlusion culling in
> software.Hence, rather than rendering *all* triangles in the view
> frustum using the Z-buffer, I want to determine which are (partially)
> visible using the BSP and render only these.

 My point is that you are certainly going too far if the goal is
 performance. Note that the hardware is optimized for triangle
 strips, not for individual triangles. If you try some benchmark,
 you will see that it is better to waste some time sending non visible
 triangles (backfaces) in a t-mesh, than to send the right individual
 triangles. You can have a database that does a good job in Frustum
 culling by keeping the bounding spheres small in not grouping objects
 that are far appart. The main optimisation you would like to do is
 to not draw objects that are 100% hidden behind a wall for example.

 That is Occlusion culling, which BSP does not provide naturally, and that
 would be a good win if this is the kind of database you are walking through.

 Regards

    _ / _ _
|_) _ ._ _ o /\ |_)|\ | /\ | || \
| \(/_| | || /--\| \| \|/--\|_||_/
                                           
=======================================================================
List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/
            Submissions: info-performer++at++sgi.com
        Admin. requests: info-performer-request++at++sgi.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:55:55 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.