Justin Couch wrote:
Tarlton Mark-CMT041 wrote:
Without the call to "updateData" the app runs smoothly. I've only
seen the
problem appear with _Indexed_ geometry.
I took a look through the bug data base and didn't see anything that
looked
relevant.
We noticed the same thing in Xj3D. I spent quite a bit of time
decompiling code and sorting out what was going on. Basically, despite
the BY_REFERENCE attribute, Java3D unindexes all your geometry and turns
it into it's own internal, non-indexed versions. Those are then passed
to the graphics card. This rather brain-dead approach is what is causing
your GC problems - every time you change the geometry it throws out all
the previously existing structures and generates a collection of new
instances. Believe it or not, but it does this even if you only change
something inconsequential like normals or texCoords and leave the
indexes alone.
The only way to avoid the issue is to unindex the geometry yourself and
work with raw triangles or strips. Seems silly that J3D won't use the
optimised forms, but that's what the code is showing and our development
experience is point out.
This can be avoid by using flag
USE_COORD_INDEX_ONLY in GeometryArray constructor
(new feature in Java3D v1.3)
- Kelvin
--------------
Java 3D Team
Sun Microsystems 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".