Open-Source Vulkan C++ API
Ogre 3D


Open-Source Vulkan C++ API | Ogre 3D | |
---|---|---|
36 | 3 | |
3,224 | 4,100 | |
1.6% | 0.9% | |
9.1 | 9.5 | |
11 days ago | 7 days ago | |
C++ | C++ | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Open-Source Vulkan C++ API
-
what math is required?
It might be useful to maybe look at the Vulkan.hpp examples since you can do the same in about 200 lines of code. https://github.com/KhronosGroup/Vulkan-Hpp/blob/main/samples/15_DrawCube/15_DrawCube.cpp
- Vulkan-Hpp now provides C++20 module interface file
-
How do you guys organize everything?
Wow that library looks amazing, I'll definitely be using it. Bonus that it's official from the Khronos Group. https://github.com/KhronosGroup/Vulkan-Hpp
-
An idea to ease wrapping C libraries in C++.
Even auto-generated c++ wrappers like vulkan-hpp require lots of manual maintenance.
-
Anybody know why V-EZ has not been updated in 5 years?
Ultimately I went with vulkan.hpp RAII bindings, even though that way also has some learning curve and I couldn't find any documentation other than the RAII programming guide. It's great for getting started, but could use a complementary auto-generated API doc. There are also decent programming samples, which really suck for getting started, but otherwise do a good job of presenting concepts they focus on. Putting the available resources together I was able to get a project going in two weekends.
-
Using enum classes as bitmasks
This is exactly how the official Vulkan C++ API, Vulkan-Hpp does it. For the precise example mentioned in the blog post:
-
Recommendations on how to start a small Vulkan project
Or the vulkan.hpp RAII samples would be a good place?
-
What's the most hilarious use of operator overloading you've seen?
For a real-life example: consider the vk::raii namespace of Vulkan-Hpp, where the developers have posted examples. The vk::raii::su namespace has a bunch of free functions that one might think are associated with a Vulkan instance/object (in fact, the Vulkan Tutorial does implement them as member functions), but they are much nicer when used as pure functions. It keeps the class/struct definition itself nice and clean.
-
Vulkan-HPP + Vulkan C API == Aliasing Bugs!
final c++17 draft (N4659) first post-publication draft after c++20 (N4868) vulkan-structs.hpp (containing the vk::ImageCreateInfo definition) VkImageCreateInfo struct
Ogre 3D
-
Not only Unity...
OGRE (MIT/C++) https://github.com/OGRECave/ogre
-
⟳ 4 apps added, 43 updated at f-droid.org
Ogre Sample Browser (version 13.2.4): Object-Oriented Graphics Rendering Engine - Samples
- Ogre 13.0.0 released! Open Source game engine.
What are some alternatives?
DirectXTK - The DirectX Tool Kit (aka DirectXTK) is a collection of helper classes for writing DirectX 11.x code in C++
bgfx - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
urho3d - Game engine
OpenSceneGraph - OpenSceneGraph git repository
Irrlicht - An automatically updated mirror of the Irrlicht SVN repository on sourceforge
OpenSubdiv - An Open-Source subdivision surface library.
magnum - Lightweight and modular C++11 graphics middleware for games and data visualization
OpenVDB - OpenVDB - Sparse volume data structure and tools
Skia - Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.
GLFW - A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input

