I have the following questions pertaining to the use of Transform3D on a Shape3D object afterNormalGenerator has successfully been called over (or passed over as a default operation).

-For example, consider the case of rendering a flat square, like a sheet or the surface of water with some rippling,facilitated by the careful placement of coordinate data and normal points.If one wants to introduce changes to that surface, as it exists in 3D (within a java3D programming example) as a Shape3D or OrientedShape3D object (instantiated from GeometryInfo and or IndexedGeometryArray),

-Can one introduce continuing, subsequent ripples via Transform3D objects (which concatenated to each other by default anyway) as an action after indexify() and NormalGenerator, or is one forced to re-render before Transform3D affects the set of relevant points for aggregate consideration, being the points part of said surface? Can one transform after surface fill in rendering is completed, afterwards? Is it before or after, do I have the afterwards option for Transformations.

-If this is happening over complex surfaces and solid objects continually, what kind of slow down can one begin to anticipate? Understanding more about what can happen in advance, multiple threads (Runnables) can, to an extend, be independently dispatched to simultaneously and continually use available proceessing/memory resources for subsequent surface and solid changes. Now, the instrumentation api has a sizeOf method, which in my practical experience and tests is NOT sufficient to gauge shallow and or deep object sizes in memory. I can use a Serialization technique to convert things to a byte [] and count that length, but this will duplicate those considered contexts in memory. How much will aforetime pre (re) rendering slow down a program and related, say, collision and any other operations? I can use multiple threads, but this is all complicated if I can't rely on sizeOf to gauge what is happening. Apart from Object counting, is there a better way to gauge what is going on? How bad can slowdown get, will I just have to test for it to examine when it can happen generally (number of objects), and what can I do to gauge beforehand anyway?

In my experience, you will not find the bottleneck by reasoning about what might cause performance problems.First of all, you may not have a problem at all, so all time you spend on it is wasted. Secondly, when you do have a performance problem, you are not going to pinpoint it without measuring. Do profiling to find where a problem is. I make it a game to guess beforehand where the problem is going to be, and profiling then always shows that I am wrong.

Instead, write clean code, use good data structures, and worry about performance after you have established that you have a concrete performance problem.

_________________My project: Messing about in FreeRCT, dev blog, and IRC #freerct at oftc.net

Are there any people who know enough about java3D though to confirm my question about post mutability transformations of a rendered (NormalGenerator) Shape3D class by a Transform3D appropriately put on the tree?