This is simply because there are many many ways of doing the above, and
Sort kernels and other functions in the nbl::ext:: namespace
I have yet to see a manageable un-abandoned engine with a divergent library interface/API.
Over-abstraction is an issue with the largest, most popular and most cross-platform game (not 3D) engines out there. The problem of modelling after one particular API (DirectX9) and over-abstraction is experienced in 'stock' Irrlicht.
OPENGL 4.3+ CODE
If we wanted to bridge together DirectX, OGL, Vulkan and Metal in any combination under the same set of objects we'd end up with either over-abstraction (featureset limited by the least able API), a very divergent interface (different C++ code paths for different APIs) or an interface strongly influenced and modelled after one particular API. This is why the backend graphics API set is restricted to only OpenGL 4.3+ core and Vulkan, and will always stay that way, although the minimum OpenGL version might get a bump or get dropped alltogether. Performance "Application Specific" Graphics Program, instead of buildingĮverything from scratch with pure GL or Vulkan. The idea is to have something that you'd want to use to develop a High Upon layer of abstraction (like some engines with "3D" in the name as a suffix :) ). It's kept very close to the metal, so you should be able to useĪll OpenGL/Vulkan functionality you want without ripping it out of layer
OPENGL 4.3+ ANDROID
(OpenGL/Vulkan) all the way down to Mobile (but only very recent Android Vulkan Nabla is a GPU programming sandbox, so it's mainly purely data-oriented HPC and Hardware Rasterization library encompassing OpenGL and Vulkan (soon).Īs the end goal it will run on headless GPU servers (Vulkan Compute), Nvidia GRID servers