I think I found a bug in Java3D. When running the included program on a
single processor it works fine, but when running on a multi processor the
unprojection of the point (0, 0) that is calculated in renderfield and
postrender are not the same. This leads me to believe that the viewplatform
is updated between these function calls. Following is the output when
running on a SUN workstation running Solaris, and JDK 1.3beta and Java3D
1.2. I get the same results when running this program on a dual processor PC
running windows. I noticed that the point when calculated in the prerender
is different from the point calculated in the postrender, but I assume that
the viewpoint has not been updated yet at that time.
(ALL is the unprojected point calculated in Renderfield, and POST is the
same point calculated in the postrender hook).
ALL : (-0.5044815029588974, 5.178391167192429, 5.669233289822686)
POST : (-0.267560830563257, 5.178391167192429, 4.719489048730081)
DIST : 0.9788490836165559
--------------------------------
ALL : (-2.1819629485106082, 5.178391167192429, 3.850692638876555)
POST : (-4.715328732353354, 5.178391167192429, 1.0722654209608453)
DIST : 3.7600000000000007
--------------------------------
Is this indeed a bug, or is this correct behavior?
Rob
Bug.java