ThirdParty Code and Data
This page lists which third party code and data is used by EZ.
Important:
Before you distribute any project, please check the licensing conditions for all used components. The list below tries to be exhaustive and up-to-date for components directly used by EZ, but this is only provided for your convenience and we give no guarantee for correctness. It is still your responsibility to make absolutely certain that your project doesn't violate any licensing conditions from third-party components used directly or indirectly in your project.
7-Zip
Link: https://www.7-zip.org
Compile switch: None
The 7z command line tool is shipped as a precompiled tool. It is used by the build system to unpack downloaded packages, and by the editor to unpack the archives of a downloaded remote project.
AngelScript
Link: https://www.angelcode.com/angelscript
Compile switch: EZ_3RDPARTY_ANGELSCRIPT_SUPPORT
AngelScript is an extremely flexible cross-platform library designed to allow applications to extend their functionality through external scripts.
It is non-essential for the engine, but adds powerful functionality for writing custom code with AngelScript.
Assimp
Link: http://www.assimp.org
Compile switch: None (hard dependency for the asset processing)
Open Asset Import Library, a portable Open Source library to import various well-known 3D model formats in a uniform manner.
bc7enc_rdo
Link https://github.com/richgel999/bc7enc_rdo
Compile switch: Currently none, but only enabled on Linux.
Used by ezImage and the ezTexConv tool for BC7 encoding on Linux as an alternative to DirectXTex.
Bend Studio Screen Space Shadows
Link: https://www.bendstudio.com/blog/inside-bend-screen-space-shadows
Compile switch: Currently none
A very efficient implementation of screen space shadows. Used by ezScreenSpaceShadowPass.
cc0Textures
Link: https://cc0textures.com
CC0 Textures offers a library containing hundreds of detailed PBR materials with displacement-, normal- and roughness maps for photorealistic rendering. All assets are available for free and without any restrictions.
cgbookcase
Link: https://cgbookcase.com
cgbookcase provides hundreds of high quality, PBR textures. All textures on cgbookcase.com are licensed as CC0.
CMake
Link: https://cmake.org
Compile switch: None
The build system of EZ. A precompiled version is shipped, so that projects which use custom C++ code can be built without installing CMake separately.
Dear Imgui
Link: https://github.com/ocornut/imgui
Compile switch: EZ_3RDPARTY_IMGUI_SUPPORT
A nice library for easily creating ingame GUIs.
DirectXMath
Link: https://github.com/microsoft/DirectXMath
Compile switch: None
A SIMD math library. It is used by the integrated copy of DirectXTex, not by the engine's own math code.
DirectX Shader Compiler
Link: https://github.com/microsoft/DirectXShaderCompiler
Compile switch: None
Compiles HLSL shaders to SPIR-V for the Vulkan renderer. The binaries are downloaded during the CMake step.
DirectXTex
Link: https://github.com/Microsoft/DirectXTex
Compile switch: Currently none
Used by ezImage and the ezTexConv tool for GPU-enabled block compression.
Embree
Link: https://github.com/RenderKit/embree
Compile switch: EZ_BUILD_EMBREE
A ray tracing kernel library. It is used by the baking plugin to trace rays against the scene geometry when baking indirect lighting.
Enet
Link: http://enet.bespin.org
Compile switch: EZ_3RDPARTY_ENET_SUPPORT
An efficient and easy to use networking library, built on top of the UDP protocol. It is used by ezTelemetry to interact with the ezInspector, and it is also used to implement the file serving functionality.
FleetOps
Link: https://www.fleetops.net
Some assets were kindly provided with permission to use and redistribute, by the awesome team behind the FleetOps project. Thanks so much guys!
FMOD 2.x
Link: https://www.fmod.com
Compile switch: EZ_BUILD_FMOD
EZ has an integration for the FMOD sound system.
Important:
FMOD is a commercial product and you may need to buy a license to use it in your project.
FreeSound
Link: https://freesound.org
Freesound is a collaborative database of Creative Commons Licensed sounds.
GLFW
Link: https://www.glfw.org
Compile switch: EZ_3RDPARTY_GLFW_SUPPORT (on by default on Linux, off elsewhere)
This library provides a simple and portable interface for window creation, input handling and more. Used by ezWindow and ezStandardInputDevice on Linux. When it is enabled, it also handles gamepad input, so the separate XBox controller plugin is not used.
It can be enabled on Windows as well, but that configuration is not tested.
jc_voronoi
Link: https://github.com/JCash/voronoi/blob/dev/src/jc_voronoi.h
Compile switch: None
A fast single file 2D voronoi diagram generator. Used by ezBreakableSheetComponent.
Jolt Physics
Link: https://github.com/jrouwe/JoltPhysics
Compile switch: EZ_3RDPARTY_JOLT_SUPPORT
Jolt Physics is a free and open source physics engine. It is used to provide collision detection, physics simulation, character controllers and other interactions.
Kenney.nl
Link: kenney.nl
Kenney provides thousands of textures, 3D models and sound effects under a generous public domain license. Some of them are used in our sample projects.
Kraut
Link: https://github.com/JanKrassnigg/Kraut
Compile switch: EZ_3RDPARTY_KRAUT_SUPPORT
Generates tree meshes from a description of the tree's growth parameters. Used by the Kraut tree asset.
Live++
Link: https://liveplusplus.tech
Compile switch: EZ_3RDPARTY_LIVEPP_SUPPORT (off by default)
Allows to recompile C++ code and patch it into the running application. Only the API headers are part of EZ. Live++ is a commercial product and you need to acquire a license and install it separately to use this.
Lua
Link: (http://www.lua.org
Compile switch: EZ_3RDPARTY_LUA_SUPPORT
The Lua scripting language. Can be used directly or through ezLuaWrapper for easier access to common functionality. Non-essential for EZ, only the ingame console interpreter would stop working without it.
meshoptimizer
Link: https://github.com/zeux/meshoptimizer
Compile switch: None
Optimizes the vertex and index order of imported meshes for better GPU cache utilization. Used during mesh asset import.
Mikktspace
Link: http://mmikkelsen3d.blogspot.ie
Compile switch: None (hard dependency for the asset processing)
Tangent space generation code by Morten S. Mikkelsen. See https://wiki.blender.org/index.php/Dev:Shading/Tangent_Space_Normal_Maps for more information. It is used by ezGeometry.
MiniAudio
Link: https://miniaud.io
Compile switch: EZ_3RDPARTY_MINIAUDIO_SUPPORT
A lightweight, cross-platform audio solution.
Ozz
Link: http://guillaumeblanc.github.io/ozz-animation
Compile switch: None
Used as the basis for skeletal animations. Both during asset import (to build an optimized skeleton structure) and at runtime for animation playback.
Perfetto
Link: https://perfetto.dev
Compile switch: EZ_3RDPARTY_PERFETTO_SUPPORT
A tracing library. It is used to forward the engine's profiling data to the system tracing service on Android.
PolyHaven
Link: PolyHaven.com
Poly Haven is a small company based in South Africa, working with artists around the world, with the goal to create a constantly growing community-funded resource of open content (CC0 license).
Some of PolyHaven's assets are used in our sample projects.
Qt 6
Link: https://www.qt.io
Compile switch: EZ_ENABLE_QT_SUPPORT
Used for all desktop GUI code in the editor and tools.
Important:
Depending on how you use Qt, you may need to acquire (buy) a license for it. See https://www.qt.io/terms-conditions/.
Qt Advanced Docking System
Link https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System
Compile switch EZ_3RDPARTY_ADS_SUPPORT
A docking system for Qt similiar to the one in visual studio. Used by the editor and inspector applications.
Recast
Compile switch: EZ_3RDPARTY_RECAST_SUPPORT
Link: https://github.com/recastnavigation/recastnavigation
A library to generate navigation meshes from arbitrary 3D geometry.
RenderDoc
Link: https://renderdoc.org
Compile switch: EZ_3RDPARTY_RENDERDOC_SUPPORT
RenderDoc is a free MIT licensed stand-alone graphics debugger. The ezRenderDocPlugin enables full control over taking RenderDoc snapshots from within the engine.
RmlUi
Link: https://mikke89.github.io/RmlUiDoc/
RmlUi is the C++ user interface package based on the HTML and CSS standards, designed as a complete solution for any project's interface needs. It is a fork of the libRocket project, introducing new features, bug fixes, and performance improvements.
Silk Icons
Link: http://www.famfamfam.com/lab/icons/silk
Icons from this set were extensively used in the past and may still be used by some of the tools.
SPIRV-Reflect
Link: https://github.com/KhronosGroup/SPIRV-Reflect
Compile switch: None
Extracts the resource bindings and other reflection data from compiled SPIR-V shaders. Used by the Vulkan renderer's shader compiler.
Sonniss
Link: https://sonniss.com
Sonniss is a premium distribution platform for high-quality sound effects libraries. Sounds distributed from Sonnis are taken from the GameAudioGDC bundles. See Data\Content\Sound\FmodProject\Assets\Sonnis\Licensing.pdf for details.
stb
Link: https://github.com/nothings/stb
Compile switch: None
Public domain licensed code by Sean Barrett. Used by ezImage to read and write some of the supported formats like PNG and JPEG.
SVG Repo
Link: https://www.svgrepo.com
Most of the SVG icons used have been taken from this website. All icons taken are free for commercial use, but some require attribution. The following is a list of all icon sets with and without attribution licenses that we know are used by our tools. If you notice that we forgot to mention a set, please contact us.
https://www.svgrepo.com/collection/atomicons-interface-line-icons
https://www.svgrepo.com/collection/colour-creative-oval-line-icons
https://www.svgrepo.com/collection/gentlecons-interface-icons
https://www.svgrepo.com/collection/untitled-ui-oval-interface-icons
https://www.svgrepo.com/collection/science-bold-flat-vectors
https://www.svgrepo.com/collection/lightning-design-utility-icons
https://www.svgrepo.com/collection/nature-and-animals-infographic-icons
https://www.svgrepo.com/collection/nonicons-programming-icons
https://www.svgrepo.com/collection/kalai-oval-interface-icons
https://www.svgrepo.com/collection/transportation-icooon-mono-vectors
https://www.svgrepo.com/collection/variety-flat-bordered-icons
https://www.svgrepo.com/collection/mingcute-tiny-bold-line-icons
https://www.svgrepo.com/collection/variety-duotone-filled-icons
https://www.svgrepo.com/collection/sign-and-symbols-icooon-mono-vectors
https://www.svgrepo.com/collection/industrial-sharp-ui-icons
https://www.svgrepo.com/collection/nuiverse-sharp-interface-icons
https://www.svgrepo.com/collection/hashicorp-line-interface-icons
https://www.svgrepo.com/collection/wave-oval-interface-icons
Tracy Profiler
Link: https://github.com/wolfpld/tracy
Compile switch: EZ_3RDPARTY_TRACY_SUPPORT
Switch for additionally tracking memory allocations: EZ_3RDPARTY_TRACY_TRACK_ALLOCATIONS
Tracy is a real-time frame profiler. It is used to analyze and optimize the performance of the engine and applications built with EZ.
TinyEXR
Link: https://github.com/syoyo/tinyexr
Compile switch: EZ_3RDPARTY_TINYEXR_SUPPORT
Adds support for .exr textures.
UTF8-CPP
Link: https://github.com/nemtrif/utfcpp
Compile switch: None
A library that provides Unicode related functionality. Integrated directly into ezFoundation.
V-HACD
Link: https://github.com/kmammou/v-hacd
Compile switch: EZ_3RDPARTY_VHACD_SUPPORT
The "Volumetric Hierarchical Approximate Convex Decomposition" library is used to decompose a concave triangle mesh into multiple convex pieces. This allows you to generate complex collision meshes which can be used as the shapes of dynamic actors.
Vulkan-Headers
Link: https://github.com/KhronosGroup/Vulkan-Headers
Compile switch: None
The official Vulkan API headers. Used by the Vulkan renderer, so that no Vulkan SDK installation is required to build EZ.
Vulkan Memory Allocator
Link: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator
Compile switch: None
Handles GPU memory allocation and sub-allocation for the Vulkan renderer.
xxHash
Link: https://github.com/Cyan4973/xxHash
Compile switch: None
A very fast hash algorithm. Integrated directly into ezFoundation.
zLib
Link: http://www.zlib.net
Compile switch: EZ_3RDPARTY_ZLIB_SUPPORT
Provides algorithms for zip compression and decompression. It is used by ezCompressedStreamReaderZlib and ezCompressedStreamWriterZlib in ezFoundation.
zstd
Link: https://facebook.github.io/zstd
Compile switch: EZ_3RDPARTY_ZSTD_SUPPORT
A very fast lossless compression library. It is used by ezCompressedStreamReaderZstd and ezCompressedStreamWriterZstd and also by ezArchive.