Since I don’t expect to have time in the near future to work on V-HACD , I am writing this post to keep track of the performance improvements obtained after the latest optimizations I added. The source code is available here.
Experimental Evaluation
Table 1 compares the computation times (cf. Section "Machine description") of V-HACD 2.0 and V-HACD 2.2 obtained by using the configuration described below (cf. Table 2). These results show that V-HACD 2.2 is an order of magnitude faster than V-HACD 2.0. The gains are mainly obtained thanks to the convex-hull approximation (cf. Section "Updates"). The OpenCL acceleration provides 30-50% lower computation times when compared to the CPU-only version of V-HACD 2.2.
Experimental Evaluation
Table 1 compares the computation times (cf. Section "Machine description") of V-HACD 2.0 and V-HACD 2.2 obtained by using the configuration described below (cf. Table 2). These results show that V-HACD 2.2 is an order of magnitude faster than V-HACD 2.0. The gains are mainly obtained thanks to the convex-hull approximation (cf. Section "Updates"). The OpenCL acceleration provides 30-50% lower computation times when compared to the CPU-only version of V-HACD 2.2.
The code is still not fully optimized and more improvements could be expected!
V-HACD 2.0 (CPU only) | V-HACD 2.2 (CPU+GPU) | |
army_man | 650s | 65s |
block | 220s | 26s |
Bunny | 317s | 30s |
Camel | 388s | 34s |
Casting | 744s | 79s |
Chair | 408s | 42s |
Cow1 | 314s | 30s |
Cow2 | 349s | 32s |
deer_bound | 411s | 34s |
Parameter | Config. 1 |
resolution | 8000000 |
max. depth | 20 |
max. concavity | 0.001 |
plane down-sampling | 4 |
convex-hull down-sampling | 4 |
alpha | 0.05 |
beta | 0.05 |
gamma | 0.0005 |
delta | 0.05 |
pca | 0 |
mode | 0 |
max. vertices per convex-hull | 64 |
min. volume to add vertices to convex-hulls | 0.0001 |
convex-hull approximation | 1 |
Updates
V-HACD 2.2 include the following updates:
- OpenCL acceleration to compute the clipped volumes on the GPU
- Convex-hull approximation to accelerate concavity calculations
- Added local concavity measure to clipping cost calculation
- Changed command line parameters
To do
When I'll find time (probably not soon), I need to do the following:
When I'll find time (probably not soon), I need to do the following:
- Test the code and build executables for different platforms (i.e., Linux, Mac OS), and
- Update the Blender add-on to make it work with the new command line parameters.
Machine description
- OS: Windows 8.1 Pro 64-bit
- CPU: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz (8 CPUs), ~3.4GHz
- GPU: NVIDIA GeForce GTX 550 Ti
- Memory: 10240MB RAM