Xith Suitability for a Visualisatin project ?

Hi

I am currently doing a medical program visualisation (maybe later as a CAD) and I am looking around for a java 3d engine. I was wondering if anyone here has any experience in this area and is Xith a suitable engine for this ?

Thanks, Dave

I never done a medical program visualisation program with Xith, however I don’t see any problem with that, really you can use Xith for whatever use you want.

Hi, I am working on a project that uses Xith for 3D rendering for architectural visualization and what not. We are using it sucessfully for two years, we had lots of troubles along the way but eventually got it to work to our expectations. Some of the observations would be the folowing…

We like:

Ovarall engine design seems to be pretty good
Sorting transparency stuff
Thread unsafe concept (we liked this feature, some people might consider this to be a flaw)
Geometry instancing

We don’t like

Interface is messy, you will find lots of undocumented, not implemented stuff inside, look trough the source and try it out see what works the best
Two years ago performance was pretty good in comparison with Java3D for example, but some recent benchmarks show that Java3D is way faster these days.
Very little community effort in last year and a half, you will most likely end up fixing and adding stuff on your own.
No generic GUI mechanisms
Missing some more advanced culling mechanisms (BSP, Portals, OctTree, Occlusion…)
No generic multisampling / stereo rendering

Hopefully some of the don’t likes are actually caused by the lack of our knowledge (it is quite possible that we just haven’t figure out how to use some of the features) For example I think that once upon a time Xith had shadows of some sort implemented, I have seen some interfaces and classes in there that might be used for that but we have never been able to use this feature.

Hi,

[quote]No generic multisampling
[/quote]
There is a mutlisampling, I use it. It is activated by providing alternate GLCapabilities chooser for underlying renderer when creating canvas.

[quote]Interface is messy, you will find lots of undocumented, not implemented stuff inside, look trough the source and try it out see what works the best
[/quote]
Agree in big extent. Most of the stuff is undocumented. But the real problem is a lack of examples comparing to number of features implemented.

[quote]Two years ago performance was pretty good in comparison with Java3D for example, but some recent benchmarks show that Java3D is way faster these days.
[/quote]
I think we should address these issues. Performance and the ways it is benchmarked is always a topic for 3D projects.

Yuri

Just curious is this Xith or Java3D that have changed? or both?

I’ve not used either in a while.

True, although Javadoc is in the way of being completed.

IMHO, a single benchmark with only static geometry and (now) outdated versions of the libs cannot be completely trust. Some patches have been made for improving performances, and using the Alternate vecmath lib seems to provide much better performances (@see Yuri).

This is ignoring work from William Denniss, Arne Müller, David Wallace Croft, Lilian Chamontin, Yuri VI. Gushchin, myself, and a bunch of others I forget here…

Please be more explicit about what you mean by “generic GUI mechanisms”. A Xith GUI project has been started recently (1-2 months ago) by someone.

Occlusion is implemented and working, classes for OctTree exists, but I don’t know if it works.

RenderOptions options = new RenderOptions();
        options.setOption(Option.USE_SHADOWS,true);
        options.setOption(Option.USE_LIGHTING,true);
        
        cp.setRenderOptions(options);

lines 112-116 from org.xith3d.test.MD2Test.java
Not explicit I admit, but it works. I’ll howto that.
(Note : cp is CanvasPeer)

I’ve tried it, but wasn’t successful. Just thought it was another thing not working…

If you could come up with a simple test case (two cubes for example) that would be great !

Lilian :slight_smile:

Shadows HOWTO made. See http://www.java-gaming.org/forums/index.php?topic=13089.0
If it doesn’t work, then we need a testcase, that’s right.

Hi,

[quote]Very little community effort in last year and a half, you will most likely end up fixing and adding stuff on your own.

This is ignoring work from William Denniss, Arne Müller, David Wallace Croft, Lilian Chamontin, Yuri VI. Gushchin, myself, and a bunch of others I forget here…
[/quote]
Well, lets put it this way, I have seen much less stuff going on around Xith during last two years than comparing to JME or Java3D (since it went open source) for example. I must admit that I haven’t been checking out Xith in last couple of months and it looks like you guys are trying to give it some life again which is encouraging.

[quote]No generic GUI mechanisms

Please be more explicit about what you mean by “generic GUI mechanisms”. A Xith GUI project has been started recently (1-2 months ago) by someone.
[/quote]
By generic GUI mechanisms I mean that there should be at least one Xith GUI component class in the core, this GUI object should paint in foreground or post-render phase of some sort using 32 bit pixels, so that it can be transparent and nicely overlayed on top of everything. There should be a basic action listener implemented for such component, something that will include basic events like mouse overs, clicks, etc. Now the hard part, as far as I can see it, is making painting to the foreground well integrated into the rendering pipeline and efficient another thing is making events fire properly, doing the screen space mouse pointer intersections and all the picking and draging managment of GUI components. Althought having this class and listener will be nice to have I think that an easy way of just drawing pixels in screen space in a post render phase would be enough for start. Again it is possible that foreground painting is already possible and I am just not aware on how to access it.

So is Occlusion culling on by default or has to be enabled specificaly ?

Cheers