- Updated for API changes in JOGL 2.2.0, now required
- Many, many thanks to Kavon Farvardin for fixing up the capability selection code, restoring stereoscopic and double buffering capabilites. http://jogamp.org/deployment/java3d/1.6.0-pre11/ |
Thanks to all of you.
I noticed that the anti-aliasing is not working in my program (http://www.elamx.de) since the update to Java3D 1.6.0 pre 11 and JOGL 2.2.0. Due to discussions in this forum I'm using System.setProperty("j3d.implicitAntialiasing", "true"); and simpleU.getViewer().getView().setSceneAntialiasingEnable(true); and GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D(); template.setSceneAntialiasing(GraphicsConfigTemplate3D.REQUIRED); Is this somehow my fault? Thanks Andreas |
Administrator
|
I fear it isn't your fault, thank you for the feedback. I'm going to have a look at the latest changes. Anyway, I thank a lot all contributers for driving Java3D more reliable than ever.
Julien Gouesse | Personal blog | Website
|
In reply to this post by hharrison
Thanks for the update.
I tried it with Sweet Home 3D successfully but like Andreas, I noticed some differences in antialiasing management. Antialiasing works but the filter (min/max values?) isn't as efficient as in previous versions, making rendered images less nice at screen.
Emmanuel Puybaret
|
I just tried it also with Sweet Home 3D applet, and I have to report an issue that reappeared and prevents from using its JCanvas instance.
Here's the stack trace: Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException: Canvas3D: null GraphicsConfiguration at javax.media.j3d.Canvas3D.checkForValidGraphicsConfig(Canvas3D.java:943) at javax.media.j3d.Canvas3D.<init>(Canvas3D.java:1012) at com.sun.j3d.exp.swing.JCanvas3D$InternalCanvas3D.<init>(JCanvas3D.java:672) at com.sun.j3d.exp.swing.JCanvas3D.createCanvas(JCanvas3D.java:323) at com.sun.j3d.exp.swing.JCanvas3D.setBounds(JCanvas3D.java:542) at com.eteks.sweethome3d.swing.HomeComponent3D$3.layoutContainer(Unknown Source) ... Hope this will be enough for you to fix the bug.
Emmanuel Puybaret
|
Administrator
|
Those both bugs are probably caused by kavon's contribution, especially the code that picks the graphics configuration and manipulates the graphics configuration table within Canvas3D. I don't blame him as the original code was a real mess with this nasty QueryCanvas that I've ever wanted to remove from Java3D.
Julien Gouesse | Personal blog | Website
|
In reply to this post by Andreas
Hi Andreas,
What was the previous version of jogl and java3d you were running where this was working? -pre10? Please confirm for me. Cheers, Harvey |
In reply to this post by Manu
Thanks Emmanual, I'll have a look. (I'm assuming this is a new crash since -pre10?)
Harvey |
In reply to this post by hharrison
Hi Harvey,
thanks again for all the work you and the others are doing. Yes, before I used JOGL 2.1.5 and Java3D 1.6.0 pre 10. Andreas |
Andreas,
Are you able to build java3d from source? It would be a bit easier for me if I can just send you git commits....but I can send you full builds if needed. Harvey |
In reply to this post by hharrison
Yes, it was with Java 3D -pre10 and JOGL 2.1.5. I tested the applet again before posting the stack trace to be sure it's a regression, and it still works with that configuration.
Emmanuel Puybaret
|
In reply to this post by hharrison
Harvey,
I found the reason for my anti-aliasing problem. I used a GraphicsConfiguration which was created by the following code due to an example of an old JCanvas3D: GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D(); template.setSceneAntialiasing(GraphicsConfigTemplate3D.REQUIRED); // Force double-buffer and stereo to UNNECESSARY template.setStereo(GraphicsConfigTemplate.UNNECESSARY); template.setDoubleBuffer(GraphicsConfigTemplate.UNNECESSARY); GraphicsConfiguration graphicsConfig = device.getBestConfiguration(template); After removing the template.setDoubleBuffer(GraphicsConfigTemplate.UNNECESSARY) everything seems to work now. Andreas |
Administrator
|
Thank you. There is still one remaining bug, the root cause I suggested is still plausible.
Julien Gouesse | Personal blog | Website
|
Any news about the java.lang.NullPointerException thrown in javax.media.j3d.Canvas3D.checkForValidGraphicsConfig?
Should I try with more recent versions of JOGL or this shouldn't change anything until a pre12 is out?
Emmanuel Puybaret
|
You could try with jogl 2.2.4, but as I'm sadly short of time these days, I can't promise much movement on my end until after the first week of December.
Harvey |
After a new try with JOGL 2.2.4 / Java 8u25 under Mac OS X, I noticed that antialiasing works but keep reporting that the filter (min/max values?) isn't as efficient as in previous versions, making rendered images less nice at screen. Could this issue be fixed? Or was this change made on purpose?
I also tried to use Canvas3D instances with applets (not JCanvas3D instances which are incredibly slow on a Retina display) and on this side, I've got good news: it works great under Mac OS X 10.10, even if a few stack traces like the following one appear in the Java console: RunnableTask.run(): A caught exception occured on thread Repaint-OnAppContextTG: RunnableTask[executed false, tTotal 0 ms, tExec 0 ms, tQueue 0 ms, attachment null, throwable java.lang.NullPointerException] java.lang.NullPointerException at sun.awt.SunToolkit.getSystemEventQueueImplPP(SunToolkit.java:1080) at sun.awt.SunToolkit.getSystemEventQueueImplPP(SunToolkit.java:1075) at sun.awt.SunToolkit.getSystemEventQueueImpl(SunToolkit.java:1070) at java.awt.Toolkit.getEventQueue(Toolkit.java:1734) at java.awt.Component.repaint(Component.java:3403) at java.awt.Component.repaint(Component.java:3303) at com.jogamp.nativewindow.awt.JAWTWindow$1.run(JAWTWindow.java:411) at com.jogamp.common.util.RunnableTask.run(RunnableTask.java:133) at com.jogamp.common.util.RunnableTask$1.run(RunnableTask.java:84)With JCanvas instances, I didn't notice the exception I reported on August 8, 2014.
Emmanuel Puybaret
|
Administrator
|
We already had a similar stack trace:
http://forum.jogamp.org/Jogl-2-stops-working-on-Mac-after-Java7-update-55-td4032286.html http://forum.jogamp.org/Error-in-MacOSXCGLContext-since-Java-7u55-td4032200.html Please can you check that there is no "old" version of JOGL 2 anywhere on your machine?
Julien Gouesse | Personal blog | Website
|
I'm pretty sure there was only classes coming from JOGL 2.2.4.
Just in case I wasn't clear enough: these exceptions don't prevent my program to work in my case.
Emmanuel Puybaret
|
After a search in the source code of Java 3D, I think I found why antialiasing in 1.6.0-pre11 isn't the same as in 1.6.0-pre10.
In the change of JoglPipeline committed on Aug 5, 2014, a setNumSamples(4) call was removed in getBestConfiguration, and now there's only a setNumSamples(2) call, leading to some antialiasing of lower quality from the comments in JoglPipeline class. How comes that the value passed to setNumSamples was reduced? Is it to ensure a better support of Java 3D? Thanks for your help.
Emmanuel Puybaret
|
I debated whether or not to apply that patch as it was just too large to give a decent review.
If you simply bump the number of samples to 4 there, does it solve the regression for you? This code in particular is just a pile of hacks really, but I don;t have the appetite to rewrite it. Harvey |
Free forum by Nabble | Edit this page |