Skip to content

Latest commit

 

History

1,716 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tempest Logo

Build status

Crossplatform 3d engine. (work in progress)

Tempest is an open-source, simple, cross-platform graphics engine written in modern C++17.
Main idea behind this engine is to provide a low-level GPU-programming concepts, like Ubo, Vbo, Ssbo, in convenient C++ packaging, with RAII, types and templates.

Features

  • Multiplatform (Windows, Linux, 32bit and 64bit)
  • Multibackend (Vulkan 1.0, DirectX12)
  • Multithreaded command buffers and thread safety
  • Build-in 2d graphics support
  • Build-in UI library

Examples

// offscreen render
VulkanApi api;
Device    device(api);

static const Vertex   vboData[3] = {{-1,-1},{1,-1},{1,1}};
static const uint16_t iboData[3] = {0,1,2};

auto vbo  = device.vbo(vboData,3);
auto ibo  = device.ibo(iboData,3);

auto vert = device.shader("shader/simple_test.vert.sprv");
auto frag = device.shader("shader/simple_test.frag.sprv");
auto pso  = device.pipeline(Topology::Triangles,RenderState(),vert,frag);

auto tex  = device.attachment(format,128,128);

auto cmd  = device.commandBuffer();
{
  auto enc = cmd.startEncoding(device);
  enc.setFramebuffer({{tex,Vec4(0,0,1,1),Tempest::Preserve}});
  enc.setPipeline(pso);
  enc.draw(vbo,ibo);
}

auto sync = device.submit(cmd);
sync.wait();

// save image to file
auto pm = device.readPixels(tex);
pm.save(outImg);

Android builds

The Android packaging example uses add_android_apk in the application's existing CMake project to generate a single Gradle build. It uses Android's built-in NativeActivity; the Tempest Android backend is separate work. Desktop builds do not require Java, the Android SDK or Gradle.

Ecosystem

During development various issues of Vulkan stack been found, reported and some were fixed.

Contribution

Issues

About

API abstraction layer for 3D graphics, UI and sound. Written in C++17 with Vulkan, DX12 and Metal support.

Topics

Resources

Stars

223 stars

Watchers

11 watching

Forks

Releases

Used by

Contributors

Languages