3 ms·
The data for each scene hasn't been streamed to the GPU in a long time, not since the first few generations of GeForce cards. "Vertex buffers" store the geomet
by garmaine 7y ago
The data for each scene hasn't been streamed to the GPU in a long time, not since the first few generations of GeForce cards. "Vertex buffers" store the geometry in the GPU's RAM, so it's there. The game engine just swaps out buffers as things come in and out of view.
I have the same questions as you regarding how this works with respect to offloading the the scene graph data structures though.
- Qu3tzal 7y agoLooks like the GPU stores collections of triangles then used to perform the ray computations. https://devblogs.nvidia.com/practical-real-time-ray-tracing-rtx/ https://devblogs.nvidia.com/practical-real-time-ray-tracing-...
- mmozeiko 7y agoTo shoot rays in scene you create acceleration structure (internal to driver/GPU hardware). Input to this structure are vertex & index buffers & model transform matrix. Geometry is specified as triangles or AABB. You can update this structure later by providing new transform matrix. There are different flags that control performance/memory usage - fast tracing or updates vs less memory usage. See following links: * https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBuildAccelerationStructureNV.html https://www.khronos.org/registry/vulkan/specs/1.2-extensions... * https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkGeometryNV.html https://www.khronos.org/registry/vulkan/specs/1.2-extensions...
- garmaine 7y agoBut efficient ray casting requires a scene graph structure--an octree, or a bsd-tree, etc. Are the details of that just handled by the driver?
- mmozeiko 7y agoYes. Driver/GPU handles that. It "just works". You just manage things on high level - what can be moved in world, what cannot and group the updates together.