Harfang3D v3.2.0 Release Notes

Release Date: 2022-02-21 // about 2 years ago
  • ๐Ÿš€ This minor release brings several fixes, performance improvements and new features to the rendering, physics and audio APIs.

    ๐Ÿšง Source code maintenance

    • ๐Ÿšš Cleanup sources, remove spurious hg namespace specifiers and run clang format on affected sources.
    • โšก๏ธ Updated the GLFW CMake to improve the resolution of the library path on Linux.
    • โšก๏ธ Updated ImGui to v1.87.

    Engine

    • Implement model load queuing (see ProcessModelLoadQueue, ProcessLoadQueues, LSSF_QueueTextureLoads, LSSF_QueueModelLoad).
    • ๐Ÿ‘Œ Support replay and streaming of OGG files (see LoadOGGSoundFile, LoadOGGSoundAsset, StreamOGGFileStereo, StreamOGGAssetStereo, StreamOGGFileSpatialized, StreamOGGAssetSpatialized).
    • โž• Added a Mat4 copy constructor.
    • โž• Added missing declarations for LoadImage* functions.
    • โž• Added a flag to prevent changing the current camera when loading a scene, if the current camera points to a valid node (see LSSF_DoNotChangeCurrentCameraIfValid).
    • โž• Added an is_file field to the structure returned by GetFileInfo.
    • ๐Ÿšš Simplify scene binary loader, removed versioning code:
      • Removed unused members from the RigidBody_ struct.
      • Reduced memory footprint of RigidBody_ to 6 bytes.
    • ๐ŸŽ Performance improvements on multiple scene loading (through instances).
    • โž• Added a profiling API (see BeginProfilerSection, EndProfilerSection, EndProfilerFrame, CaptureProfilerFrame, PrintProfilerFrame).
    • โž• Added a Videostream plugin interface (see MakeVideoStreamer).
    • ๐Ÿ›  Fixed scene animation garbage collection.
    • ๐Ÿ›  Fixed a bug with Unicode support in assetc.
    • ๐Ÿ›  Fixed an issue with trailing slashes on Linux in the assetc command line.

    Rendering

    • Fixed an issue in the viewport computation when upscaling half buffers in the AAA rendering pipeline.
    • Added a z_thickness param to the AAA rendering pipeline.
    • Added a series of cubemap render functions.
    • Implemented and documented all supported pipeline program features.

    Physics

    • ๐Ÿ†• New functions to lock translations and rotations in a more consistent way with the Bullet API:
      • NodeSetLinearLockAxes, NodeSetAngularLockAxes replaced by NodeSetLinearFactor, NodeSetAngularFactor.
      • NodeGetLinearLockAxes, NodeGetAngularLockAxes replaced by NodeGetLinearFactor, NodeGetAngularFactor.
    • โž• Added AddTorque/AddTorqueImpulse to physics API:
      • NodeAddTorque, NodeAddTorqueImpulse
    • ๐Ÿ‘€ Simplified the physics collision/contact query code, unified collision query API for NodeCollideWorld and StepSimulation (see CollectCollisionEvents).
    • Implemented NodeTeleport in Bullet physics.
    • ๐Ÿ‘Œ Improved the transform synchronization logic, set node world transform using the fast scene path (see SyncTransformsFromScene, SyncTransformsToScene).
    • โž• Added proper motion interpolation in Bullet physics synchronize to scene.
    • โž• Added missing functions to create all supported collision shape types.

    ๐Ÿ“š Documentation

    • โž• Added a missing reference to the requirements page in the main index.
    • ๐Ÿ‘Œ Improved the LoadSceneXXX functions documentation.
    • ๐Ÿ›  Fixed both Lua and Python code snippets.
    • ๐Ÿ‘Œ Improved the clarity of functions using bitflags by adding support for constants group in the documentation generator.
    • โšก๏ธ Update of ownership and views manual pages.