Has there been any analysis on the required feature set for porting to VulkanSceneGraph? Are any features lacking which would make porting difficult?
At a glance, I don't see any out-of-the-box support for MyGUI in any of the plugins, but there is an ImGUI plugin which could be used as a template. It looks like VSG and its plugins have a good deal of compatibility with OSG formats and concepts, with more support in the works.
The pending features listed on the Roadmap are currently:
Pending/Underway tasks:
Scene graph level multi-bin support with bin sorting.
Positional state support to enable easier support of lighting, shadows, texture projection.
Support for Khronos ray tracing.
Support for integration with OpenGL/OSG applications via EXT_external_object & VK_KHR_external_memory
We don't have the manpower to maintain two rendering backends, let alone do the port in the first place. We'd have to drop OSG support in favour of VSG support and that would mean OpenMW would become incompatible with lots of hardware it currently supports. It's not a matter of when VSG supports what we need it to, but instead a matter of when we've got nothing more pressing to do and all the hardware we want to support supports Vulkan.
We're not the typical OSG application. Most just throw data at OSG and make it deal with everything, and while there's some data we throw at OSG and make it deal with, a significant fraction of our code is things built on top of OSG to make it do new things, and porting that to VSG will be a lot of work.
We're not the typical OSG application. Most just throw data at OSG and make it deal with everything, and while there's some data we throw at OSG and make it deal with, a significant fraction of our code is things built on top of OSG to make it do new things, and porting that to VSG will be a lot of work.
Did you consider implementing these features directly into OSG rather than implementing them on the openmw side?