algorithm choice back

Board: Home Board index Raytracing General Development

(L) [2015/05/14] [tby dmt] [algorithm choice] Wayback!

Is there a current consensus in the year 2015 on the most performant algorithm + data structure for ray acceleration, traversal, and intersection on gpu?
Assumptions:
- Cuda, Windows
- OpenGL 4.x+ gpu
- dynamic scene geometry (topology consistent but could be morphing etc, like an animated character)
- some static scene geometry could be marked
- i can separate ray intersection from material resolution.  i just want the ray hits and some data about the local geometry. (e.g. position, normal, uv, surface derivatives)
- scene geometry fits in gpu memory
Is there a generally accepted "go-to" data structure that everyone has settled on now?
(L) [2015/05/18] [tby papaboo] [algorithm choice] Wayback!

The bounding volume hierarchy in one of its many forms.
 Memory requirements can be determined before construction, so no dynamic memory allocations during construction. Very fast to construct if you choose to use Morton Codes. Can be refitted to dynamic data instead of requiring a complete reconstruction. (Do perform a partial/complete reconstruction once in a while though, otherwise doom on your performance.) You can construct a high quality BVH over static scene data, a low quality one on dynamic and combine them via the root node. If this is better strategy then constructing an optimal one once, refitting and doing partial updates I have no idea.
As NVIDIA uses the (Tr|L|S)BVH for OptiX, you can find a lot of papers on the subject on their research page.
(L) [2015/05/18] [tby dmt] [algorithm choice] Wayback!

Thanks for the reply.  
I guess what I was asking for was *which* gpu BVH implementation (data structure, construction and traversal) is recommended for the listed assumptions.  Is there a single reference implementation or paper somewhere, that is generally agreed upon as "the best" right now?  (Perhaps optix TrBVH?)
(L) [2015/05/19] [tby papaboo] [algorithm choice] Wayback!

OptiX TrBVH is probably the current state-of-the-art for GPUs. What I don't know though is if they build it on top of a 'normal' BVH or an MBVH.
Either way. The optimization of treelet restructuring should be applicable to both, so maybe you can try it out. [SMILEY ;)]
(L) [2015/05/21] [tby rtpt] [algorithm choice] Wayback!

Hallo papaboo, what i have seen is, that the quality of bvh depends strongly
on the scene itself.
(L) [2015/05/26] [tby papaboo] [algorithm choice] Wayback!

That's true for any acceleration structure though.
(L) [2015/05/26] [tby papaboo] [algorithm choice] Wayback!

Regarding general BVH quality [LINK https://mediatech.aalto.fi/~timo/publications/aila2013hpg_paper.pdf On Quality Metrics of Bounding Volume Hierarchies] might be an interesting read.
(L) [2015/05/31] [tby atlas] [algorithm choice] Wayback!

Depending on your usage, keep in mind some structures/methods are patented (nVidia likes to do this)

back