vsg-dev / VulkanSceneGraph

Vulkan & C++17 based Scene Graph Project
http://www.vulkanscenegraph.org
MIT License
1.32k stars 212 forks source link

Platform Support & Relation to OpenSceneGraph #213

Closed felixguendling closed 4 years ago

felixguendling commented 4 years ago

I'm currently looking for 3D rendering solutions and found this project. It looks very promising. However, I'm wondering: is this a successor of OpenSceneGraph (which is based on OpenGL which can be seen as a predecessor to Vulkan)? Are there plans to join these two projects (OpenSceneGraph + VulkanSceneGraph) or will OpenSceneGraph be obsolete when VulkanSceneGraph gets to version 1.0? Are there any differences in project goals between those projects (besides coding standards, OpenGL vs Vulkan)? Does VulkanSceneGraph aim to target the web (WebGPU / WebGL), too? I assume making it work on Android would be possible?

robertosfield commented 4 years ago

Hi Felix,

On Sun, 25 Oct 2020 at 12:31, Felix Gündling notifications@github.com wrote:

I'm currently looking for 3D rendering solutions and found this project. It looks very promising. However, I'm wondering: is this a successor of OpenSceneGraph (which is based on OpenGL which can be seen as a predecessor to Vulkan)?

I view the VulkanSceneGraph as the successor to OpenSceneGraph. I'm the project lead/lead author of OpenSceneGraph and VulkanSceneGraph - my aim is to take all the lessons for developing and maintaining the OSG and leverage modern APIs, languages and tools to create a next gen scene graph.

Are there plans to join these two projects (OpenSceneGraph + VulkanSceneGraph) or will OpenSceneGraph be obsolete when VulkanSceneGraph gets to version 1.0?

While OSG users still have a use for it then it's not obsolete - it's open source and can live on for as long as the community has a use for it.

From my own contributions the OSG is in it's mature/maintenance phase rather than development phase. The VSG is very much in it's development phase right now as we push towards 1.0.

The vsgXchange project has an OSG loader and converts to VSG. Originally this code was in osg2vsg project, but now the functionality is in vsgXchange this intermediate project is deprecated.

In osg2vsg there was also some experimental code for mixing Vulkan/OpenGL and hence VSG/OSG in a single application with them sharing rendering. Tom Hogarth got that integration working under Windows but while I ported it to Linux I never got it to function so would require more work. I have done a bit of work preparing to move some of this functionality into the core VSG and vsgExamples so at some point I or others might get this working across platforms. For now now one chopping at the bit for the functionality and I have so much other work required for VSG-1.0 it's on a back burner. Others are welcome to pick it up if they require it.

For application development, if users need a mature and feature rich tool but not maximum performance then the OSG might still be project to use. If you have a new project then uses a far more modern scene graph and associate libs/tools will make the VSG more attractive, if maximum performance and efficiency is required then it's not even close, VSG/Vulkan will win OSG/OpenGL.

For existing users of the OSG who want to modernize and get best possible performance then migration to the VSG is something for them to consider. The VSG has similarities to the OSG in some areas, but it really is a different beast, much in the same way Vulkan is very different to OpenGL, Sure you can use GLSL with Vulkan and OpenGL but under the hood is very different how you tackle problems.

Are there any differences in project goals between those projects (besides

coding standards, OpenGL vs Vulkan)? Does VulkanSceneGraph aim to target the web (WebGPU / WebGL), too? I assume making it work on Android would be possible?

VSG is Vulkan based so won't ever work with WebGL. WebGPU is an interesting development, for now, it won't be supported by can't rule it in or out if others have a need and able to help attempt it. Android is already supported by the VSG.

Cheers, Robert,

felixguendling commented 4 years ago

Thank you for your quick and informative response.

And thank you very much for developing and providing this as Open Source Software! :smiley:

Edit: Not sure, but maybe others would benefit from this information if it would be in the README, too. At least for me, it was very helpful.