All Projects → gan74 → Yave

gan74 / Yave

Licence: mit
Yet Another Vulkan Engine

Programming Languages

cpp
1120 projects
cpp17
186 projects

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
Helixjs
A Javascript 3D game engine.
Stars: ✭ 84 (-60.19%)
Mutual labels:  3d, rendering, pbr
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.

Current status Current status Current status Current status

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:

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
  • Meshes

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].