PROCEDURAL GENERATION OF VOXEL LANDSCAPES BASED ON ISOSURFACES USING MULTITHREADING
Abstract
The rapid development of technologies requires improving approaches to software development. When creating a real environment in simulators and trainers, an important part is modeling the topography of the terrain or landscape. The “unreal” technology allows to create custom engines for solving applied problems, so the study of the latest developments, namely Unreal Engine 5, for the generation of three-dimensional models of the landscape in real time is an urgent task.
The article provides an analysis of existing problems in real-time terrain relief modeling. The landscape is built in the form of a voxel model, which is formed on the basis of isosurface values. The values of the isosurface are determined by the scalar field. Cubic mapping is used to visualize the model. To get rid of excess information, it is suggested to use a greedy algorithm, which leads to the generation of a polygonal mesh with a reduced amount of geometry. The transition from the voxel landscape to the polygons is carried out in two ways based on the algorithms of surface meshes and marching cubes. The pseudocodes of the algorithms are given. In order to get rid of the main thread delay, it is suggested to divide the rendering tasks into different threads. Tasks that can be performed on the main and on additional streams have been defined. The voxel landscape is built on the basis of pieces of the surface, which reduces the load on the video card.
The software was developed and tested with the same settings for different algorithms. The test results are presented and the delay reduction of the main stream when applying the principle of multi-threading is shown. The FastNoiseLite open library is used for the procedural generation of the landscape, the Visual Scripting Blueprint graphic scripting system is used for creating a convenient settings interface, C++ and Visual Studio 2019 are used for the development of the plugin.
Keywords: three-dimensional model, voxel engine, Unreal Engine technologies, multithreading, marching cube algorithm, surface mesh algorithm.