 |
Xors3d Engine
|
Changelog
Revision 736 (7 December 2011)
Added:
- xFileCreationTime(), xFileCreationTimeStr(), xFileModificationTime(), xFileModificationTimeStr();
- PXDD_NO_AXIS constant. If PXDD_NO_AXIS is used and PXDD_WIREFRAME is set the axis won't be drawn;
- MATRIX_pWORLD, MATRIX_pVIEW, MATRIX_pPROJ, MATRIX_pVIEWpPROJ, MATRIX_WORLDpVIEWpPROJ, MATRIX_pWORLDpVIEWpPROJ. 'p'-prefix means 'from the previous frame';
- PureBasic header files;
- EngineSetting: "Input::ListenControllerConnection" which allows to enable or disable game controller connection in the runtime;
- xCountJoys() to get the number of connected game controllers;
- xGetEntityWorld() to get the world in which the entity exists;
- xSetEntityWorld() which moves the entity from its current world to another one.
Changed:
- xCameraClsColor, xClsColor and xColor now have an additional parameter 'alpha'. Now 2d primitives can be drawn with transparency;
- for C++ users: buffer functions (xSetBuffer etc) now works with int instead of Handle;
- two sets of key and mouse constants: with 'x'-prefix and without prefix;
- lights affect entities only in their world.
Improved:
- usability of the html log file;
- now trial timer is rendered into the back buffer only;
- now connection of the game controllers can be handled in runtime. See "Input::ListenControllerConnection" EngineSetting.
Fixed:
- 'Technique "" is not found' issue;
- VB.NET header file;
- MAV on xDeleteWorld();
- redundant update of sleeping bodies;
- sleeping bodies can't be positioned or rotated manually;
- mounting of the pack files;
- pack file memory corruption;
- setting the entity's pick mode;
- copying of an entity (now the copy is placed into the active world);
- SPHERETOSPHERE constant (was SPHERETOSHPHERE);
- xWritePixelFast, xReadPixelFast default buffer parameter;
- camera view matrix wasn't updated in some cases;
- a major memory leak in the mesh loader;
- some minor memory leaks here and there (a few bytes per each graphics initialization);
- frustum culling of the terrain chunks.
Documentation:
- Added changelog page;
- More documentation on Engine settings.
Revision 716 (16 September 2011)
Added:
- isRecursive argument in xSetEffectTexture() and xEntityTexture().
- new engine settings:
- ‘LoadMesh::IgnoreTextures’ (default value is ‘false’) – if ‘true’, while loading the models, the textures are ignored and not loaded.
- ‘Rendering::AlwaysZWriteOnMeshRendering’ (default value is ‘false’) – if ‘true’, writing to the Z-buffer is not disabled while drawing transparent entities.
- new square sensitive zone of the Movement Gizmo which is always directed to the camera. Recommended use: movement of the objects in plane which is aligned perpendicular to camera’s direction of view.
- optional parameters for C# wrapper.
- xDrawImage() now receive float arguments for smoother movement.
- xEntityHasBody() – return true if entity has a physical body.
- xLine3DNodePosition() for changing the position of the specific node.
- xSetTopWindow() to set a top-level window handle. It is necessary if you render into the window or control element which is not the top-level window.
Changed:
- xText() now receives x and y coordinates as floats instead of ints. This allows to draw smoother overlayed text.
Improved:
- internal timers. All time-sensitive systems (animation, physics, etc) should work smoother.
- performance of static physical entities.
Fixed:
- changing the mass of an entity if its initial mass is 0.0 (converting a static body into a dynamic one).
- crash if camera is outside the streaming terrain.
- crash on 3d-line rendering.
- crash on xClearWorld() if movement or scale gizmos are used.
- minor issue in ‘Blitz3D\Physics\Damping – Angular.bb’
- minor issue in ‘Blitz3D\Physics\Simple Vehicle.bb’
- not initialized input devices if custom window is used. See xSetTopWindow().
- picking of entities (the issue is present in rev.710 only)
- rendering of the transparent surfaces which were drawn more than one time in some cases.
- shadows with custom camera viewport.
- wrong detection of the terrain’s height.
- wrong sensitive zones of the Rotational Gizmo.
- xGetEntityAlpha() with entities having several surfaces.
- xReadLine() function.
- xRenderEntity() with ordered entities.
- xViewport() with texture buffer.
Revision 710 (12 July 2011)
Added:
- FX_NOALPHABLEND FX-flag. See docs.
- xGetXors3dVersion(), xGetXors3dMajorVersion(), xGetXors3dMinorVersion(), xGetXors3dRevision(). See docs (‘System information’ section)
- xSurfaceTexture(), xSurfaceColor(), xSurfaceAlpha(), xSurfaceShininess(), xSurfaceBlend(), xSurfaceFX(), xSurfaceAlphaRef(), xSurfaceAlphaFunc().
Improved:
- PICK_BOX and PICK_SPHERE return more accurate picked coordinates.
- instanced entities are pickable.
- xLoadFont can load fonts from the specific directory. If the loader fails use the last argument (fontface) to specify the exact name of the fontface.
Fixed:
- C# header generator.
- FX_FULLBRIGHT issue.
- minor bug of the log init.
- terrain orientation issue.
- the bug with wrong size of the backbuffer if the size of the window is equal to or greater than the size of desktop. See docs (xGraphics3d()).
- xSeekFile().
Renamed:
- xSetAlphaFunc to xEntityAlphaFunc.
- xSetAlphaRef to xEntityAlphaRef.
Revision 704 (22 June 2011)
Added:
- KEY_RETURN alias – KEY_ENTER.
Changed:
- xAmbientLight has an additional argument ‘world’. It is possible to set an ambient light for each world separately. If world is not specified an active world is used.
Improved:
- logging of the shader effects
Fixed:
- clearing of the textures.
- crash if path to log file does not exist.
- minor issue with the wrong color of the instanced entities.
- minor issue with wrong surface texture setting.
- world assignment of copyed and instanced entities.
- xVertexAlpha
Renamed:
- all *3DLine* functions to *Line3D*.
- xMeshesBBIntersect() to xEntitiesBBIntersect(). xMeshesBBIntersect() is now deprecated.
Physics
Added:
- anisotropic friction.
- basic vehicle functions (no documentation yet).
- collision filtering. xEntityCollisionGroup(), xGetEntityCollisionGroup(), xEntityCollisionMask(), xGetEntityCollisionMask().
- compound shape.
- concave shape.
- local transformation of the physical body.
- physical ray casting.
- physics constants (joints, debug draw modes, raycasting modes).
- proxy-versions of the xEntityAddConcaveShape(), xEntityAddConvexShape(), xEntityAddTrimeshShape() functions.
- restitution parameter. xEntityRestitution(), xGetEntityRestitution().
- sleeping state. xEntitySleeping(), xEntityWakeUp(), xEntitySleep(), xEntitySleepingThresholds(), xEntityLinearSleepingThreshold(), xEntityAngularSleepingThreshold().
- terrain shape.
- xEntityAttachBody, xEntityDetachBody.
- xEntityContactImpulse.
- xEntityDisableSimulation.
- xEntityDisableSleeping()
- xEntityLinearVelocity(), xEntityLinearVelocityX(), xEntityLinearVelocityY(), xEntityLinearVelocityZ(), xEntityAngularVelocity(), xEntityAngularVelocityX(), xEntityAngularVelocityY(), xEntityAngularVelocityZ().
- xEntitySetMass(), xEntityGetMass().
- xJointD6GetPitchAngle(), xJointD6GetYawAngle(), xJointD6GetRollAngle(), xJointD6GetAngle().
- xJointD6SetLimits(), xJointD6SetLowerLinearLimits(), xJointD6SetUpperLinearLimits(), xJointD6SetLowerAngularLimits(), xJointD6SetLinearLimits().
- xJointDisableCollisions.
- xJointEnable(), xJointIsEnabled(), xJointGetImpulse().
- xJointGetEntityA(), xJointGetEntityB() functions.
- xJointHingeGetAngle.
- xPhysicsSetRaycastFilter(), xPhysicsGetRaycastFilter(), xEntitySetRaycastGroup(), xEntityGetRaycastGroup().
Changed:
- ApplyCentralForce(), ApplyCentralImpulse(), ApplyTorque(), ApplyTorqueImpulse(), ApplyForce(), ApplyImpulse() have additional global and/or globalPoint arguments (see documentation).
- Joints are created by separate functions: xCreateD6Joint(), xCreateD6SpringJoint(), xCreateBallJoint(), xCreateHingeJoint().
- joints’ pivots may be set in local and global coordinates.
- one of the entities connected by the Joint can be null. In this case another entity is connected to a static world.
- xPhysicsDebugRender has several modes.
Improved:
- increased performance of the physics debug drawer.
Fixed:
- issue with the zero size of the physical body of the instanced entity.
Renamed:
- joints:
- 6dof to D6
- 6dofSpring to D6Spring
- Point2Point to Ball
- xEntityDamping to xEntitySetDamping;
- xGetEntityLinearDamping to xEntityGetLinearDamping;
- xGetEntityAngularDamping to xEntityGetAngularDamping;
- xEntityFriction to xEntitySetFriction;
- xGetEntityFriction to xEntityGetFriction;
- xFreeEntityShapes to xFreeEntityBody;
- xCountContacts to xEntityCountContacts;
- xJointHingeLimit to xJointHingeSetLimits.
Samples
- Added Physics samples.
- Moved all B3D samples to Deprecated folder.
Revision 688 (8 May 2011)
Improved:
- now both back and forward slashes are accepted in the path for the pack files.
Fixed:
- KEY_LALT and KEY_RALT constants.
- copying of the entities.
- crash on xClearWorld() and xDestroyGraphics().
- deleting of the world (sounds menacingly :))
- possible memory leak in case of failed loading / creating of the mesh.
- rendering of the terrains with size 64.
- shadowing of the instanced entities.
- switching of the wireframe mode when images are drawn.
- triangle picking.
- update of the normals of the new dynamic surface.
Revision 686 (17 April 2011)
Added:
- CAMERA_POSITION semantics.
- new parameters to xReadLine and xWriteLine to control the line separator. Special constants were added too. See documentation for more information.
- two new Engine Settings: “Shadows::IgnoreCastingFullBrightSurfaces” and “Shadows::IgnoreReceivingFullBrightSurfaces”. Use them to control shadow casting / receiving by the full bright surfaces.
- xEntityHidden which returns true if an entity is hidden by xHideEntity().
- xMouseSpeed() which returns the current mouse speed which is set by an end-user using the mouse control panel application.
Changed:
- default font to ‘Tahoma 10′.
- now xInitShadows() returns an effect handle.
Fixed:
- 3ds loader (wrong axis for the children meshes).
- CAMERA_DIRECTION semantics when used with Tweening.
- detection of RAM size greater than 4GB.
- freeing of entities in xClearWorld().
- issue of reading the lines from the mounted pack files (xReadLine).
- issue with a directional light and inactive world.
- minor issue of the skeletal animation (too long playback of the last frame in the sequence).
- terrains with size = 64.
- wrong aspect ratio in the case if the graphics is restarted with another resolution. Note that the previous aspect ratio will be replaced with a new real aspect ratio. If you need a not native aspect ratio you should set it again.
- crash of the xCalculateFrustumVolume() function with an empty meshes / surfaces.
- xCopyEntity() with Parenting.
Documentation:
- xEntityReceiveShadows() is placed in the Shadows section of the documentation.
Revision 681 HOTFIX (13 March 2011)
Fixed:
- xCameraClsMode (redundant clearance of the back buffer has been done due to need of the virtual viewport).
Revision 679 (13 March 2011)
Added:
- graphics aspect ratio. See xGraphicsAspectRatio(), xGraphicsWidth(), xGraphicsHeight(), xVideoAspectRatioStr(), xVideoAspectRatio().
- logging of monitor details.
Changed:
- now every 2d output is affected by xOrigin().
- now xCreateLog() and xCloseLog() return an error code if failed.
Fixed:
- “No header in html log” issue.
- Tweening + entity alpha.
- terrain shadows.
- the shadow tweening.
- xEntityVisible() with pivots.