Plough Logo Plough - Projects
Blender Boolean Rewrite
Home About Projects Blender 3Dlabs
Blender Official LDRAW Site Lightflow
News on the Project
6.28.03 - The Beginning

Today I started learning about BSP trees in order to familiarize myself with the methods that Blender currently uses for Boolean operations. It seems that BSP trees will not be the way to go for this project.

I also realized why Blender's CSG operations do not work well for doing a "knife" operation; it's fairly obvious after a moment's thought (and a smidge of knowledge about binary space partitioning). BSP (in this case) divides 3-space into two half-spaces using a plane. Since Blender merges two BSP trees in a boolean operation, it must generate a BSP tree for the object to be knifed, and the knife plane. Here the problem emerges: A plane cannot be effectively parsed by a BSP tree algorithm; the plane is the shape that should be doing the subdivision.

CONCLUSIONS: If it doesn't bloat the code too much, a special case should be added to the boolean operation menu to handle an object containing planes, or add a separate knife tool.

Announcements and Information
Check back often; it's the summer so I'll be able to do a ton of work on this! Don't bother checking the LDRAW page; Blender's Python implementation is getting turned upside down.
Copyright 2003 Matthew H. Plough