Re: Alpha and Java


Hi All,

(Last I read, Bill, you were out of office until 5/3/04, correct?)

Regarding my issues with VisAD/Java/Java3D and possible Alpha interference using a filled Irregular2DSet (please see bottom of message) - I think I may have finally isolated the culprit.

It appears that when Blackdown went from their java3D-1.2.1_03 to java3d-1.3* is when the change in behavior occurs. With the old version I got a clean transparent feature. When I upgraded to the newer java3d, that same feature gave me the "interference" pattern you see in the link(s) below. Unfortunately, every combination of java-1.4.2* and anything newer than java3D-1.2.1_03 has given me this result. (On the plus side, it blends overlapping - but different Z-depth - alpha objects very well compared to the older version)

I have some relatively simple code (2 apps) which you can use to see the difference in behavior. (I'll leave it up to the adventurous to do their multiple Java* install if they want to test this.) Let me know and I'll send the programs.


On a semi-related topic, while trying to compile the VisAD I downloaded in Oct., 2003 with my new java-1.4.2_04, I received the following rmic errors. (I have also recently had my OS upgraded from RedHat 9.0 to RedHat Enterprise WorkStation 3.0) I'm going to poke around in the libgcj on my new OS and see what gives. Any input would be greatly appreciated!


#####################################################################
rmic -d /home/kmanross/OldHomeDir/Programming/Java/NewerJavaSDK/Compiled/VisAD visad.RemoteActionImpl
java.lang.NullPointerException
   at 0xb7280cd0: java.lang.Throwable.Throwable() (/usr/lib/./libgcj.so.3)
   at 0xb7273b9f: java.lang.Exception.Exception() (/usr/lib/./libgcj.so.3)
at 0xb7277457: java.lang.RuntimeException.RuntimeException() (/usr/lib/./libgcj.so.3) at 0xb7276b4f: java.lang.NullPointerException.NullPointerException() (/usr/lib/./libgcj.so.3)
   at 0xb72335b7: _Jv_ThrowNullPointerException (/usr/lib/./libgcj.so.3)
at 0xb7338251: gnu.java.rmi.rmic.RMIC.sortExceptions(java.lang.Class[]) (/usr/lib/./libgcj.so.3) at 0xb73344e7: gnu.java.rmi.rmic.RMIC.generateStub() (/usr/lib/./libgcj.so.3) at 0xb73335a9: gnu.java.rmi.rmic.RMIC.processClass(java.lang.String) (/usr/lib/./libgcj.so.3)
   at 0xb7333500: gnu.java.rmi.rmic.RMIC.run() (/usr/lib/./libgcj.so.3)
at 0xb73333c3: gnu.java.rmi.rmic.RMIC.main(java.lang.String[]) (/usr/lib/./libgcj.so.3) at 0xb725ad68: gnu.gcj.runtime.FirstThread.call_main() (/usr/lib/./libgcj.so.3) at 0xb72c4ef1: gnu.gcj.runtime.FirstThread.run() (/usr/lib/./libgcj.so.3)
   at 0xb7267b4c: _Jv_ThreadRun(java.lang.Thread) (/usr/lib/./libgcj.so.3)
at 0xb723482c: _Jv_RunMain(java.lang.Class, byte const, int, byte const, boolean) (/usr/lib/./libgcj.so.3)
   at 0xb723494d: JvRunMain (/usr/lib/./libgcj.so.3)
   at 0x080485c8: ?? (??:0)
   at 0xb6ece748: __libc_start_main (/lib/tls/libc.so.6)
   at 0x08048515: ?? (??:0)
#####################################################################


Thanks a bunch!

-kevin.



Bill Hibbard wrote:
Hi Kevin,

Since versions of both VisAD and Java3D change between your
two images, it would be useful to know what happens if you
combine the VisAD from the first (good) image with the Java
and Java3D from the second (bad) image. Is that bad (indicating
a Java3D problem) or good (indicating a VisAD problem). If
its a VisAD problem, then I'll probably need to run your
application myself. Hopefully you can send it to me.

It is worth saying that this is clearly an interference
pattern between two non-aligned grids. Two (not the only)
possible sources are:

1. Remap from one grid to another.
2. Two surfaces, one slightly behind the other, with Z-buffer
errors making this pattern.

Cheers,
Bill

On Fri, 20 Feb 2004, Kevin Manross wrote:


Yeah, at first, I also thought that it was an interference pattern, but
zooming in (up to the point they disappear from being zoomed too far), I
get this:

http://www.cimms.ou.edu/~kmanross/VCPRPE/VisADSamples/Alpha_Pattern_newJava_zoom.gif

For reference, this is roughly above the highest "peak" in the jagged
white line at the bottom of:

http://www.cimms.ou.edu/~kmanross/VCPRPE/VisADSamples/Alpha_Pattern_newJava.gif

It is where the first (bottom) purple wedge overlays the 2nd (from
bottom) yellow wedge.

Yes, the section of code that produces this plot are identical between
the two examples.  The only difference is the java APIs.

Also, when testing this on different machines - notably with the newer
java(2/3) APIs - I get the same pattern.





--
+------------------------------------------------------------+
Kevin L. Manross        [KD5MYD] <><          (405)-366-0557
CIMMS Research Associate               kevin.manross@xxxxxxxx
[NSSL-WRDD/SWATN]           http://www.cimms.ou.edu/~kmanross

"My opinions are my own and not representative of CIMMS, NSSL,
 NOAA or any affiliates"
+------------------------------------------------------------+