Xith3D Features

This post is to keep updated the different features supported now and in the future of the Xith3D project. Because we add features so quickly, this is a pace people can look to quickly determine if something is implemented.

Architecture
[]Not tied to any underlying API
[
]Under a dozen classes need to be implemented to port to another API
[]Reference implementation uses JOGL -> OpenGL
[
]Sophisticated state sorting

Geometry
[]Triangle Array
[
]Quad Array
[]Triangle Fan
[
]Triangle Strip
[]Indexed Triangle Array
[
]Loader for ASE

Rendering
[]Depth buffer : test / write
[
]Alpha buffer : test / write
[*]Stencil buffer : test / write

Texturing
[]Multi-texturing
[
]COMBINE mode
[]MipMap, clamping, perspective correction, etc
[
]Loaders for RGB, RGBA and GRAY images from PNG, JPG, etc
[]By-Reference, auto-flipping
[
]memory and disk caching of textures.
[*]TexCoord generation

Transparency
[]Vertex alpha
[
]Shape Blending
[*]Shape sorting for back-to-front rendering

Sound
[]Loaders for WAV and OGG formats
[
]Ambient Sound (Stereo)
[]spatialized sound (Mono)
[
]Designed independant of any API.
[*]OpenAL and JavaSound support

Spatial
[]Bounds: Sphere, Box, Frustum, Plane
[
]OctTree
[*]Real time frustum culling

Misc
[]Shadow volumes
[
]Canvas shape picking
[]Overlay support
[
]Swing GUI support

Scenegraph
[]Nested transforms
[
]View based culling
[]Projection / ortho modes
[
]Local and vworld bounds kept current
[*]Any number of nested transforms

Implented Nodes
Appearance
Background
BackgroundSound
Billboard
BoundingBox
BoundingSphere
Bounds
BranchGroup
Canvas3D
ColoringAttributes
DirectionalLight
ExponentialFog
Fog
Foreground
Geometry
GeometryArray
GeometryStripArray
GeometryUpdater
Group
ImageComponent
ImageComponent2D
IndexedGeometryArray
IndexedTriangleArray
Leaf
Light
LineAttributes
Locale
Material
MediaContainer
Node
NodeComponent
OrderedGroup
PointSound
PolygonAttributes
QuadArray
RenderingAttributes
Shape3D
SharedGroup
Sound
Switch
Texture
Texture2D
Texture3D
TextureAttributes
TextureUnitState
Transform3D
TransformGroup
TransparencyAttributes
TriangleArray
TriangleFanArray
TriangleStripArray
View

David

what about interpolators/behaviors?

Bump… still waiting for mod privs to make sticky.

David,

Could you please add under the ASE Loader entry that the GROUP nodes are not yet supported to avoid confusion for new users? (issue 22)

Thanks,

Will.

Hi! Do you plan to add to Xith3D scenegraph serialization feature (like that contained in scenegraph.io package in Java3D 1.3.1) ? I need it hardly.

[quote]I need it hardly.
[/quote]
You need it “absolutely”. (“hardly”=“kaum” in case you are german)

I’m not a german, I’m ukrainian ;D, and my english is bad, but this does not change the matter: I ABSOLUTELY need scenegraph serialization.

Infact, “I need it absolutely” isn’t very good english either :slight_smile:

“I need it desperately” would probably be better. Better still would be “I desperately need it”.

Anyway, if you’re porting something from Java3D you could just implement at simplistic serialisation.

Kev

[quote]Infact, “I need it absolutely” isn’t very good english either :slight_smile:

“I need it desperately” would probably be better. Better still would be “I desperately need it”.
[/quote]
You’re right of course. I tried to correct it, because I thought people can really misunderstand it.

I want to switch from Java3D (by rumours, it is dead), but, unfortunately, I can’t. Xith3d has not scenegraph serialization, and it is too much work to do it by myself. So, when Xith3d has, I’ll switch on it, but now I’m stay on j3d.

Do you need to be compatible with java3d serialized data, or just be able to serialize/deserialize inside xith3d ? In latter case, it should be not so hard to add support for serialization.

I need only ability to serializa scenegraph, compatibility with serialized java3d scenegraph is not needed

Then don’t give up kimerinn. I’ll start up a thread about scenegraph serialization and we will see what can and what cannot be done.

thanks a lot ;D

Hi all. Here is one great “feature”, that java3d has and xith has not: a good one-file installer. I’ve read xith installing tutorial and feeled that only few “dumb” users will use xith because of sophisticate install procedure.

What do you want the installer to do? I don’t know the Java3D installer, but if you have an Xith3D installation you probably don’t want to modify the installed JRE of a user, because of several reasons (e.g. your app is usually tested and stable with a certain combination of libraries). All you need is a startfile, which puts all the libraries in the classpath and library path and then starts your game.

yeah - and since Xith3D is targeted at developers, we assume they are competent enough to install it (and we’ve got a lot of docs to help them).

Currently everyone pulishing stuff is bundeling their own versions (ie. their own installer or JWS). A generic installer could happen if the API stabalises but it is far from that. It also is a large task because you have to think of multiple platforms and versioning. Maybe ask this again in a year :wink:

Will.

David,

Can you please update this line (under Geometry) to reflect the fact the loader does support GROUP’s now:

Loader for ASE (does not support GROUP node)

Will.

Add TextureCubeMap, FragmentProgram, VertexProgram

Add Fog