Hello all,

As mentioned previously, we have implementated a graphics engine that
renders skinned articulated rigid bodies in real-time.

Our first implementation of the inter-joint polygons (the ones that move
and shift as an entity moves) used by-copy data structures and the
setCoordinate method of GeometryArray.  After profiling, we realized that
the setCoordinate methods were using the bulk of the processing time in
rendering.  This seemed strange to us since the semantics of this call is a
simple copy operation of a small object.

We then re-implemented the algorithm using by-reference geometry for these
inter-joint polygons (via the updateData callback) and the performance
improved *considerably*.  Now, of course, we are, in a sense, "manually"
doing the same copy that the setCoordinate was doing, but in a callback
that has stronger semantics wrt concurrency.

Is it the case that setCoordinate, and similar by-copy update methods on
geometries, are synchronized, and this is causing this surprising behavior?
If not, what might be contributing to this problem?

We are happy with our current result but the corresponding memory usage
increase (discussed at length previously wrt indexed datasets, especially
vertex coloring) does not make us happy.

Perhaps this tradeoff should be documented somewhere in the API?

Thanks,
Joe Kiniry
--
Joseph R. Kiniry
Chief Scientist
DALi, Inc.

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to