Final
thoughts, implementing this has been a fun exercise, it is emotionally pleasing
to see theory in practice. I learnt a big deal of these from Dave Mount’s
lecture notes and Computational Geometry for the binary space partitioning
algorithm.
In
practice, however, this is entirely impractical. With a 30 frames per second
implementation it use up all the CPU time. When generating animation, we have
the clear the screen and draw again, which has poor performance in WPF. BSP
tree need to be built for each frame but not incrementally is also painful,
floating point errors add up, the list goes on and on.
So
this whole thing is really done for the fun. It could be altered to make a
great exercise for students in Computer Graphics so that they grasp the basic
theory, but don’t really use it.
A couple more meta-learning I had in this documenting exercise is that:
- Document the idea now! Documenting it two years from now is a painful exercise to reverse engineer those idea back from code, and
- Documenting the idea helps find bugs – case in point is the fourth case in the binary space partitioning tree.