Horde3D is a small 3D rendering and animation engine. It is written in an effort to create an engine being as lightweight and conceptually clean as possible.
See the codeHorde3D is a 3D rendering engine written in C++ with an effort being as lightweight and conceptually clean as possible.
Horde3D requires a fully OpenGL 2.0 compatible graphics card. In terms of DirectX that means a card supporting at least Shader Model 2.0 or higher. For mobile operating systems (Android and IOS) OpenGL ES 3.0 capable device is required.
You need to have a C++14 compiler and CMake 3.14+ installed.
CMake is a meta-build system, e.g. it creates Makefiles or Visual Studio files using Generators. The main ways to use CMake are cmake-gui (Qt Interface), ccmake (Curses Interface) and cmake (Commandline Interface). Instructions for commonly used generators:
CMakeLists.txt as new project, follow the instructions, hit build and you're done.cmake-gui, choose OGDF as source path, build-vs as build path, press generate, open build-vs\Horde3D.sln and start compiling. You could also generate the solution from the command line running mkdir build-vs && cd build-vs && cmake -G "Visual Studio XYZ" .., where XYZ is the correct identifier for the desired version of Visual Studio (i.e. 14 2015 for VS 2015, 15 2015 for VS 2017, etc. Please run cmake --help for more info).mkdir build-xcode && cd build-xcode && cmake -G "Xcode" .., then open the generated project file inside Xcode.mkdir build-make && cd build-make && cmake -G "Unix Makefiles" .. && make (hint: use export JOBS=MAX to speed things up).mkdir build-ninja && cd build-ninja && cmake -G "Ninja" .. && ninja.In order to build the samples you need GLFW (>3.x) or SDL (>=2.32.8).
By default, if not present on the system, a default version will be automatically downloaded, built and linked for you.
You could force this behavior using HORDE3D_FORCE_DOWNLOAD_GLFW flag with CMake (from your build directory):
cmake -DHORDE3D_FORCE_DOWNLOAD_GLFW=ON ..
With SDL you can use HORDE3D_FORCE_DOWNLOAD_SDL flag with CMake (from your build directory):
cmake -DHORDE3D_FORCE_DOWNLOAD_SDL=ON ..
On Debian/Ubuntu platforms, you also need to install the following packages:
sudo apt-get install xorg-dev
You could also skip sample building using HORDE3D_BUILD_EXAMPLES flag with CMake (from your build directory):
cmake -DHORDE3D_BUILD_EXAMPLES=OFF ..
Building for Android requires using two build systems: CMake and Gradle. Gradle project is included in Horde3D distribution.
Requirements:
Android Studio is recommended, but not required.
Tested on Ubuntu 26.04 with OpenJDK 21, NDK r27d, SDK 36.
To build from console use the following command (in relation to Horde3D source directory):
mkdir build_android && cd build_android
cmake -G "Ninja" -DCMAKE_TOOLCHAIN_FILE=<path to android ndk>/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-27 -DHORDE3D_USE_GLES3=ON -DHORDE3D_USE_SDL=ON -DHORDE3D_FORCE_DOWNLOAD_SDL=ON -DANDROID_SDK_ROOT_PATH=<path to android sdk> -DANDROID_SDK_BUILD_TOOLS_PATH=<path to android sdk>/build-tools/36.0.0/ ..
ninja
CMake GUI usage is recommended. Following instruction depends on using GUI for building.
Currently, building is supported only on macOS. Only iPhone target is supported for now, iPad and tvOS are not tested,
A new version of CMAKE is recommended, Cmake 3.16 was tested and was working correctly.
Requirements:
CMake GUI usage is recommended. Following instruction depends on using GUI for building.
SDL is required for samples. Automatic download and build is disabled for iOS as SDL fails to build with CMAKE (HORDE3D_FORCE_DOWNLOAD_SDL will have no effect ). Please download SDL manually and build it with XCode project, located in /XCode-iOS/SDL. In Build Settings set Enable Bitcode option to No,
To get your development team id go to Applications -> Utilities -> Keychain Access. Under the 'login' Keychain, go into the 'Certificates' category.
Scroll to find your development or distribution certificate. It should be something like that: Apple Development: ()
Double click on this certificate. "Organizational Unit" is the Team ID.
Please note that ParticleVortex and Tessellator sample will not run on iOS as OpenGL ES 3.2 is not available.
Before we go into this, There are some limitations one needs to be aware of:
As result of the above limitations, the samples ParticleVortex (compute + GLES 3.2) and Tessellator (GLES 3.2) are disabled when building for web.
To build for web, you will need Emscripten. It is similar to how you build for Windows or Linux. However, instead of using CMake, we will use emcmake ( supplied by emscripten )
Follow the following steps to build the examples for web.
emcmake with the arguments: cmake ../emmake with the arguments: make to start the buildOn linux, the whole process should look like this (once emscripten is activated)
mkdir build
cd build
emcmake cmake ../
emmake make -j4
In the folder build/Binaries/Emscripten/Release, you should now see the html files of all examples. If you have python3 installed, you can test them by going to that folder, and launch
python3 -m http.server 9000
Then open your browser, and navigate to http://localhost:9000. Click on any .html file, to see the result
There is also a scene editor available for Horde3D. To enabling build of the editor, first make sure you have the Qt 5.15 or any newer Qt 6.x SDK installed. On Windows, install Qt via Qt online installer from qt.io. On Linux, Qt is usually preinstalled. If not, use your distribution package system to install qt. To enable creating makefiles for the editor via cmake set the HORDE3D_BUILD_EDITOR flag to ON (default is OFF).
cmake -DHORDE3D_BUILD_EDITOR=ON
CMake may not find Qt distribution files and configuration may fail. Usually, Qt5_DIR or Qt6_DIR are not found. On Windows: in cmake gui select Qt6_DIR, go to your Qt installation directory -> lib/cmake/Qt6. Click Configure button. Configuration may also fail for several other components, like QtCoreTools or QtGuiTools. In this case, select folders with the same name in lib/cmake/ until all the libraries are found. On Linux: usually found automatically. If not, use the same algorithm as for Windows. Usually, Qt cmake files are located in /usr/lib/x86_64-linux-gnu/cmake. Console example:
cmake -DHORDE3D_BUILD_EDITOR=ON -DQt6_DIR=/usr/lib/x86_64-linux-gnu/cmake/Qt6 -B build
As the editor needs Lua as a dependency you can either make sure the Lua development files can be found by cmake, or Lua will be automatically downloaded by CMake.
On Windows, you usually generate Visual Studio solution. Open the solution file, select build type (Debug by default) and click "Rebuild solution". Note: Editor is not set to be executed and/or debugged by default. You will have to set Horde3DEditor project as executable by clicking right mouse button on it - "Set as start up project".
On Linux, either makefiles or ninja build files are used. Ninja builds faster than make (may be up to two-three times). After generating cmake cache, do the following:
cmake --build build
where build is the build directory you've chosen during cmake configuration.
Here are some quick links to help you get started:
Horde3D is licensed under the Eclipse Public License v1.0 (EPL).
The EPL is a quite liberal license and has fewer restrictions than the popular LGPL. Basically it allows you to use Horde3D in free and commercial projects as long as you contribute improvements like bug fixes, optimizations and code refactorings back to the community. The EPL allows static linking and is not viral; hence it does not affect any other modules of your application.
32 followers · starred Jun 2023
7,255 followers · starred Oct 2024
449 followers · starred Oct 2013
156 followers · starred Sep 2014
Horde3D is a small 3D rendering and animation engine. It is written in an effort to create an engine being as lightweight and conceptually clean as possible.
See the codeHorde3D is a 3D rendering engine written in C++ with an effort being as lightweight and conceptually clean as possible.
Horde3D requires a fully OpenGL 2.0 compatible graphics card. In terms of DirectX that means a card supporting at least Shader Model 2.0 or higher. For mobile operating systems (Android and IOS) OpenGL ES 3.0 capable device is required.
You need to have a C++14 compiler and CMake 3.14+ installed.
CMake is a meta-build system, e.g. it creates Makefiles or Visual Studio files using Generators. The main ways to use CMake are cmake-gui (Qt Interface), ccmake (Curses Interface) and cmake (Commandline Interface). Instructions for commonly used generators:
CMakeLists.txt as new project, follow the instructions, hit build and you're done.cmake-gui, choose OGDF as source path, build-vs as build path, press generate, open build-vs\Horde3D.sln and start compiling. You could also generate the solution from the command line running mkdir build-vs && cd build-vs && cmake -G "Visual Studio XYZ" .., where XYZ is the correct identifier for the desired version of Visual Studio (i.e. 14 2015 for VS 2015, 15 2015 for VS 2017, etc. Please run cmake --help for more info).mkdir build-xcode && cd build-xcode && cmake -G "Xcode" .., then open the generated project file inside Xcode.mkdir build-make && cd build-make && cmake -G "Unix Makefiles" .. && make (hint: use export JOBS=MAX to speed things up).mkdir build-ninja && cd build-ninja && cmake -G "Ninja" .. && ninja.In order to build the samples you need GLFW (>3.x) or SDL (>=2.32.8).
By default, if not present on the system, a default version will be automatically downloaded, built and linked for you.
You could force this behavior using HORDE3D_FORCE_DOWNLOAD_GLFW flag with CMake (from your build directory):
cmake -DHORDE3D_FORCE_DOWNLOAD_GLFW=ON ..
With SDL you can use HORDE3D_FORCE_DOWNLOAD_SDL flag with CMake (from your build directory):
cmake -DHORDE3D_FORCE_DOWNLOAD_SDL=ON ..
On Debian/Ubuntu platforms, you also need to install the following packages:
sudo apt-get install xorg-dev
You could also skip sample building using HORDE3D_BUILD_EXAMPLES flag with CMake (from your build directory):
cmake -DHORDE3D_BUILD_EXAMPLES=OFF ..
Building for Android requires using two build systems: CMake and Gradle. Gradle project is included in Horde3D distribution.
Requirements:
Android Studio is recommended, but not required.
Tested on Ubuntu 26.04 with OpenJDK 21, NDK r27d, SDK 36.
To build from console use the following command (in relation to Horde3D source directory):
mkdir build_android && cd build_android
cmake -G "Ninja" -DCMAKE_TOOLCHAIN_FILE=<path to android ndk>/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-27 -DHORDE3D_USE_GLES3=ON -DHORDE3D_USE_SDL=ON -DHORDE3D_FORCE_DOWNLOAD_SDL=ON -DANDROID_SDK_ROOT_PATH=<path to android sdk> -DANDROID_SDK_BUILD_TOOLS_PATH=<path to android sdk>/build-tools/36.0.0/ ..
ninja
CMake GUI usage is recommended. Following instruction depends on using GUI for building.
Currently, building is supported only on macOS. Only iPhone target is supported for now, iPad and tvOS are not tested,
A new version of CMAKE is recommended, Cmake 3.16 was tested and was working correctly.
Requirements:
CMake GUI usage is recommended. Following instruction depends on using GUI for building.
SDL is required for samples. Automatic download and build is disabled for iOS as SDL fails to build with CMAKE (HORDE3D_FORCE_DOWNLOAD_SDL will have no effect ). Please download SDL manually and build it with XCode project, located in /XCode-iOS/SDL. In Build Settings set Enable Bitcode option to No,
To get your development team id go to Applications -> Utilities -> Keychain Access. Under the 'login' Keychain, go into the 'Certificates' category.
Scroll to find your development or distribution certificate. It should be something like that: Apple Development: ()
Double click on this certificate. "Organizational Unit" is the Team ID.
Please note that ParticleVortex and Tessellator sample will not run on iOS as OpenGL ES 3.2 is not available.
Before we go into this, There are some limitations one needs to be aware of:
As result of the above limitations, the samples ParticleVortex (compute + GLES 3.2) and Tessellator (GLES 3.2) are disabled when building for web.
To build for web, you will need Emscripten. It is similar to how you build for Windows or Linux. However, instead of using CMake, we will use emcmake ( supplied by emscripten )
Follow the following steps to build the examples for web.
emcmake with the arguments: cmake ../emmake with the arguments: make to start the buildOn linux, the whole process should look like this (once emscripten is activated)
mkdir build
cd build
emcmake cmake ../
emmake make -j4
In the folder build/Binaries/Emscripten/Release, you should now see the html files of all examples. If you have python3 installed, you can test them by going to that folder, and launch
python3 -m http.server 9000
Then open your browser, and navigate to http://localhost:9000. Click on any .html file, to see the result
There is also a scene editor available for Horde3D. To enabling build of the editor, first make sure you have the Qt 5.15 or any newer Qt 6.x SDK installed. On Windows, install Qt via Qt online installer from qt.io. On Linux, Qt is usually preinstalled. If not, use your distribution package system to install qt. To enable creating makefiles for the editor via cmake set the HORDE3D_BUILD_EDITOR flag to ON (default is OFF).
cmake -DHORDE3D_BUILD_EDITOR=ON
CMake may not find Qt distribution files and configuration may fail. Usually, Qt5_DIR or Qt6_DIR are not found. On Windows: in cmake gui select Qt6_DIR, go to your Qt installation directory -> lib/cmake/Qt6. Click Configure button. Configuration may also fail for several other components, like QtCoreTools or QtGuiTools. In this case, select folders with the same name in lib/cmake/ until all the libraries are found. On Linux: usually found automatically. If not, use the same algorithm as for Windows. Usually, Qt cmake files are located in /usr/lib/x86_64-linux-gnu/cmake. Console example:
cmake -DHORDE3D_BUILD_EDITOR=ON -DQt6_DIR=/usr/lib/x86_64-linux-gnu/cmake/Qt6 -B build
As the editor needs Lua as a dependency you can either make sure the Lua development files can be found by cmake, or Lua will be automatically downloaded by CMake.
On Windows, you usually generate Visual Studio solution. Open the solution file, select build type (Debug by default) and click "Rebuild solution". Note: Editor is not set to be executed and/or debugged by default. You will have to set Horde3DEditor project as executable by clicking right mouse button on it - "Set as start up project".
On Linux, either makefiles or ninja build files are used. Ninja builds faster than make (may be up to two-three times). After generating cmake cache, do the following:
cmake --build build
where build is the build directory you've chosen during cmake configuration.
Here are some quick links to help you get started:
Horde3D is licensed under the Eclipse Public License v1.0 (EPL).
The EPL is a quite liberal license and has fewer restrictions than the popular LGPL. Basically it allows you to use Horde3D in free and commercial projects as long as you contribute improvements like bug fixes, optimizations and code refactorings back to the community. The EPL allows static linking and is not viral; hence it does not affect any other modules of your application.
32 followers · starred Jun 2023
7,255 followers · starred Oct 2024
449 followers · starred Oct 2013
156 followers · starred Sep 2014