Harfang3D alternatives and similar packages
Based on the "Game Development" category.
Alternatively, view harfang3d alternatives based on common mentions on social networks and blogs.
-
Pitaya
Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. -
tile
Tile is a 2D grid engine, built with data and cache friendly ways, includes pathfinding and observers.
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Harfang3D or a related project?
Popular Comparisons
README
HARFANG® 3D engine
HARFANG®3D is an all-in-one 3D visualization library usable in C++, Python, Lua and Go.
Table of contents
About
HARFANG®3D is an easy-to-adapt, cross-platform, multi-language, powerful and optimized solution to integrate with embedded systems, into existing environments and combining features to meet the industrial standards of real-time 3D imaging.
The HARFANG®3D architecture makes it easy to meet the requirements for hardware integration, display performance and security.
HARFANG®3D is written in C++ and is based on the open-source bgfx library supporting Vulkan, Metal, DirectX (from 9 to 12), OpenGL and OpenGL ES. It Builds on Windows, Linux, Intel and ARM.
Features
Platforms supported
- Win32 and Win64 Intel
- Linux 64 Intel
- Aarch 64 ARM
Scene API
- Node & component based
- Performance oriented
Rendering pipeline
- Low-spec PBR rendering pipeline
- High-spec 'AAA' rendering pipeline (screen space GI & reflection)
- Support of user pipeline shaders
VR API
- VR support via OpenVR/SteamVR with Eye tracking
- Compatible with the HTC Vive/Vive Pro, Valve Index, Lenovo Explorer, Oculus Rift S
Physics API
- Rigid bodies, collisions, mechanical constraints, ray casting
Audio API
- Play/stream WAV/OGG formats
- 3D audio spatialization ## Screenshots
The following screenshots were captured on a 1080GTX in 1080P running at 60FPS.
(Sun Temple, courtesy of the Open Research Content Archive (ORCA))
Download
You can download the HARFANG binaries from the official website: https://dev.harfang3d.com/releases
Build the SDK
Prerequisites
- Git
- CMake 3.19+
- CPython 3.2+
- Go 1+ (for Harfang Go module)
- Doxygen (for Harfang C++ SDK documentation)
Windows
- Visual Studio 2019 (C++ compiler and IDE)
- MinGW (for Harfang Go module)
Linux
- GCC 9 or above
- CLang
Building
Clone the
Harfang 3D
repository including its submodules.git clone --recursive -j8 https://github.com/harfang3d/harfang3d.git cd harfang3d
Create build directory. Note that the described directory layout is not mandatory.
mkdir build cd build
Clone Fabgen.
git clone https://github.com/ejulien/FABGen.git
Download and install Autodesk FBX SDK.
Create a directory that will hold the build system generated by CMake.
mkdir cmake cd cmake
Generate the build system using CMake. For example, on Windows it will be:
cmake ../.. -G "Visual Studio 16 2019" -A x64 \ -DCMAKE_INSTALL_PREFIX:PATH="D:/harfang/build/install" \ -DPYTHON_EXECUTABLE:FILEPATH="C:/Python36/python.exe" \ -DHG_FABGEN_PATH:PATH="D:/harfang/build/fabgen" \ -DHG_FBX_SDK:PATH="D:/fbx_sdk"
* `CMAKE_INSTALL_PREFIX` specifies the directory where the Harfang SDK will installed.
* `PYTHON_EXECUTABLE` is the path the Python 3 interpreter.
* `FABGEN_PATH` is the path to Fabgen binding generator.
* `HG_FBX_SDK` is the path to Autodesk FBX SDK.
Here is the list of available CMake options.
* __C++ SDK__
* `HG_BUILD_CPP_SDK` : Build C++ SDK (default: __OFF__).
* `HG_BUILD_TESTS` : Build C++ SDK unit tests (default: __OFF__).
* `HG_BUILD_DOCS` : Build API and C++ SDK documentations (default: __OFF__).
* `HG_ENABLE_BULLET3_SCENE_PHYSICS` : Enable Bullet physics API (default: __ON__).
* `HG_ENABLE_RECAST_DETOUR_API` : Enable Recast/Detour navigation mesh and path finding API (default: __ON__).
* `HG_ENABLE_OPENVR_API` : Enable OpenVR API (default: __OFF__).
* `HG_ENABLE_SRANIPAL_API` : Enable VIVE Eye and Facial Tracking SDK (SRanipal) API (default: __OFF__).
* __Tools__
* `HG_BUILD_ASSETC` : Build AssetC asset compiler (default: __ON__).
* `HG_BUILD_ASSIMP_CONVERTER` : Build Assimp based 3D model converter (default: __ON__).
* `HG_BUILD_FBX_CONVERTER` : Build FBX converter (default: __ON__).
* `HG_BUILD_GLTF_IMPORTER` : Build GLTF importer (default: __ON__).
* `HG_BUILD_GLTF_EXPORTER` : Build GLTF exporter (default: __ON__).
* __Bindings__
* `HG_BUILD_HG_LUA` : Build Harfang LUA module (default: __OFF__).
* `HG_BUILD_HG_PYTHON` : Build Harfang Python module (wheel) (default: __OFF__).
* `HG_BUILD_HG_GO` : Build Harfang GO module (default: __OFF__).
Build the SDK.
cmake --build . --config Release --target INSTALL
Note: On Linux you will need to explicitly specify the build type with
-DCMAKE_BUILD_TYPE=Release
Depending on the set of option passed to CMake the install directory will contain the following subdirectories:
cppsdk
: Harfang C++ SDK.hg_python
: Harfang Python module.hg_lua
: Harfang LUA module.hg_go
: Harfang Go module.assetc
: Asset compiler.assimp_converter
: Assimp 3D model converter.fbx_converter
: FBX converter.gltf_importer
: GLTF importer.gltf_exporter
: GLTF exporter.
Notes on Visual Studio Code
Install the CMakeTools extension.
Copy the
harfang/.vscode/template_settings.json
file toharfang/.vscode/settings.json
and edit it to reflect your local installation.Open the
harfang
folder in Visual Studio Code. CMakeTools should succesfully configure the project.
Use the SDK
The Harfang C++ SDK directory cppsdk
contains the following:
bin
: depending on the configuration used, this directory contains either aRelease
orDebug
subdirectory with all the shared libraries.lib
: like thebin
directory, it contains a subdirectories named after the configuration used during build (Release
orDebug
) with all the generated static libraries.include
: contains all the C++ include files of Harfang public API.cmake
: contains the CMake configuration files.
To add the Harfang C++ SDK to your CMake project, just add the following to the CMakeLists.txt
file:
find_package(harfang REQUIRED
COMPONENTS cppsdk
PATHS ${HG_CPPSDK_PATH}
NO_DEFAULT_PATH
)
with HG_CPPSDK_PATH
the path to the cppsdk
directory. For example, if we follow the directory layout given above, it will be D:/harfang/build/install/cppsdk
.
Targets should link against the following libraries.
hg::engine
hg::foundation
hg::platform
hg::libluadll
The install_cppsdk_dependencies
function installs the Harfang C++ SDK shared libraries dependencies.
install_cppsdk_dependencies(destination component)
destination
: is the library where the shared libraries will be installed.component
: installation component name.
Version
Harfang follows the Semantic Versioning Specification (SemVer) (http://semver.org).
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
License
Harfang is licensed under the GPLv3, LGPLv3 and a commercial license: https://www.harfang3d.com/license
More screenshots...
(Sun Temple, courtesy of the Open Research Content Archive (ORCA))
(Bistro, courtesy of the Open Research Content Archive (ORCA))
(Sponza Atrium GLTF, courtesy of Crytek/Themaister)
*Note that all licence references and agreements mentioned in the Harfang3D README section above
are relevant to that project's source code only.