Quantcast

JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

classic Classic list List threaded Threaded
74 messages Options
1234
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

gouessej
Administrator
Hi!

Use my fixes to use JMonkeyEngine 2.0 with JOGL, it is then quite stable.



I have fixed a lot of bugs in the JOGL renderer of JMonkeyEngine 3 and I have ported it to JOGL 2. The source code will be committed in a few days.

I have only one strange bug with my quick port of Ardor3D to JOGL 2, I did not succeed in reproducing it with a shorter test case. The context is null when I try to create an external context.

As far as I know, jzy3d still uses JOGL 1.1.1a. I might port it to JOGL 2 before January if I have enough time.

If the NiftyGUI Java2D renderer is not enough for me, I might plan to port NiftyGUI directly to JOGL 2. Currently there is no JOGL renderer for this API.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

Wade Walker
Administrator
Great work! The more code bases are using JOGL 2, the better tested it will be. I hadn't heard of the JMonkeyEngine before -- I'll go check it out once your commit is in.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

gouessej
Administrator
Wade Walker wrote
Great work! The more code bases are using JOGL 2, the better tested it will be. I hadn't heard of the JMonkeyEngine before -- I'll go check it out once your commit is in.
I have submitted the source code, look at the SVN repository of JMonkeyEngine in the branch jme3:
http://code.google.com/p/jmonkeyengine/source/browse/branches/jme3/src/jogl2

The guys who wrote this renderer gave up, the source code is dirty. I made my best.

For Ardor3D, it is here:
http://ardorlabs.trac.cvsdude.com/Ardor3Dv1/ticket/201
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

gouessej
Administrator
It is a bit better:
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

gouessej
Administrator
Hi

BAD NEWS: The JMonkeyEngine team plans to drop JOGL support. I'm sorry, I did my best, my attempt was a "work in progress" thing but they decided not to maintain 2 renderers.

I still use Ardor3D and advise its use for your own project. jzy3d will be ported to JOGL 2 by someone else and I will try to do something with Nifty GUI. Best regards
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

Wade Walker
Administrator
Sorry to hear that. But it was worth a try!
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

gouessej
Administrator
Wade Walker wrote
Sorry to hear that. But it was worth a try!
Ardor3D is far better and more reliable than JMonkeyEngine.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

Martin
In reply to this post by gouessej
Did they give any reason for that?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

gouessej
Administrator
Martin wrote
Did they give any reason for that?
They said that JOGL gives nothing to the final users and that maintaining several renderers is a burden. Actually, the JMonkeyEngine team pretended to support JOGL in the past only because of its competitors (Xith3D for example), in order to say "we support it too" but they never did it seriously, someone who comes sometimes here wrote the first JOGL renderer for JMonkeyEngine and I drove it more reliable especially on Linux with the help of Mathias Henze... The JMonkeyEngine team has always supported LWJGL. In 2006, I had suggested my help to write the first JOGL renderer and Renanse refused... The irony of the story is that now Renanse works on Ardor3D and is forced to ensure an excellent support of JOGL in his engine because it is requested by some of his clients :) and Ardor3D contains several pieces of source code coming from my fixes for JMonkeyEngine 2 ;)
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

gouessej
Administrator
Good piece of news: NiftyGUI now works with JOGL 2:


It uses the version of JOGL 2.0 beta that is on the Sven's GIT repository.

JOGL is not dead!
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

Jeffg
Not sure if you've looked at Processing.org, but Nifty GUI would be a nice addition to the GUI interfaces.  At this time, Processing runs on JOGL 1.1.1, but I'm sure we'd love to get it to JOGL 2.0.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

gouessej
Administrator
Hi!

Jeffg wrote
Not sure if you've looked at Processing.org, but Nifty GUI would be a nice addition to the GUI interfaces.  At this time, Processing runs on JOGL 1.1.1, but I'm sure we'd love to get it to JOGL 2.0.
Does someone already plan to port Processing to JOGL 2? Only a few things do not work in the JOGL version of Nifty GUI (I remind that Nifty GUI was even not supporting JOGL 1.1.1a before I began using it).
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

Jeffg
Yes, there are plans to update it to JOGL 2.  Not sure what the schedule is... or when JOGAMP plans to release 2.0 for that matter.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

snmvaughan
I'm currently using Ardor3D with the last JOGL 2 code base. I had planned on submitting this back to Ardor, but we are currently using a GLEventListener based model instead of Ardor's Canvas and FrameHandler framework. It works well and uses an Animator to control the animation.
--------------------------
Sent from my BlackBerry Wireless Handheld

 
From: Jeffg [via jogamp] [mailto:[hidden email]]
Sent: Sunday, November 21, 2010 12:56 PM
To: Vaughan, Steve
Subject: Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI
 
Yes, there are plans to update it to JOGL 2.  Not sure what the schedule is... or when JOGAMP plans to release 2.0 for that matter.


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

gouessej
Administrator
Hi!

snmvaughan wrote
I'm currently using Ardor3D with the last JOGL 2 code base. I had planned on submitting this back to Ardor, but we are currently using a GLEventListener based model instead of Ardor's Canvas and FrameHandler framework. It works well and uses an Animator to control the animation.
Why do you use GLEventListener instead of Ardor's Canvas and FrameHandler framework? Does your port use NEWT or AWT?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

snmvaughan

We were targeting NEWT, and found it much easier to just let the windowing system manage resources.

  1. A GLEventListener which rendered an Ardor3D scene would work with anything from a simple NEWT window, to a GLJPanel.
  2. The GLEventListener is notified about changes in the GLWindow's life cycle.
    • init() doesn't get called until the resource is ready for initialization.
    • destroy() is called regardless of the manner in which the process is initiated.
  3. FrameHandler didn't seem to provide any benefit over simply using an Animator.
    • FrameHandler doesn't handle Updater and Canvas instances added after it is initialized, while GLWindow always ensures that init() and reshape() are called before the first display().  We wanted the ability to add and remove an Updater at any point.
    • The FrameHandler doesn't provide any structure.  If you want to ensure that updateGeometricState is called after all updates, then you have to provide some other mechanism (e.g. look at the examples provided in ardor3d-examples).
    • Since Ardor3D doesn't support updates while rendering is occurring, it really is just a loop over the serial phases of update and render.

 


From: gouessej [via jogamp] [mailto:[hidden email]]
Sent: Monday, November 22, 2010 9:57 AM
To: Vaughan, Steve
Subject: Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

 

Hi!

snmvaughan wrote:

I'm currently using Ardor3D with the last JOGL 2 code base. I had planned on submitting this back to Ardor, but we are currently using a GLEventListener based model instead of Ardor's Canvas and FrameHandler framework. It works well and uses an Animator to control the animation.

Why do you use GLEventListener instead of Ardor's Canvas and FrameHandler framework? Does your port use NEWT or AWT?

 


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

gouessej
Administrator
Ok it is very nice :) but I don't know whether your port will be integrated as is as you don't use FrameHandler. Have you ever tested it on Linux?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

Sven Gothel
Administrator
In reply to this post by snmvaughan
On Monday, November 22, 2010 19:34:29 snmvaughan [via jogamp] wrote:

>
> We were targeting NEWT, and found it much easier to just let the
> windowing system manage resources.
>
> 1. A GLEventListener which rendered an Ardor3D scene would work
> with anything from a simple NEWT window, to a GLJPanel.
> 2. The GLEventListener is notified about changes in the GLWindow's
> life cycle.
>
> * init() doesn't get called until the resource is ready
> for initialization.
> * destroy() is called regardless of the manner in which
> the process is initiated.
>
> 3. FrameHandler didn't seem to provide any benefit over simply
> using an Animator.
>
> * FrameHandler doesn't handle Updater and Canvas instances
> added after it is initialized, while GLWindow always ensures that init()
> and reshape() are called before the first display().  We wanted the
> ability to add and remove an Updater at any point.
> * The FrameHandler doesn't provide any structure.  If you
> want to ensure that updateGeometricState is called after all updates,
> then you have to provide some other mechanism (e.g. look at the examples
> provided in ardor3d-examples).
> * Since Ardor3D doesn't support updates while rendering is
> occurring, it really is just a loop over the serial phases of update and
> render.
>

This is awesome!

Would be great if you could push your work to a public git repository,
so we can have a look.

This might also be necessary to allow Ardor make their choice :)

BTW .. I cannot see why Ardor should be OK with this,
ie. an orthogonal toolkit approach besides the 'official solution'.

If not hosted within their codebase, we may be able to host it as a plug-in.

Cheers, Sven
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

gouessej
Administrator
Hi!

Sven Gothel wrote
This is awesome!

Would be great if you could push your work to a public git repository,
so we can have a look.

This might also be necessary to allow Ardor make their choice :)

BTW .. I cannot see why Ardor should be OK with this,
ie. an orthogonal toolkit approach besides the 'official solution'.

If not hosted within their codebase, we may be able to host it as a plug-in.

Cheers, Sven
Maybe Ardor3D should use my JOGL 2 port (that relies on AWT) and that uses FrameHandler until the Ardor3D team modifies the existing framework so that snmvaughan's JOGL 2 port (that relies on NEWT) of Ardor3D can use FrameHandler. It would allow to have a working and accepted JOGL 2.0 port of Ardor3D as a first step and a more performant solution as a second step. I think the Ardor3D team wishes to keep his framework because it allows to switch easily between several Java bindings of OpenGL. snmvaughan's JOGL 2 port is better than my naive port.

My JOGL 2 port of Ardor3D is there:
http://ardorlabs.trac.cvsdude.com/Ardor3Dv1/attachment/ticket/201/ardor3d-jogl.zip
It has not been updated for a while but it should work with the latest build.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JOGL 2 support for Ardor3D, JMonkeyEngine 3, jzy3d and NiftyGUI

gouessej
Administrator
Hi!

I'm very proud to announce that I have finally succeeded in fixing the blocking bug which prevented me to use Ardor3D with JOGL 2:

    @Override
    public void addNotify() {
        super.addNotify();
        _canvasRenderer.setContext(getContext());
    }


Ardor3D examples work perfectly with JOGL 2.0  :D




I have just rewritten my straightforward port in about 3 hours, I will use it with TUER very soon, probably in some days.
1234
Loading...