Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hex Renderer

An experimental C++ hex-world renderer using SDL3's GPU API. It includes procedural terrain generation, instanced hex and glTF model rendering, hex picking, and integration with RmlUi for GUI.

Requirements

  • CMake 3.26 or newer
  • Ninja, if using the included presets
  • SDL 3.4 and SDL_image 3.4 development packages
  • Vulkan SDK, including glslc, for shader compilation
  • Git for fetching the dependencies during first configure

SDL, SDL_image, and Vulkan are discovered using paths stored in CMakeUserPresets.json, for example:

{
  "version": 6,
  "configurePresets": [
    {
      "name": "local-dev",
      "inherits": "dev",
      "cacheVariables": {
        "SDL3_DIR": "/path/to/SDL3/cmake",
        "SDL3_image_DIR": "/path/to/SDL3_image/cmake"
      },
      "environment": {
        "VULKAN_SDK": "/path/to/VulkanSDK"
      }
    }
  ]
}

Configure the local preset, then build and test through the shared presets:

cmake --preset local-dev
cmake --build --preset dev
ctest --preset dev

The release preset disables benchmarks. Tests are controlled by CMake's standard BUILD_TESTING option, and benchmarks by HEX_RENDERER_BUILD_BENCHMARKS.

Dependencies and assets

Fetches FreeType, RmlUi, fastgltf, doctest, and nanobench from pinned commit hashes. Point SDL, SDL_image, and the Vulkan SDK remain external toolchain dependencies.

Three small source dependencies are vendored under third_party: Handmade Math, SimplexNoise, and tph_poisson. See those files for the associated licences.

EB Garamond (assets/fonts/EB_Garamond) is redistributed under the SIL Open Font License. Runtime shaders and assets are staged beside the executable by CMake.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages