HARFANG® 3D v3.2.6

Downloads

Windows 64-bit

DescriptionDownload
Python 3.2 and newer wheelDownload
Lua 5.4 extensionDownload
FBX Converter (Autodesk FBX SDK)Download
GLTF ExporterDownload
GLTF ImporterDownload
assimp ImporterDownload
C++ SDK (requires a C++11 compiler)Download
AssetCDownload

Windows 32-bit

DescriptionDownload
Python 3.2 and newer wheelDownload
Lua 5.4 extensionDownload
FBX Converter (Autodesk FBX SDK)Download
GLTF ExporterDownload
GLTF ImporterDownload
assimp ImporterDownload
C++ SDK (requires a C++11 compiler)Download
AssetCDownload

Ubuntu 64-bit

DescriptionDownload
Python 3.2 and newer wheelDownload
Lua 5.4 extensionDownload
FBX Converter (Autodesk FBX SDK)Download
GLTF ExporterDownload
GLTF ImporterDownload
assimp ImporterDownload
C++ SDK (requires a C++11 compiler)Download
AssetCDownload

Release Notes

This minor release provides several fixes and brings a functionning API to capture the framebuffer and save it as a picture.

Framework integration and source code maintenance

  • Fixed the missing DisableCursor on SDL (by @PMP-P).
  • Fixed Linux Golang module build script.

Rendering

  • Added the ability to set the pixel center offset for the projection matrix: SetCameraCenterOffset and GetCameraCenterOffset (by @RobEwbank1).
  • Resolved issue #50 (fix CaptureTexture() for Python / Lua)":
    • OLD: uint32_t CaptureTexture(const PipelineResources &resources, const TextureRef &t, Picture &pic)
    • NEW: uint32_t CaptureTexture(bgfx::ViewId &view_id, const PipelineResources &resources, const TextureRef &t, const Texture &readback, Picture &pic)
    • Fixed Picture Set/Get RGBA: GetPixelRGBA and SetPixelRGBA.
    • How does the framebuffer capture work ?
      • In order to grab the framebuffer, create an empty picture: picture = hg.Picture(512, 512, hg.PF_RGBA32)
      • The texture framebuffer is created as in draw to texture
      • Then, set framebuffer to TF_ReadBack: tex_readback = hg.CreateTexture(512, 512, "readback", hg.TF_ReadBack | hg.TF_BlitDestination, hg.TF_RGBA8)
      • When submitting the scene, target the framebuffer: hg.SubmitSceneToPipeline(view_id, scene, hg.IntRect(0, 0, 512, 512), true, pipeline, res, frame_buffer.handle)
      • The capture will be made asynchronously: frame_count_capture, view_id = hg.CaptureTexture(view_id, res, tex_color_ref, tex_readback, picture)
      • Then, only when the current frame counter is greater or equal to frame_count_capture, save the picture: hg.SavePNG(picture, "capture.png")

Misc bug fix

  • Fixed != color operator.
  • Brought back the old minmax transform to fix #49.
  • Removed warning message (“Invalid node instance”).
  • Resolve “Tutorials issues on Linux Ubuntu” (Fixed VertexLayoutPosFloatNormUInt8TexCoord0UInt8).
  • Studio related fixes
    • RBT_Static wasn’t saved properly in the scene file.
    • Fixed GetAnimableNodePropertyFloat and SetAnimableNodePropertyFloat to handle the camera FOV.

Screenshots

The following screenshots were captured on a GTX 1080 in 1080P running at 60FPS, GI is performed using screen space raytracing and does not require RTX capable hardware.

The NVIDIA USD Attic using the AAA renderer.

Nvidia USD Attic

Marine Melodies musical experience

Marine Melodies musical experience

Luggage conveyor 3D editor

Luggage conveyor 3D editor

Reachy digital twin (robot model provided by Pollen Robotics)

Reachy digital twin by Pollen Robotics

Honda-e (3D model by Xlay3D)

Honda-e

Cyberpunk City

Cyberpunk City SSGI/SSR on a GTX 1080

Cyberpunk City SSGI/SSR on a GTX 1080

Sun Temple

Sun Temple SSGI/SSR on a GTX 1080

Sun Temple SSGI/SSR on a GTX 1080

Cafe Exterior

Cafe Exterior SSGI/SSR on a GTX 1080

Cafe Exterior SSGI/SSR on a GTX 1080

Sponza Atrium

Sponza Atrium SSGI/SSR on a GTX 1080

Sponza Atrium SSGI/SSR on a GTX 1080