Game Development Reference
In-Depth Information
100
90
SLBVH
BVH
80
70
60
50
40
BVH
30
SLBVH
20
BVH
10
SLBVH
0
Stanford Bunny
Crytek Sponza
Welsh Dragon
Figure 1.5. Three different-sized models are compared (frames per second) using
SLBVH and regular stack-based BVH traversal: Stanford Bunny (depth = 18), Crytek
Sponza (depth = 21), and Welsh Dragon (depth = 23).
Two options might yield better results: building a two-level SLBVH or using the
surface area heuristic (SAH) as a partition scheme. The first one would produce
a “deeper” tree and primitives would disperse on more nodes. The second one
would increase tree quality and should be less complex to introduce in the current
construction algorithm.
The SLBVH suffers with heterogeneous models such as the Conference Room
and Crytek Sponza. Hundreds of small triangles are stored in leaf nodes, which
impacts enormously on traversal times. One interesting option would be using
the DirectX tessellator in order to partition large triangles into small ones. The
number of primitives would increase, but as shown with large models, the traversal
performance allows real-time frame rates.
1.5.2
Memory Footprint
The SLBVH is a stackless structure with less memory overhead than the ropes
scheme for the stackless kd-trees [Popov et al. 07]. For example, the Stanford
Bunny occupies 23 MB in Popov's SKD-Tree. As shown in Figure 1.6 , an SLBVH
of depth 18 uses only 8 MB of memory, which is enough to store this model due
to its small size. This is just one third of the SKD-Tree size. The Conference
Room and the Crytek Sponza models have similar characteristics. In the SKD-
Tree, the Conference Room occupies 85 MB, while the SLBVH just needs 64 MB.
Just as on the Bunny Model, SLBVH shows a better utilization of memory on a
stackless approach. However, the SLBVH has a bigger memory footprint than a
regular BVH. We are currently working on ways to lower this footprint for the
SLBVH.
 
 
Search Nedrilad ::




Custom Search