tutorial for Java3D -> Xith3D transition

A lot of people would like to have a guide which describes differences and similiarities between Java3D and Xith3D. If you have some Java3D programming experience and switched to Xith3D recently you might consider writing this tutorial to make the transition easier for others. (I can’t do it myself, because I didn’t use Java3D.) The tutorial would be placed on http://www.xith.org/tutes.php.

I am probably not very well suited for this either, because right before I was about to launch into Java3D (after looking around at the possible alterntaives, eg. GL4Java and deciding that the scenegraph was quite suitable) I found that it had been “stalled”. Several months later Xith3D arrived ;D my previous j3d code I essentally dumped when switching to Xith3D, because there wasn’t worth trying to port and it was written quite a while ago now.

So is there anyone currently porting j3d stuff to Xith3D who might like to give this a crack?

Will.

Hello,

Yes, I am porting Java3D application to Xith3D, but I prefer to focus on implementing some functionality that my app requires and that is missing (yet) in Xith3D [you saw already some changes].

I use really a big subset of Java3D APIs in my app, so this is a good test for Xith. BTW, we have some more apps to port, and maybe after finishing the first app I will join efforts on this topic.

For this moment, I can contribute some answers to questions I had (I can not call this FAQ, but there are some common topics, like transparency etc.)

Yuri

Yuri,

I think I speak for everyone when I say keep coding! Having better Java3D compatability superseeds the need for a tute on it (and I am liking what I am seeing) :).

Once you and others have converted programs, if you were willing to write up a very short article on the problems you encountered and pros and cons of Xith3D, I think that would be very usefull and appreciated for others attempting the same.

Cheers,

Will.

Agree. I would like to port my Nevermore application from Java3D to Xith3D because of the problems Java3D has with concurrently playing sound and rendering 3D-graphics (especially as my app has to instantiate a JavaSound mixer as it uses JMF to play cutscenes).

I am going to display Nevermore at a seminar tomorrow and I did consider porting it before that, but I decided not to to because the app uses the Xj3D loader and SceneGraphIO. Can anyone offer an informed opinion on how hard it would be to write a Java3D to Xith3D scenegraph converter?

Maybe the renderer Shawn Kendall has been working on would be a better solution if it works on Java3D’s data structures? (If you read this Shawn, please tell us about how your renderer is coming along, interesting to know now that vertex buffer support is in JOGL).

I agree.

Once we’ve got a moderator we can make this thread sticky until there’s a volunteer. If you like we can start collecting information here. Here are some points:

Differences:

[] open source
[
] Xith3D-platforms: Linux, Mac, Windows (depending on the underlying API); Java3D: Linux, Windows
[] potential use of different renderers (Jogl, LWJGL)
[
] finegrained package structure
[] scenegraph is not thread safe
[
] only floats, no doubles
[] no capability bits needed
[
] no interpolators up to now
[] limited behavior support
[
] shadow support

Similarities:

[] scenegraph structure
[
] potential support for OpenGL and DirectX
[] sound support
[
] loaders for models and textures
[*] light support

Of course a tutorial needs to cover what exactly has to be done to port an existing Java3D application to Xith3D.

Java3D for mac is available now actually in Alpha.

Go to the Apple developers site of you want it. (Youll need a login but its free.)

[quote]Maybe the renderer Shawn Kendall has been working on would be a better solution if it works on Java3D’s data structures? (If you read this Shawn, please tell us about how your renderer is coming along, interesting to know now that vertex buffer support is in JOGL).
[/quote]
Thanks for the lasting interest.
I will make semi-formal announcement this weekend or Monday at the latest giving the latest progress, features, design philosophy, compatibilities with J3D, and a roadmap as well as our path to CVS-ing it here. (we are very close, I am expecting Dec)

Hi all,
Well I finally got a chance to sit down and give a heads up on our work and future releases. Our book text was several weeks behind and for our final delivery we are crunching the “behindness” :slight_smile: so that has been my focus. On to the goods…

Jist3D

By years end, I will release the alpha code base for our 3D engine called “Jist3D” and other game toolkit code as an open source CVS project. The project is the result of many people’s hard work with several earlier engines ( dating back to WorldToolKit! ) The package includes several game related APIs built on top of JOGL, JOAL, and Jinput in a highly componentized and layer design. The bulk of the source will be the core of several chapters from our book to-be-release at GDC next year titled “Practical Java Game Programming”.

Jist3D is the JOGL render engine (view, state, geometry management and caching, etc.) and completely layered (i.e no upwards references by the render engine) on top of the render engine core, scene graph system (graph, transforms, bounds, view culling, loaders, etc) and a few optional utils for working with Java3D graphs (read converters)

The additional components are a Jist3D compatible 3D collision system, 2D overlay/interface API (using JOGL) that integrates with the render engine, a specialized Math class for fast approximate math functions, and a basic character animation engine.

Each major topic above is essentially companion to the relevant chapters in our book. The book concludes with a overhaul/port of the Java3D fighting game we showed at GDC 2002 and 2003 using the new JOGL/JOAL/Jinput code base.

What is NOT there is the physics system we have demonstrated in the past and particle systems, as the first was too big for a chapter and the later too small, in an already too large book :slight_smile:

I look forward to a annoucing a complete feature list, the actual release, and working with the community to further the engine and to resolve/share/exchange our techniques/components/ideas with other projects (for example Xith3D :-))

The idea of the book and Jist3D is awesome. Does the book have a homepage?

What are your future plans regarding Jist3D (actually this topic deserves its own thread)? Is it going to be a maintained API? I (we) would appreciate very much if you put your knowledge in the development of Xith3D. I can assure you that a lot of people like Xith3D and a lot of work is needed to reach at least the functionality of Java3D.

moved to http://www.java-gaming.org/cgi-bin/JGNetForums/YaBB.cgi?board=jogl;action=display;num=1069188165;start=0#0

This tutorial would also be of benefit to those of us new to Xith3D and Java3D because we could work from a lot of the Java3D samples and docs that aren’t presently available for Xith.

Any news on a tutorial? I would still be very interested in seeing one.

Have Xith3D and Java3D started to diverge, in terms of node names?

also, have behavior, picking, and LOD nodes been implemented yet? Those are the big ones that wold keep me from switching to xith3D.

Picking is already implemented.
At the time of the writing of the getting started tutorial, behavior wasn’t implemented.
I don’t know about LOD.

it would be nice to compare jme as well…might be a good way to tell what features might be desired for xith3d that are in jme but missing in xith3d.