I
imerso
Guest
Just stumbled on this demo from AMD DXR:
I don't see any difference when comparing DX usage.I believe that the main point here is that RTRT is going forward and DXR will apparently become the standard on both PC and consoles.
On a side note, I myself prefer open standards like OpenGL, but let's face it, DXR has the edge right now.
Microsoft Unveils DirectX 12 Ultimate: The GPU Feature Set For the Next Generation of Games
https://www.anandtech.com/show/15637/microsoft-intros-directx-12-ultimate-next-gen-feature-set
Little late reply, but I've come around to your way of thinking. Tracing a regular spatial subdivision being essentially a 2.5D problem, more akin to rasterization than intersection testing, does seem nice. I think you can get the 64 bit intersection mask for the ray with 3 2D-texture lookups and a small amount of math and logic operations, you AND it with occupancy mask and on you go. Not really an octree any more at that point though, more a 64-tree. Google tells me it's an old idea (I'm not sure I'd build the tree like they do though, don't like the sorting).Should work ideally for a 8x8x4 (the 4 rotating axis by level) node size if you wanted to exactly fit a 32 byte cache line for the bitset
Increasingly, as part of video games and other such applications, the acceleration structures for ray tracing are explicitly edited or regenerated by the software to reflect the current set of potentially visible geometry. Such acceleration structures are now competing for storage (both persistent (e.g., flash memory) and non-persistent (e.g., RAM)) with other data, such as geometry and texture data.
This growth in the share of the memory by the acceleration structures has resulted in systems with significantly large memory requirements. Moreover, the bandwidth required to fetch the large amount of data for acceleration structures has also proportionally gotten bigger. The systems and methods described herein help minimize the space required for ray tracing acceleration structures.
The patent lists certain solutions such as having more manageable pools of data associated with the acceleration structures. These can be saved either within the memory or storage devices such as SSDs which offer the fastest processing speeds outside of non-persistent storage options.
An example graphics processing system is to retrieve a first level of detail value for a sub-tree from a level of detail residency map corresponding to a bounding volume hierarchy of objects. The graphics processing system is to determine a second level of detail value for the sub-tree. The graphics processing system is to select a final level of detail value for the sub-tree based on a comparison between the first level of detail value for the sub-tree and the second level of detail value for the sub-tree. The graphics processing system is to, based on the final level of detail value for the sub-tree, select child nodes in an acceleration structure tree and trace the selected child nodes.
Increasingly, as part of video games and other such applications, the acceleration structures for ray tracing are explicitly edited or regenerated by the software to reflect the current set of potentially visible geometry. Such acceleration structures are now competing for storage (both persistent (e.g., flash memory) and non-persistent (e.g., RAM)) with other data, such as geometry and texture data.
Accordingly, there is a need for systems and methods for better handling of the data associated with the acceleration structures.
Yep, you can use ray queries from any shader stage in DX12. Docs here: https://github.com/Microsoft/DirectX-Specs/blob/master/d3d/Raytracing.md#inline-raytracingIs that what it sounds like, arbitrary ray casts called from shaders?
Well work graphs give you the ability to 'enqueue' shaders from other shaders. The nodes in our work graphs currently represent compute shader programs and there aren't many usage restrictions for them in conjunction with work graphs so you can embed ray query objects in these nodes as alluded by @Rys. Also, it's helpful to think of the implementation as nested parallelism/dispatch where shaders *spawn* other shaders (may or may not contain inline RT) rather than a shader doing true function calls to other shaders ('callable' shaders) ...Is that what it sounds like, arbitrary ray casts called from shaders?
Recent advancements in spatiotemporal reservoir resampling (ReSTIR) leverage sample reuse from neighbors to efficiently evaluate the path integral. Like rasterization, ReSTIR methods implicitly assume a pinhole camera and evaluate the light arriving at a pixel through a single predetermined subpixel location at a time (e.g., the pixel center). This prevents efficient path reuse in and near pixels with high-frequency details.
We introduce Area ReSTIR, extending ReSTIR reservoirs to also integrate each pixel's 4D ray space, including 2D areas on the film and lens. We design novel subpixel-tracking temporal reuse and shift mappings that maximize resampling quality in such regions. This robustifies ReSTIR against high-frequency content, letting us importance sample subpixel and lens coordinates and efficiently render antialiasing and depth of field.
Can developers just use intersection shaders to test against curve primitives?What are the chances of adding support for intersecting curve primitives in the next iteration of DXR? Apple recently added it to Metal but it’s unclear whether it’s hardware accelerated. Optix supports it in CUDA.
Theoretically it will be faster to intersect curve primitives for stuff like hair which I believe currently uses highly tessellated lines & triangles.
Apparently, Nvidia HW implements motion blurred AABBs to support per-query customizable search radii for arbitrary primitives described in this patent ...What are the chances of adding support for intersecting curve primitives in the next iteration of DXR? Apple recently added it to Metal but it’s unclear whether it’s hardware accelerated. Optix supports it in CUDA.
Theoretically it will be faster to intersect curve primitives for stuff like hair which I believe currently uses highly tessellated lines & triangles.