Replies: 1 comment
-
It would be great to have a more sophisticated ray tracing example, that either replaces the existing vsgraytracing example or sits alongside it, so if you fancy tackling it then go for it :-) VulkanPBRT was very active in the early days of the VSG project, but alas the project lead moved on so it's sat going out of date and not updated to keep track of VSG/Vulkan changes. I haven't had the opportunity to really explore ray tracing myself yet, @tomhog wrote the VSG ray tracing classes that wrap the underlying Vulkan functionality, and it's been my intention to revist these classes once I've accumulated a bit more experience with using ray tracing in a scene graph context. I'm happy for others really shake down the VSG ray tracing classes and where bits fall off suggest better design/implementations. As a wafty arm waving possibility I have wondering about whether we can create an acceleration structure for mesh intersections on the CPU (like LineSegmentIntersector/PolytopeIntersector) that mirror the accelerations structure required on the GPU for ray tracing. The OSG has osg::KdTree for the purpose of accelerating mesh intersection tests, and I know at some point we'll need to add something similar to the VSG, but the concept of acceleration structures in ray tracing made me wonder if something consistent on the API or even just language side might be possible. Then there is the whole lighting and shadows side. Since the development of the VSG ray tracing and VulkanPBRT I've written the vsg::Light and vsg::ViewDependentState, with the built in ShaderSets supporting shaders with shadow support. For now there is no connection to the ray tracing side. Modelview and project matrices also have no connection to the ray tracing side. It would be good if there was more overlap and reuse of functionality so that users don't fall off the edge of cliff when then start implement raytracing instead of relying on traditional rasterization. So lots of potential areas for development on the core scene graph side. I'm really busy with other VSG related work so can't tackle any of these topics in the near term, but thought I'd share my general thoughts for what we might be able to do in the future so if you start having similar what-if thoughts please share them. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I have started studying VSG and Vulkan ray tracing. Since the vsgraytracing example only displays barycentric coordinates, I thought a good task might be to try to give it light, shadow, albedo textures, and maybe a couple other features. Is there anyone working on that already, or is there a wish list anywhere for features that people want to add? Time permitting, maybe I could make some progress on it.
I was also looking at https://github.com/Lachei/VulkanPBRT. Unfortunately, there have been fundamental VSG API changes since its last update, so I think that would be a difficult starting place.
Beta Was this translation helpful? Give feedback.
All reactions