Yet another C++17 Vulkan engine.
This is a pet/learning project, it's not meant to be a serious engine and should not be used for anything beside playing with vulkan.
Currently a mess, should smooth out as I am learning Vulkan.
The project is in its very early stages. For now I am focussing on creating a decent Vulkan wrapper/interface and a small scene editor before moving to the real engine work.
The editor is currently unusable but I am working on it.
- y: Core library with a bunch of utility functions and classes
- yave: The engine itself It links only to y and spirv-cross
- editor: A scene editor build on top of yave
- shaders: All the shaders for both the engine and the editor
- external: Third party libraries
- tools: Tools to create yave assets, should be moved into the editor soon
You need:
- CMake (3.7)
- A C++17 compiler (GCC 7.1)
- Vulkan SDK
- For tools:
Implemented features:
- Buffers
- Images
- Arrays
- Cubemaps
- IBL probes
- Descriptor sets
- Basic pipelines
- Compute shaders
- Swapchain
- Framebuffers
- Rendering pipeline
- Tiled deferred shader
- Physically based lighting
- IBL
- Basic scenes
- Tiled deferred shader
- Meshes
- Static
- Skeletal
MIT
- Finish allocators
- Rewrite SmallVector (with new allocators)
- Rename ArrayView to Span and MutableSpan
- DenseMap ?
- Log callbacks
- Barriers
- Reuse resources over frames
- Culling
- Batching system
- Streaming
- Material system
- Shadows
- GI
- Sky
- Spot lights
- Save open widgets
- Open several views
- Rotation & scale
- Create materials
- Edit object mesh/materials
- Tool entities