Angus Dorbie (dorbie++at++sgi.com)
Tue, 23 Jun 1998 14:52:07 -0700
This would depend on the scene graph.
>
> > Cross trees hit your draw harder because you are essentially drawing
> > 8 triangles vs. 2 for billboards.
>
> Well, if you flag the polygons of the cross trees so that GL doesn't
> have to backface cull them, then you only need 4 triangles.
>
> If you are not horribly fill limited (and certainly at longer ranges),
> you can go to two triangles for a cross tree and just one for the Billboard
> (the point of the triangle being buried slightly underground and the top
> of the triangle sized to be large enough to encompass the crown).
>
> The nastiest things about both kinds of trees is that they don't T-mesh
> at all well. If you can cope with it, it's much better to go with modelling
> clumps of trees (at least at longer ranges).
>
> > Billboarded trees look better and don't hit your draw as hard, but
> > you have to spend time in the app rotating them toward your eyepoint.
>
> (I think that happens in CULL - or now, with pfSprites and GL_SGIX_sprite
> extensions to OpenGL, it's probably happening down in the geometry engine)
>
> > What I am interested in knowing is:
> > 1. Has anybody documented performance differences between Billboards
> > vs. Cross trees?
> > 2. Has anybody tried using a billboard as the highest level of detail
> > for a cross tree and would this be a feasible solution?
>
> If anything, you need to do the reverse. The problem with billboarded
> trees is that you can see them spinning as you get close to them - especially
> in a wide field of view - or if you are in some kind of aircraft and
> can look down on them from above...go into a steep dive and do a 360 roll
> and see what I mean!
Agreed, but there's still some value in what's being suggested, ie
reducing the processing load for _many_ trees. The example at
www.dorbie.com does this by round robining the tree updates for
distant blocks and using a non localviewer bilboard vector for
a block based on range. Also it round robins updates on near blocks.
An addityional exposed feature is the use of groups of trees and
GL_QUADS primitive for efficient dispatch to hardware inside a
single glBegin glEnd pair. And reduced pfFrustum culling overhead.
Depending on how you build your scene graph you might find it
difficult to accrue these benefits otherwise.
>
> Rendering good trees in a large enough quantity to be convincing
> is a really hard problem - it can be done - but it takes a LOT of
> sneaky tricks.
>
Yep, the sneakier the better.
Cheers,Angus.
-- "Only the mediocre are always at their best." -- Jean GiraudouxFor advanced 3D graphics Performer + OpenGL based examples and tutors: http://www.dorbie.com/ ======================================================================= 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:57:34 PDT