gan74 / Yave
Licence: mit
Yet Another Vulkan Engine
Stars: ✭ 211
Projects that are alternatives of or similar to Yave
Renderhelp
⚡️ 可编程渲染管线实现,帮助初学者学习渲染
Stars: ✭ 494 (+134.12%)
Mutual labels: engine, 3d, shaders, rendering, 3d-graphics
Renderer
A shader-based software renderer written from scratch in C89
Stars: ✭ 1,366 (+547.39%)
Mutual labels: 3d, shaders, rendering, 3d-graphics, pbr
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 (-38.86%)
Mutual labels: shaders, rendering, vulkan, pbr, 3d-graphics
Tinyrenderer
A brief computer graphics / rendering course
Stars: ✭ 11,776 (+5481.04%)
Mutual labels: engine, 3d, shaders, rendering, 3d-graphics
Vrt
🔅 Ray tracing library for Vulkan API (indev)
Stars: ✭ 111 (-47.39%)
Mutual labels: vulkan, rendering, vulkan-api, real-time
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+5444.08%)
Mutual labels: 3d, vulkan, shaders, 3d-graphics
Vxr
General purpose engine written in C++ with emphasis on materials rendering (PBR, clear coat, anisotropy, iridescence)
Stars: ✭ 181 (-14.22%)
Mutual labels: engine, 3d, rendering, pbr
Bgfx
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Stars: ✭ 10,252 (+4758.77%)
Mutual labels: engine, vulkan, rendering, vulkan-api
Tinyraycaster
486 lines of C++: old-school FPS in a weekend
Stars: ✭ 1,383 (+555.45%)
Mutual labels: engine, 3d, rendering, 3d-graphics
Lugdunum
[UNMAINTAINED] A modern cross-platform 3D engine built with Vulkan, glTF 2.0 and modern C++14.
Stars: ✭ 230 (+9%)
Mutual labels: vulkan, rendering, pbr, vulkan-api
Tinyraytracer
A brief computer graphics / rendering course
Stars: ✭ 3,971 (+1781.99%)
Mutual labels: 3d, shaders, rendering, 3d-graphics
Tinykaboom
A brief computer graphics / rendering course
Stars: ✭ 2,077 (+884.36%)
Mutual labels: 3d, shaders, rendering, 3d-graphics
Filament
Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
Stars: ✭ 13,215 (+6163.03%)
Mutual labels: vulkan, 3d-graphics, pbr, real-time
Gears Vk
Powerful low-level C++20 rendering framework for Vulkan 1.2, including Real-Time Ray Tracing (RTX) support, built atop Auto-Vk.
Stars: ✭ 71 (-66.35%)
Mutual labels: engine, vulkan, rendering
Flycube
Graphics API wrapper is written in C++ on top of Directx 12 and Vulkan. Provides main features including ray tracing.
Stars: ✭ 78 (-63.03%)
Mutual labels: vulkan, rendering, 3d-graphics
Vulkust
An engine for Vulkan in Rust, tries to implement modern graphic features. (suspended for now)
Stars: ✭ 64 (-69.67%)
Mutual labels: engine, 3d, vulkan
Unity Dithered Transparency Shader
Unity material and shader for applying clipped, dithered transparency
Stars: ✭ 174 (-17.54%)
Mutual labels: 3d, shaders, rendering
The Forge
The Forge Cross-Platform Rendering Framework PC Windows, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch, Quest 2
Stars: ✭ 2,710 (+1184.36%)
Mutual labels: vulkan, shaders, vulkan-api
Diligentengine
A modern cross-platform low-level graphics library and rendering framework
Stars: ✭ 2,142 (+915.17%)
Mutual labels: vulkan, rendering, pbr
Yave
Yet another C++17 Vulkan engine.
Disclaimer
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 only supports Windows
- With GCC 9+ through MSYS2
- With MSVC 16.9+
Serialization format is compiler dependent!
Status
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.
Project structure
- 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
Building
You need:
- CMake (3.18)
- A C++17 compiler
- Vulkan SDK
Implemented features:
- Buffers
- Images
- Arrays
- Cubemaps
- IBL probes
- Descriptor sets
- Basic pipelines
- Compute shaders
- Swapchain
- Framebuffers
- Resources lifetime management
- Framegraph
- Rendering pipeline
- Tiled deferred shader
- Physically based lighting
- IBL
- Basic scenes
- Tiled deferred shader
- Meshes
- Static
- Skeletal
Licence:
MIT
To Do
Y
- [X] Log callbacks
- [ ] Finish allocators
- [ ] Rewrite SmallVector (with new allocators)
- [X] Rename ArrayView to Span and MutableSpan
- [X] HashMap
- [X] Basic reflection
- [X] More robust serialization
Framegraph
- [X] Barriers
- [X] Reuse resources over frames
- [X] Resource aliasing to avoid copies
- [ ] Merge mapped buffers
- [ ] Better usage of render passes
Engine
- [X] Asset saving and loading
- [X] Integrate ECS
- [X] Switch to VK_EXT_debug_utils
- [ ] Sky
- [ ] Make assets easily serializable
- [ ] Culling
- [ ] Batching system
- [ ] Streaming
- [ ] Proper material system
- [X] Shadows
- [ ] GI
- [ ] Post processes
- [X] Spot lights
- [X] Actual tone mapping
Editor
- [X] Integrate ECS
- [X] Open several views
- [X] Rotation
- [X] Create materials
- [X] Editor only entities
- [ ] Save open widgets
- [ ] Scale
- [ ] Edit materials
- [X] Prefabs
- [ ] Better save system
- [ ] Undo/redo
- [ ] Integrated profiler
- [ ] Edit shaders?
- [ ] Edit or create meshes?
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].