This post was updated on .
I've released an experimental build of the j3dcore library attempting a dumb removal of the internal Querying
mechanism Java3d had, note this isn't fully functional as it ignores some of the Java3d state requesting certain canvas properties be enabled/disabled. This is only to test if the lockups being experienced by OSX users is resolved with this approach. Other users should likely continue with -pre3 as this build is not fully functional....happy testing. j3dcore-exp.jar https://github.com/hharrison/java3d-core/downloads/ Harvey |
I'll test it tonight. Thank you for the quick turnaround, Harvey.
|
It worked perfectly under Java 1.6.0! Emissive color works well (a flaw in the ancient Java3d Apple used to ship), and offscreen rendering now handles orthographic projections (a defect in Java3d 1.5.2). Thank you, again.
I tried it under Java 7, also, but the process crashed. That need not be anything to do with Java3d or JOGL, though, since I have not had my application running under Java 7 successfully yet. I'll start a new thread if it turns out to be an issue with Java3d. |
That's great news, hopefully this works out for some of the other OSX folks.
|
Hi, I am a Japanese developer using Java 3D. Sorry for my bad English.
I would like to thank the great job of Java 3D on JogAmp. I am happy to be able to use new Java 3D. I have a project using Java 3D: [Acerola3D](http://acerola3d.sourceforge.jp) In a part of this project, the library depend on a function that enables it to read the z-buffer data. But now, Java 3D throws NullPointerException. So, I need to apply a pache attached the following page. * http://java.net/jira/browse/JAVA3D-593 I checked that this patch works correctly at the source of Harvey's github repositry at Nov 22(JST). Could you reflect this patch in j3dcore repositry? By the way, it works fine at Windows, MacOSX(Java6), Linux. Best regards. |
Kenji,
I'd be happy to include your patch to Java3d, I have a few questions: 1) Could you send me the patch directly in an email to <harvey.harrison@gmail.com> and let me know in that e-mail that it is submitted under the GPLv2 with classpath exception (the Java3d license) 2) Your real name and an email address you'd prefer to be credited with as the author. 3) I noticed that there was a test case attached to the issue you linked above, but the copyright was for EADS, are you able to provide a testcase for this bug that I could include as well? Also, have you been using my forked version of Java3d? Please let me know how it has behaved for you. Thanks a lot! Harvey |
Harvey,
Thank you for your acceptance of my proposal. But my explanation was not sufficient. The patch is not written by me. I just simply found it using google. So, I don't have the right of it. I did not think that there is a problem of license, because this patch is attached to java3d bug report page... Should we abandon? If we can include the patch to Java 3D, I think I can provide another test case for this bug under any license. Please let me know the conditions of the test case, if necessary. > Also, have you been using my forked version of Java3d? > Please let me know how it has behaved for you. Yes, I use your java3d-core, java3d-utils and vecmath from <https://github.com/hharrison>. And I apply the patch to your java3d-core. (and jogamp-rc11) I could not have enough time to test carefully. But for now, it works almost fine for me. One problem is that JCanvas3D (light weight Canvas3D) is not displayed without error messages. This problem occurs on Windows, MacOSX, Linux. But, I can not determine where the mistake is. (java3d or my program?) If I find some trouble in java3d, I will report it. Best regards. |
Sent an email to 'tanek' that submitted that patch, hopefully he's still around. What kind of error messages are you getting
with JCanvas3D? |
Thanks Harvey for trying to fix this issue.
I tried your new version, and got the following stack trace under Java 1.7.0_09 / Mac OS X 10.7.4: javax.media.opengl.GLException: BackingLayerHost w/ unknown handle (!FBO, !PBuffer): MacOSXOnscreenCGLDrawable[Realized true, Factory jogamp.opengl.macosx.cgl.awt.MacOSXAWTCGLDrawableFactory@7284e767, Handle 0x7fb28e127210, Surface JAWT-Window[windowHandle 0x7fb28f15ef70, surfaceHandle 0x7fb28e127210, bounds [ 0 / 0 1 x 1 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], shallUseOffscreenLayer false, isOffscreenLayerSurface true, pos 0/0, size 1x1, visible true, lockedExt false, config AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection Display 69678464, unitID 0, awtDevice sun.awt.CGraphicsDevice@52c7bef4, handle 0x0], idx 0], chosen GLCaps[rgba 0x5/5/5/1, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/4, sample-ext default, dbl, mono , hw, GLProfile[GL2/GL2.hw], offscr[auto-cfg]], requested GLCaps[rgba 0x5/5/5/1, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/4, sample-ext default, dbl, mono , hw, GLProfile[GL2/GL2.hw], on-scr[.]], CGLGraphicsConfig[dev=69678464,pixfmt=0], encapsulated MacOSXCGLGraphicsConfiguration[DefaultGraphicsScreen[MacOSXGraphicsDevice[type .macosx, connection decon, unitID 0, handle 0x0, NullToolkitLock[]], idx 0], chosen GLCaps[rgba 0x8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/4, sample-ext default, dbl, mono , hw, GLProfile[GL2/GL2.hw], on-scr[.]], requested GLCaps[rgba 0x5/5/5/1, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/4, sample-ext default, dbl, mono , hw, GLProfile[GL2/GL2.hw], on-scr[.]]]], awtComponent com.eteks.sweethome3d.j3d.Component3DManager$1[canvas0,0,0,1x1], surfaceLock <737455ed, 5ab575d2>[count 1, qsz 0, owner <J3D-Renderer-1>]]] at jogamp.opengl.macosx.cgl.MacOSXCGLContext$NSOpenGLImpl.contextRealized(MacOSXCGLContext.java:647) at jogamp.opengl.macosx.cgl.MacOSXCGLContext.contextRealized(MacOSXCGLContext.java:333) at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:536) at javax.media.j3d.JoglPipeline.createNewContext(JoglPipeline.java:6194) at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:4605) at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:2379) at javax.media.j3d.Renderer.doWork(Renderer.java:877) at javax.media.j3d.J3dThread.run(J3dThread.java:270) J3dI18N: Error looking up: Renderer7 Error in Java 3D : 3 Renderer7javax.media.opengl.GLException: BackingLayerHost w/ unknown handle (!FBO, !PBuffer): MacOSXOnscreenCGLDrawable[Realized true, Factory jogamp.opengl.macosx.cgl.awt.MacOSXAWTCGLDrawableFactory@7284e767, Handle 0x7fb289e1e0b0, Surface JAWT-Window[windowHandle 0x7fb28e1188b0, surfaceHandle 0x7fb289e1e0b0, bounds [ 0 / 0 765 x 526 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], shallUseOffscreenLayer false, isOffscreenLayerSurface true, pos 0/0, size 765x526, visible true, lockedExt false, config AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection Display 69678464, unitID 0, awtDevice sun.awt.CGraphicsDevice@52c7bef4, handle 0x0], idx 0], chosen GLCaps[rgba 0x5/5/5/1, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/4, sample-ext default, dbl, mono , hw, GLProfile[GL2/GL2.hw], offscr[auto-cfg]], requested GLCaps[rgba 0x5/5/5/1, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/4, sample-ext default, dbl, mono , hw, GLProfile[GL2/GL2.hw], on-scr[.]], CGLGraphicsConfig[dev=69678464,pixfmt=0], encapsulated MacOSXCGLGraphicsConfiguration[DefaultGraphicsScreen[MacOSXGraphicsDevice[type .macosx, connection decon, unitID 0, handle 0x0, NullToolkitLock[]], idx 0], chosen GLCaps[rgba 0x8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/4, sample-ext default, dbl, mono , hw, GLProfile[GL2/GL2.hw], on-scr[.]], requested GLCaps[rgba 0x5/5/5/1, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/0/4, sample-ext default, dbl, mono , hw, GLProfile[GL2/GL2.hw], on-scr[.]]]], awtComponent com.eteks.sweethome3d.j3d.Component3DManager$1[canvas1,0,0,765x526], surfaceLock <243fc01b, 555d3f34>[count 1, qsz 0, owner <J3D-Renderer-1>]]] at jogamp.opengl.macosx.cgl.MacOSXCGLContext$NSOpenGLImpl.contextRealized(MacOSXCGLContext.java:647) at jogamp.opengl.macosx.cgl.MacOSXCGLContext.contextRealized(MacOSXCGLContext.java:333) at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:536) at javax.media.j3d.JoglPipeline.createNewContext(JoglPipeline.java:6194) at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:4605) at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:2379) at javax.media.j3d.Renderer.doWork(Renderer.java:877) at javax.media.j3d.J3dThread.run(J3dThread.java:270) J3dI18N: Error looking up: Renderer7 Error in Java 3D : 3 Renderer7 Under Java 1.6 / Mac OS X 10.7.4, it worked but the offscreen images were incorrect. Under Windows, I get the same error as previously reported. Hope this will help
Emmanuel Puybaret
|
Is it easy in your application to do just the offscreen rendering? If possible, I'd like to break this up a bit
and see if there are perhaps more than one issue at play here. Harvey |
If you want to create only offscreen views, you should set the com.eteks.sweethome3d.j3d.useOffScreen3DView System property to true, using -Dcom.eteks.sweethome3d.j3d.useOffScreen3DView=true java option if you run Sweet Home 3D from its Jar executable file. For components displayed at screen, this will use JCanvas3D instances instead of Canvas3D instances.
And very good news: Sweet Home 3D works using this option and the Jar executable file built with Java 3D 1.6 pre3 and JOGL rc11 Wtih Java 3D 1.6 pre4, the program doesn't crash but doesn't work correctly (the JCanvas3D instance is partially viewed and other off screen 3D canvases are incorrect).
Emmanuel Puybaret
|
Free forum by Nabble | Edit this page |