Skip to content
This repository was archived by the owner on Jun 29, 2025. It is now read-only.

Pawlost/bachelors-thesis-compressed-meshers

Repository files navigation

Run Directional Meshing – Bachelor's Thesis

RDM

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.

Table of Contents

Description

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.

Project as plugin

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.

Installation

Prerequisites

Windows 11:

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:

  1. Copy C:\Program Files (x86)\Epic Games\Launcher\Engine\Binaries\Win64\UnrealVersionSelector.exe to C:\Program Files\Epic Games\UE_5.4\Engine\Binaries\Win64.
  2. Run UnrealVersionSelector from the directory.
  3. Navigate to the .uproject file.
  4. Right-click -> Open With -> Unreal Engine.

Project Setup

  1. Clone or download the repository to a directory of your choice.
  2. Right-click the .uproject file -> Show More Options -> Generate Visual Studio project files.
  3. Open the generated .sln solution file in JetBrains Rider (or your preferred IDE able to run UE projects):
  4. Wait for the IDE to process the solution files.
  5. Ensure the RiderLink plugin is installed.
  6. 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.

Usage

The first scene that opens in this project is Map_Scenario_Showcase.umap.

Data table

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.

VoxelTypeCreation

Voxel Generators

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.

VoxelGenerator

Chunk Spawners

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:

  1. Assign a voxel generator.
  2. Modify configuration.
  3. Place it in the scene.

PreloadedSpawner

Characters

This project includes two playable characters with voxel interaction capabilities:

  1. BP_VoxelInteractionObserverCharacter -- Enables voxel placement and picking.
  2. BP_VoxelWorldExplorer (inherits from BP_VoxelInteractionObserverCharacter) -- Automatically spawns chunks around the player for exploration.

They can be found in Plugins/RunDirectionalMeshingDemo/Blueprints/Content/Characters.

Scenes

Example maps showcasing different voxel test scenarios can be found in Content/ProfilingScenarios/. The default map showcases can be found directly in Content/.

Licence

This project is licensed under the MIT License. See the LICENSE file for details.

Contact

Releases

Packages

Contributors

Languages