|
Marvin Fröhlich
|
 |
« Reply #75 on: 14. December 2007, 01:31:27 PM » |
|
I had to learn, that physics engines don't like varying step times. So I applied a constant-step-time patch to XPAL. Therefore I had to slightly change the API. Don'T use the setMaxStepTime() method anymore as you have done before. It is a correction hint to ignore step-sizes greater than the given value (default is 2000000L). Instead use the setStepSize() method, which defaults to 5000L, which you can even leave at the default.
Additionally I have moved the JoodePhysicsEngine class into the correct package. Previously it resisted in the org.xith3d.physics packages and now it has been moved into the org.xith3d.physics.joode package.
And I have separated the joode.jar from the XPAL code. There is an additional xpal-joode.jar, which you need to include in your classpath.
XPAL seems to work very well now.
Marvin
|
|
|
|
« Last Edit: 14. December 2007, 02:15:02 PM by Marvin Fröhlich »
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #76 on: 19. December 2007, 08:08:26 PM » |
|
I have removed the TextureLoader.newInstance() method. Actually I don't really know, why it was there. Must have been a relic.
Marvin
|
|
|
|
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #77 on: 26. December 2007, 06:42:24 PM » |
|
I have removed the need to pass geometry features to GeometryArrays' Constructors. All geometry data is created on demand.
There is no GeometryArray.TEXTURE_COORDINATE_1/2/3/4 anymore. It has been "replaced" by GeometryArray.TEXTURE_COORDINATES, since the texture unit's tex-coords don't have to be of the same size anymore.
GeometryArray.COLOR_3 and .COLOR_4 doesn't exist anymore, too. It has been "replaced" by .COLORS.
Marvin
|
|
|
|
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #78 on: 30. December 2007, 12:03:11 AM » |
|
I have removed the method setFixeDPlaneEnabled() from FirstPersonInputHandler.
the FPIH now has a new member called FPIHMovementConstraints, which is accessible through getMovementConstraints() (and the setter). This constraints object now holds the fixed-plane flag as well as some others. The whole object can be replaced to get full control over the movement constraints.
Marvin
|
|
|
|
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #79 on: 01. January 2008, 07:41:59 PM » |
|
I have removed Background and Foreground classes and replaced them by BackgroundRenderPass and ForegroundRenderPass. this enables you to exactly say, in which order things are rendered. Additionally the render code has become a lot simpler. SkyBox (etc.) are now extensions of BackgroundRenderPass and are therefore not added to a group of the SceneGraph anymore, but directly to the SceneGraph as a RenderPass like this: sceneGraph.addRenderPass( skyBox );
the addRenderPass() method guarantees, that BackgroundRenderPass instances are placed into the list before regular RenderPasses and ForeGroundRanderPasses after regular ones. Marvin
|
|
|
|
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #80 on: 06. January 2008, 10:56:21 PM » |
|
I have changed the SpotLight's constructors. Previously the order was ..., location, attenuation, direction, ... Now it is ..., location, direction, attenuation, ... which is a whole lot more logic.
I have also added new constructors to all Light classes. Just check, if there's a new one, that better suits your needs (less parameters, use some defaults).
Marvin
|
|
|
|
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #81 on: 19. January 2008, 04:06:42 PM » |
|
To achieve a little performance boost I used group.getChild() instead of group.getChildren().get() and group.numChildren() instead of group.getChildren().size().
the underlying datastructure is an array now, but not an ArrayList. Therefore the getChildren() method has to create a new ArrayList for each call and should be avoided. It is deprecated now. Please switch to numChildren() and getChild().
Marvin
|
|
|
|
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #82 on: 19. January 2008, 07:15:01 PM » |
|
I have tweaked JAGaToo's logging system. All the println(), debug() etc. method now don't take (String message) as the message parameter anymore, but (Object... message). This is much faster, if your want to pass more than one argument as the message. Previously you had to concatenate the message string. Now you can just pass the portions as additional parameters. (fully dynamic). This is nothing, that forces you to change anything. But you should  . Marvin
|
|
|
|
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #83 on: 19. April 2008, 12:07:30 AM » |
|
I have added support for undecorated windowed-mode. Therefore I have changed the simple boolean parameter for fullscreen mode in Canvas3DFactory etc. to an enum (FullscreenMode).
If you didn't simply use a boolean, but the constants in DisplayMode (as you should do), you won't have to change anything.
Marvin
|
|
|
|
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #84 on: 19. April 2008, 02:10:43 PM » |
|
I have removed the render Option for selecting EXP2 fog and added an enum and getter/setter pair to ExponentialFog.
Marvin
|
|
|
|
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #85 on: 04. May 2008, 08:18:45 PM » |
|
I have merged the InputSystem branches back into the trunk. The necessary changes in your code look heavier than they actually are. Much of it is done by simply pressing CTRL+SHIFT+O (Organize Imports) in Eclipse. The rest of it will become obvious after you read the JAGaToo's InputSystem's documentation. Since SVN merging is not an easy task when if becomes that heavy, I might have messed something up. Please tell me, if everything went right. Marvin PS: HIAL is not use at all anymore.
|
|
|
|
« Last Edit: 04. May 2008, 09:23:28 PM by Marvin Fröhlich »
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #86 on: 05. May 2008, 12:29:26 PM » |
|
Almost forgot to mention that: The HUD doesn't need (and want) an OperationScheduler for the constructor anymore. You can simply call the HUD's constructor as before, but without the OpSched-parameter.
And when adding the HUD to the SceneGraph, the addHUD() method simply takes the HUD instance, but no InputManager anymore. This has become obsolete because of the new InputSystem.
Marvin
|
|
|
|
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #87 on: 09. May 2008, 12:23:27 PM » |
|
I have deprecated some methods and constructors in Quad and replaced them with new ones, that use an abstracted vertex-order.
The public vertex-order is (ll, lr, ur, ul) (counter-clockwise). Please check your Quads, if they still work (they should), if you're using a Quad directly. The Rectangle is not affected. It works as before.
I have additionally changed Quad to be backed by a TriangleFanArray instead of a TriangleStripArray due to a tip by qbproger. This leads to an internal vertex winding, which is equal to the public one. Even if that's on essentially important, it is nice. Thanks qbproger.
Marvin
|
|
|
|
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #88 on: 20. May 2008, 05:42:26 PM » |
|
I have ported the Sized2i, Dim2i, Rect2i, etc. classes from JAGaToo to OpenMaLi. So you just need to replace the imports from "org.jagatoo.datatypes." to "org.openmali.types.twodee.". The HUD uses Sized2iRO instances for the getSize() methods and constructors. Since it is anyway better to use the plain float constructors and getWidth() and getHeight() methods and you always use the better versions, you will probably not have to change anything here  . Marvin
|
|
|
|
|
Logged
|
|
|
|
|
Marvin Fröhlich
|
 |
« Reply #89 on: 25. May 2008, 05:28:38 PM » |
|
After I abstracted the abstractable parts of the TextureLoader and ported them to JAGaToo there are a few things, that changed in the Xith3D API. Fortunately it's not much. - The TextureStreamLocator (and extensions) resides in a JAGaToo package now.
- The TextureStreamLoader resides in JAGaToo now and has been renamed to TextureFormatLoader.
The TextureComponentLoader resides in JAGaToo now and has been renamed to TextureImageFormatLoader. Most of the TextureStreamLoaders have been converted to TextureImageFormatLoaders. You don't need to manually add TextureFormatLoaders or TextureImageFormatLoaders to the TextureLoader, since all standard implementations are added by default.
- All methods to access the texture-cache are removed from TextureLoader. There's a new method getCache(). You can access the TextureCache instance and use methods on it.
- I have removed the getTexture() methods, that take texture-filters, etc. It was confusing, since the filter parameters weren't reflected in the cache-key.
- The getTexture( URL, ... ) methods have been renamed to loadTexture( URL, ... ) and are not cached anymore.
I have additionally renamed ImageComponent/ImageComponent2D/ImageComponent3D to TextureImage/TextureImage2D/TextureImage3D. But you most probably won't have to deal with these classes except for texture drawing. I hope, I didn't forget anything. Marvin
|
|
|
|
|
Logged
|
|
|
|
|