Hi,
[quote]I heard rumor that java 3D has been open sourced.
[/quote]
This is not a rumor anymore. The source code is published at https://java3d.dev.java.net/.
There are several points related to Xith3D and Java3D:
- Xith3D is focused on games, while Java3D is focused on visulaization systems:
As Doug Twilleager wrote,
[quote]Java 3D and Xith3D can co-exist with no problem. Xith3D has a focus on games, and some non-games applications can take advantage of the things that it has. There is also a very large Java 3D development community that doesn’t make games. Because of Java 3D’s asynchronous multithreaded design, it fits very will into visualization systems. It’s focus is not likely to change because of its large visualization installed base. So, having a games focused scene graph is a good thing.
[/quote]
Java3D implements thread-safe scenegraph, while Xith3D implements non-thread-safe one, and here is a major performance difference.
Java3D 1.4 seems to remain thread safe: at https://j3d-core.dev.java.net/ you can read
[quote]…We envision 1.4 including features such as programmable shaders. Our goal is to minimize large scale changes to the system in order to deliver 1.4 as quickly as possible.
[/quote]
And this implicitly means that thread safety most probably will be preserved.
-
Short note: Java3D is published as subproject of JavaDesktop, not JavaGames. I see good reasons of doing this, but I think this is a clear indication of Java3D target user group.
-
There is one very important issue: licensing.
For me, Java3D licenses are too restrictive. Xith3D released under BSD license, so you can do with it nearly whatever you want. Read Java3D license and you will see a lot of explicit and implicit limitations.
-
We will keep trying to be as compatible with Java3D as possible, and if new (alive) JSR will be filed for Java-based 3D scenegraph, we will try to keep compatible with it, having in mind needs of Java game development.
-
These days I am getting ready to start full power with LWJGL support for Xith3D, which is mostly maintainability question - I want to keep both JOGL and LWJGL renderers to be absolutely synchronized (in development) and to have single codebase for both. This will need some time, but after we will get 100% community-driven solution for 3D programming in Java (OK, another one).
There are a lot of ideas related to this project, and any suggestions are welcome.
Yuri
P.S. I think this will be 3rd time this week I say “Xith3D is not dead”.