All Projects → barograf → VoxelTerrain

barograf / VoxelTerrain

Licence: other
This project's main goal is to generate and visualize terrain built using voxels. It was achieved using different approaches and computing technologies just for the sake of performance and implementation comparison.

Programming Languages

C#
18002 projects
HLSL
714 projects
Cuda
1817 projects

Projects that are alternatives of or similar to VoxelTerrain

MoravaEngine
2D/3D graphics engine written in C++ language. It currently supports the following graphics APIs: OpenGL 3.3+, Vulkan 1.2, DirectX 11. Its current purpose is to experiment with various CG concepts and techniques.
Stars: ✭ 129 (+248.65%)
Mutual labels:  voxel, directx, marching-cubes
Voxelplugin
Voxel Plugin for Unreal Engine
Stars: ✭ 844 (+2181.08%)
Mutual labels:  terrain, voxel
Veloren
[Mirror] An open world, open source voxel RPG inspired by Dwarf Fortress and Cube World
Stars: ✭ 868 (+2245.95%)
Mutual labels:  terrain, voxel
voxel-builder
Voxel-based 3D modeling application
Stars: ✭ 31 (-16.22%)
Mutual labels:  terrain, voxel
DungeonTemplateLibraryUnity
🌏: Dungeon free resources (terrain & roguelike generation)
Stars: ✭ 51 (+37.84%)
Mutual labels:  terrain, terrain-generation
Marching Cubes Terrain
Marching Cubes terrain implementation in Unity using the Job System and the Burst compiler
Stars: ✭ 292 (+689.19%)
Mutual labels:  terrain, voxel
Proceduralterrain
Procedural voxel terrain generation in Unity
Stars: ✭ 237 (+540.54%)
Mutual labels:  terrain, voxel
rabbit-hole
An experimental voxel engine.
Stars: ✭ 39 (+5.41%)
Mutual labels:  terrain, voxel
Marching-cubes-on-Unity-3D
Terrain voxel engine with the use of Marching Cubes implemented in Unity 2020.3.17f1 (LTS).
Stars: ✭ 222 (+500%)
Mutual labels:  terrain-generation, marching-cubes
AsLib
🎨: RPG map maker (paint tool)
Stars: ✭ 82 (+121.62%)
Mutual labels:  terrain, terrain-generation
Weltenschaft
Open-Source terrain generator 🗺️
Stars: ✭ 41 (+10.81%)
Mutual labels:  terrain, terrain-generation
Thalatta
An open source terrain generation suite.
Stars: ✭ 37 (+0%)
Mutual labels:  terrain, terrain-generation
terrain-tool-godot4
GODOT 4 3D Terrain Editor (C# Plugin)
Stars: ✭ 22 (-40.54%)
Mutual labels:  terrain, terrain-generation
Dungeontemplatelibrary
🌏: Dungeon free resources (terrain & roguelike generation)
Stars: ✭ 595 (+1508.11%)
Mutual labels:  terrain, voxel
SimpleErosion
Simple C++ implementatoin of particle-based hydraulic erosion on a square grid
Stars: ✭ 64 (+72.97%)
Mutual labels:  terrain, terrain-generation
Filetovox
Tool for convert files into Magicavoxel file
Stars: ✭ 188 (+408.11%)
Mutual labels:  terrain, voxel
Blendpeaks
A free and open source addon for Blender. It creates mountain peaks.
Stars: ✭ 78 (+110.81%)
Mutual labels:  terrain, terrain-generation
VoronoiIsland
🏝: Voronoi Island
Stars: ✭ 15 (-59.46%)
Mutual labels:  terrain, terrain-generation
Dxbc2Dxil
DEPRECATED. DXBC to DXIL (HLSL Bytecode to LLVM IR) using internal APIs.
Stars: ✭ 21 (-43.24%)
Mutual labels:  directx, hlsl
Procedural-Terrain-Generation
3D computer graphics program in C++ OpenFrameworks of a procedural terrain generator based on simplex noise with camera movement and real-time adjustable parameters from the GUI
Stars: ✭ 18 (-51.35%)
Mutual labels:  terrain, terrain-generation

Voxel Terrain

Screenshot 1 Screenshot 2 Screenshot 3

Introduction

This project's main goal is to generate and visualize terrain built using voxels. It was achieved using different approaches and computing technologies just for the sake of performance and implementation comparison.

Used Technologies

There is a list of technologies used in this project:

  • DirectCompute and CUDA for parallel terrain generation
  • All sorts of DirectX 11 shaders (Vertex Shader, Pixel Shader, Geometry Shader, Hull Shader, Domain Shader, Compute Shader) used in visualization process
  • HLSL for shaders implementation
  • C# language for program logic and sequence algorithms implementation
  • C language for CUDA kernels implementation

Terrain Generation

The whole terrain generation process was implemented using sequence algorithms for CPU and then using parallel equivalents for Microsoft DirectCompute and Nvidia CUDA. Performance boost for parallel versions is significant and can be measured from tens to even hundreds.

Generation process utilizes the following algorithms and features:

  • XORWOW algorithm implementation for random numbers generation
  • Voxel weights generation using fractional Brownian motion (noise)
  • Voxel weights generation using math equations
  • Marching cubes for geometry extraction
  • Prefix scan used for optimization of parallel generation

Terrain Visualization

Visualization is made through DirectX 11. In order to obtain some eye candy effects the following algorithms were implemented:

  • ambient occlusion
  • tri-planar mapping
  • displacement mapping
  • bump mapping
  • adaptive tessellation
  • sky box
  • linear fog
  • post-processed bloom

Some screenshots presenting the final effect can be found here.

Installation

There are some prerequisites:

  • Graphics card with DirectX 11 and CUDA 2.0 or higher
  • Microsoft.NET framework with version 4.0 or higher
  • Microsoft DirectX SDK
  • CUDA Toolkit 8.0
  • Visual Studio 2015
  • 64-bit platform due to cuRAND requirement

The solution uses some wrappers around native CUDA and DirectX libraries:

  • SlimDX for DirectX - included in solution because there is no x64 equivalent in NuGet
  • ManagedCuda and CudaRand for CUDA and cuRAND - shipped as NuGet packages

There are some sample textures in repository. Each one contains color, displacement and bump map.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].