Re: Dynamic Data: Use of PfMorph/pfEngine or update GeoSet-Attribs?

New Message Reply Date view Thread view Subject view Author view

From: Don Burns (don_burns++at++peru.engr.sgi.com)
Date: 03/08/2000 14:52:48


On Mar 8, 11:12pm, Bjoern Knafla wrote:
> Subject: Dynamic Data: Use of PfMorph/pfEngine or update GeoSet-Attribs?
> Hej,
>
> I am a newbie performer user and incorporate it in a project where we want
> to develop an articulated human figure.
>

Cool.

> To use skeleton-skinning I am calculating the position of the vertices in
> the app-stage and copy the vertex array containing the new positions every
> time into the attribs of the skin-GeoSets.
>
> However I have read about pfMorphs (pfEngines aren't supported in our
> version of performer) and hope to get answers to the following questions:
>
> - Copying the new data into the attribs of a GeoSet seems to incorporate the
> placement of the data into shared memory. Are there performance differences
> between this method and the use of a pfMorph (passing a new array to the
> pfMorph-node)?
>
> - Depending on the number of bones influencing a vertex I have to call
> numerous matrix-vertex-multiplications per vertex in the app-stage. Later on
> in the draw-stage every vertex is transformed by the projection- and
> matrixview-matrix. Is there a way (and would it be recommended...) to
> execute all calculations in the draw-stage? This would allow the
> concatenation of the skin-matrices with the projection- and
> modelview-matrices which should discard nearly "NumberOfVertices"
> matrix-multiplications. However it could put a great delay on the
> draw-stage...
>

There are other negative side effects to doing these calculations in DRAW.
 Especially if you will be executing this with draw callbacks. Once a node has
a draw callback it breaks any optimization that may be imposed on the scene
graph traversal, since it is unknown what the draw callback may do.

Consider also that Modelview and Projection matricies are simply passed to
OpenGL. It is OpenGL that does the final concatenation of these. On most SGI
machines, these are executed in parallelized hardware, highly optimized for
just this sort of transformations. Take advantage of that.

> - While GeoSets/Geodes are mainly used for static data I am uncertain if my
> per-frame attrib updating is the way to go/recommendet.?
>

It is a method commonly used. However, for MP synchronization I would
recommend using Fluxed geosets.

> I am curiously awaiting your answers and suggestions,
>
>
>
> Bjoern Knafla
> --
> bknafla++at++techfak.uni-bielefeld.de
>
> -----------------------------------------------------------------------
> List Archives, FAQ, FTP: http://www.sgi.com/software/performer/
> Submissions: info-performer++at++sgi.com
> Admin. requests: info-performer-request++at++sgi.com
>-- End of excerpt from Bjoern Knafla


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Wed Mar 08 2000 - 14:55:15 PST

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