Open-Source Vulkan C++ API
OpenVDB
Our great sponsors
Open-Source Vulkan C++ API | OpenVDB | |
---|---|---|
36 | 55 | |
2,888 | 2,388 | |
1.6% | 1.6% | |
9.1 | 8.7 | |
6 days ago | 8 days ago | |
C++ | C++ | |
Apache License 2.0 | Mozilla Public License 2.0 |
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
-
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.
-
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.
-
CLion vs VSCode in 2023 for C++
VS 2022 has seen a massive increase in performance especially after its move to 64-bit. It lints even the largest headers (ahem, Vulkan-Hpp) in a matter of seconds whereas CLion just chokes and crashes.
- Cross platform low level graphics API suitable for game development?
-
std::string_view, std::string, char const*, and char const* const*
So I am attempting to follow the Vulkan Tutorial, but I am trying to use decidedly more C++ than the tutorial suggests, by using the Vulkan-Hpp C++ bindings and the vk::raii classes, in particular.
-
I put together this compute pipeline example using the C++ RAII interface. Perhaps other beginners could learn from it, and any code reviews/comments would be welcome.
Its literally a few kb: https://github.com/KhronosGroup/Vulkan-Hpp/tree/master/vulkan Why on earth are you downloading all the samples and what not? Just use the hpp files and be done with it. SMH
-
Ask HN: How I get a job that uses C?
All the current major game engines are C++. C hasn't been widely used since the Quake 3 days.
While yes the Vulkan & OpenGL APIs are pure C, that's very, very little of what you actually code against. You very quickly abstract that or use a middleware like bgfx or whatever. In the case of Vulkan while the spec API is C, there's first-class C++ wrappers/bindings provided as well: https://github.com/KhronosGroup/Vulkan-Hpp
And other than Vulkan & OpenGL, you'll find that most other APIs/libraries in the space are C++, not C. Valve's libraries are C++. Dear ImGui is C++. Bullet & PhysX are C++. Microsoft's glTF SDK is C++. etc...
You can argue endlessly about how "true C++" those all are or if they're just "C with namespaces" but that's largely irrelevant - they aren't C and they need a C++ compiler.
OpenVDB
-
In Defense of Linked Lists
https://github.com/AcademySoftwareFoundation/openvdb/issues/...
Longer answer is that the size of the "blocks" is limited to 512 bytes or one element, whichever is larger. So unless your elements are really tiny, it is strictly a pessimization.
- Ask HN: What small library or tool do you want that doesn’t exist?
What are some alternatives?
Ogre 3D - scene-oriented, flexible 3D engine (C++, Python, C#, Java)
GLFW - A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input
Skia - Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.
urho3d - Game engine
Irrlicht - An automatically updated mirror of the Irrlicht SVN repository on sourceforge
bgfx - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
OpenSubdiv - An Open-Source subdivision surface library.
DirectXTK - The DirectX Tool Kit (aka DirectXTK) is a collection of helper classes for writing DirectX 11.x code in C++
OpenSceneGraph - OpenSceneGraph git repository
magnum - Lightweight and modular C++11 graphics middleware for games and data visualization