NOTICE! This repository is obsolete and documents the results presented in my bachelor’s thesis. The updated version with the extended optimizations is available here.
This repository contains the implementation of a new voxel meshing algorithm developed for Unreal Engine 5.4 as part of a bachelor's thesis. The project showcases Run Directional Meshing, an interactive, real-time technique for converting voxel data into polygonal meshes optimized for performance and editor integration.
The main project is CompressedMesherDemo.project, which contains profiling datasets in its content. The plugin with the implementation is located in the Plugins/RunDirectionalMeshingDemo repository and may copied from this place into your solution.
This project includes a freely usable and shareable Unreal Engine plugin located in the Plugins folder. To enable plugin content: Content Browser → Settings → Show Plugin Content.
Windows 11:
- Visual Studio Installer
- Workloads: Game development with C++, Desktop development with C++, .NET desktop development
- Individual Components: MSVC v143 - VS 2022 C++ x64/x86 build tools (v14.38-17.8)
- Jetbrains Rider (or alternative IDE able to build and run Unreal Engine)
- Epic games launcher
Note: Linux environment is not tested
After installing all prerequisites, restart a computer to ensure all dependencies are recognized.
If .uproject files are not associated with Unreal Engine:
- Copy
C:\Program Files (x86)\Epic Games\Launcher\Engine\Binaries\Win64\UnrealVersionSelector.exetoC:\Program Files\Epic Games\UE_5.4\Engine\Binaries\Win64. - Run UnrealVersionSelector from the directory.
- Navigate to the .uproject file.
- Right-click -> Open With -> Unreal Engine.
- Clone or download the repository to a directory of your choice.
- Right-click the
.uprojectfile -> Show More Options -> Generate Visual Studio project files. - Open the generated
.slnsolution file in JetBrains Rider (or your preferred IDE able to run UE projects): - Wait for the IDE to process the solution files.
- Ensure the RiderLink plugin is installed.
- Build and run the project.
For further details, see Usage.
Known Issue (RMC Plugin) When running Unreal Engine in Debug Mode, closing the editor before chunk spawning may trigger a breakpoint in the Realtime Mesh Component (RMC) plugin. This issue does not cause a crash, resume execution should continue.
The first scene that opens in this project is Map_Scenario_Showcase.umap.
Example tables can be found in Plugins/RunDirectionalMeshingDemo/VoxelTypes.
- Example voxel definitions are stored in
DT_BlockTable. - Use the VoxelType row struct to create a new voxel table.
- Add new rows, assign materials, and configure properties.
For example, voxel generators can be found in Plugins/RunDirectionalMeshingDemo//ContentBlueprints/ChunkSpawners/VoxelGenerators.
Voxel generators are unspawnable actor components that define how chunks are filled with voxels, set chunk dimensions, and determine voxel size. Meshers are algorithms that convert the generated voxel grid into a mesh. Currently, only RunDirectionalMesher is supported.
Example tables can be found in Plugins/RunDirectionalMeshingDemo/Blueprints/Content/ChunkSpawners.
Chunk spawners determine the number and positions of generated chunks. To configure a chunk spawner:
- Assign a voxel generator.
- Modify configuration.
- Place it in the scene.
This project includes two playable characters with voxel interaction capabilities:
- BP_VoxelInteractionObserverCharacter -- Enables voxel placement and picking.
- BP_VoxelWorldExplorer (inherits from BP_VoxelInteractionObserverCharacter) -- Automatically spawns chunks around the player for exploration.
They can be found in Plugins/RunDirectionalMeshingDemo/Blueprints/Content/Characters.
Example maps showcasing different voxel test scenarios can be found in Content/ProfilingScenarios/. The default map showcases can be found directly in Content/.
This project is licensed under the MIT License. See the LICENSE file for details.
- Email: mr.p.balusek@gmail.com
- Github: Pawlost
- LinkedIn: Pavel Balusek


