Blender Git Commit Log

Git Commits -> Revision c069f01

Revision c069f01 by Sergey Sharybin (cycles_hair_bvh)
April 22, 2016, 15:06 (GMT)
Cycles: Proof-of-concept unaligned BVH traversal code

This a commit which breaks regular non-development work broken,
this is due to accumulated TODOs in the code, solving which is
not fully trivial and trying to stub them will lead to some
nasty code. That being said, only final renders are working
stable, perhaps only for hair tho (mixed hair and triangles
could behave flackey).

In any way, the code is mainly here to see how much traversal
steps we can save using oriented bounding boxes in hair BVH,
it is not optimized or vectorized. In fact, it does evaluation
of particular things multiple times. This means only traversal
steps pass could be used to quantify possible improvements.

But that being said some quick tests seems promising. Here is
a camera rays traversal heatmap for suzanne with 8000 hair:

Master: http://www.pasteall.org/pic/show.php?id=102281
Branch: http://www.pasteall.org/pic/show.php?id=102282

Btw, only regular BVH was modified to support OBB.

Now we need to work on vectorization and QBVH support to see
if we can beat performance of AABB by a measurable matter.

Commit Details:

Full Hash: c069f01c185ae7bb48c20348247e566a45bfb22c
Parent Commit: 086f115
Lines Changed: +303, -202

1 Added Path:

/intern/cycles/kernel/geom/geom_bvh_hair.h (+112, -0) (View)

8 Modified Paths:

/intern/cycles/bvh/bvh.cpp (+114, -16) (Diff)
/intern/cycles/bvh/bvh.h (+24, -3) (Diff)
/intern/cycles/bvh/bvh_build.cpp (+1, -1) (Diff)
/intern/cycles/bvh/bvh_node.h (+1, -0) (Diff)
/intern/cycles/kernel/geom/geom.h (+2, -0) (Diff)
/intern/cycles/kernel/geom/geom_bvh.h (+2, -0) (Diff)
/intern/cycles/kernel/geom/geom_bvh_traversal_hair.h (+37, -177) (Diff)
/intern/cycles/render/mesh.cpp (+10, -5) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021