Goal : Establish which technologies and broad techniques to use
Learn and experiment with Vulkan, modern C++, and possible 3rd party dependencies. Experimenting with different approaches to object/scene graph design and implementation. Exploration Phase Materials :
- Principles and Philosophy
- High Level Design Decisions
- Exploration Phase Report
- Areas of Interest
- 3rd Party Resources
Goal : Rapid prototyping of main classes, library and test applications to establish how the scene graph API will broadly look and work.
Prototype Phase Materials:
Goal: Create the final class interfaces and implementation
Using the prototyping work as a guide implement the final scene graph library with the aim of creating a solid interface and implementation.
- Development of final VSG Library.
- Support for multi-threaded database paging.
- Support for multi-threaded viewer, cull and dispatch traversals.
- Support for multi-pass rendering.
- Support for large scale whole world databases, with double support for scene graph transforms.
- Development of add on libraries that provide:
- Support for major image formats.
- Support for major 3D model formats, including FBX, glTF.
- Support for PBR shaders.
- Support for Text rendering.
- Development of test suite of programs and data.
- Support for RTX Mesh shaders and ray tracing.
- Scene graph level multi-bin support with bin sorting.
- Support for Khronos ray tracing.
- Memory allocator with support with grouping associated types
- Positional state support to enable easier support of lighting, shadows, texture projection.
- Matrix decomposition
- Port to iOS
- Unified state composer, shader set and cache
- Update vsgXchange::Assimp to use the new state composer/shader set.
- Support for wide and standard strings in vsg::Path.
- Utilize vkEnumerateInstanceVersion
- Update vsgImGui to latest
- Improved support for dynamic scene graphs and dynamic views, dynamic descriptor pool reallocation
Goal: Test scene graph library against real-world applications and shake down the API and implementation for it's first stable release.
- Refinement of API and implementation
- Build relationships with application developers and involve them in testing
- Create tutorial and example programs to illustrate how to use VSG
- Test, debug, refine and release 1.0.0!
- Update vsgXchange::OSG to use the new state composer/shader set.
- Rewrite vsgQt handling of keyboard mapping
- Support for integration with OpenGL/OSG applications via EXT_external_object & VK_KHR_external_memory