Re: Vertex submission (was Re: [Plib-devel] Re: 3DNow! acceleration)
Brought to you by:
sjbaker
From: Steve B. <sjb...@ai...> - 2000-04-05 04:16:30
|
Sam Stickland wrote: > To get the best speed out of CVA's won't it need some adjustment to the > scene graph traversal? Say we had this structure: > > Transform Node Transform Node > | | > +------- CVA Node ---------+ > > Then you'd want to lock the arrarys, draw the CVA Node in both positions and > then unlock it - rather than locking it twice. Well, only if the two references to that node were at the same position in the scene. > I guess this might start to get a little to complex, particulary if you > start to factor in different states. Yep. The CVA will only be re-usable within a frame if it's drawn more than once at exactly the same place in the scene. Hence, you couldn't use it to draw twenty identical buildings in a scene - but you could use it to draw the building with one texture - and then again at the precise same location with alpha blending and a second texture. Hence, we would want that ability to simulate more complex rendering than the underlying OpenGL can manage. In a word: Multipass. I think this would be best implemented by creating a new kind of ssgState that contained multiple internal ssgState nodes (much like the current ssgStateSelector node) - but with the semantics being that the ssgLeaf that uses it would render multiple times - each using a different sub-state. For regular ssgVtxList nodes, that wouldn't be too efficient - but for CVA nodes, it would be fast. This would look really nice to the user - just create a 'multistate', to describe whatever 'look' you want your geometry to have - and whatever you connect it to get's rendered using multipass automatically. -- Steve Baker http://web2.airmail.net/sjbaker1 sjb...@ai... (home) http://www.woodsoup.org/~sbaker sj...@ht... (work) |