New commit

I tagged the current repository as XITH3D-ALPHA-10 and then committed a bunch of code changes, then tagged that as XITH3D-ALPHA-11.

I have vastly improved the texture state changes, including support for efficient multitexture units. The attributes and the texture themselves have been seperated into two shader peers so that we do not re-issue the opengl commands for one when we need to change the other. No longer is the ShapePeer calling the texture peer, the new code ensures that the texture units are correct before the shape peer is invoked. I am also sorting the state based on multiple texture units so that we can minimize texture swapping. There were also a boatload of tweaks to different things to improve performance. I regression tested it, but let me know if any of your projects break and I will jump on the fixes.

In addition I am working on the ability to bypass the scenegraph if you want to in order to get more speed out certain things. Basically you will be able to construct a list of shaders and pass them into the engine to be processed in the order you specify. This would assume that your code would handle the culling and it would technically be possible for you to “mess things up” by not handling a state change. For for things like rendering a Quake level it would vastly speed thinsg up to not have the scenegraph looping through 500 shapes of 10 triangles each and sorting all the atoms and checking the state on each atom, which is where a lot of time is being spent right now. So basically, this is just one stap above OpenGL, you would basically be saying, set the polygone attributes to X, set the texture attributes to Y, render this shape, etc. This would co-exist with the view rendering and in fact would be a special type of scene node with a callback to have you adjust the render list before it was added to the frame list.

Should xith3d/src/META-INF/MANIFEST.MF file be created?


Implementation-Title: Xith3D
Implementation-Version: x.y.z (YYYY-MM-DD)
Implementation-Vendor: Xith3D
Implementation-URL: http://www.xith.org