[Bf-committers] Booleans

Theodore Schundler tschundler at scu.edu
Wed Sep 8 07:20:54 CEST 2004



Abstract:
Anyone know what exactly is going on the the booleans project on
projects.blender.org -- specifically should I continue work on my
implementation or is that project actually ready to go?

Details:
About two months ago, I E-Mailed Laurence of the Booleans project on
projects.blender.org, asking what as going on with it, and got no
response. Since I heard no response, and there appeared to be no
headway, I assumed development was abandoned or stuck. About a month
ago, frustration drove me to implement a boolean routine myself. Rather
than start in C, I started in Python as it would make the testing of the
algorithm faster (i.e. no need to recompile), and easier to share with
others. Today I saw jesterKinky on IRC mention a test build for
booleans. So now I'm wondering if the booleans project om
projects.blender.org isn't dead after all. And if it isn't dead, is my
take on booleans worth continuing work on?

My boolean algorithm works right now. If the other system at
projects.blender.org is actually near working, then I'd figure the
feature set is the deciding factor of what gets actually used in an
upcomming release. So here's all about mine:

The python version and a discussion is at:
http://www.elysiun.com/forum/viewtopic.php?t=29200

It supports four operations - union, intersection, difference, and
'cookie cutter' (for lack of a better name).

Cookie cutter cuts a mesh (adds verticies and edges along the
intersection loops), and selects the verticies that are inside the
cutting object. Then removes either the 'inside' or 'outside' parts or
neither (i.e. just adding new verticies and edges for extruding or
whatever later).

The meshes it produces have no doubled edges, and no more verticies than
needed. And in many cases it fills with quads (preffered by users as it
reduces visual noise). Soon the quad filling will even be better.

Optionally the second mesh can just be a set of 2D, non-filled shapes,
which will be extended infinitely along the shape's normal for the
operation. It's intended to he handy cutting out logos and such. Bezier
curves should probably be supported with this behavior too, but I
haven't coded that yet. (see the picture in page 3 of the elysiun thread
if that explaination didn't make sense)

It sounds like people are interested in using it as a cutaway effect for
games and visualizations. So, I plan to also have a special bounding box
and infinite plane mode accessible through the python API or something.
The simple box or infinite plane cases can be very quickly evaluated.

Also, due to requests, I'm also considering using the function as a base
for a non-destructive boolean effect (i.e. object's effect tab), for use
in animations and such.

Additionally, recently I've been playing around with the idea of it
calculating smooth intersections -- so for smooth / autosmoothed faces,
the intersection point will not be flat it the plane of the face. So
there are no atifacts of strange flat faces due to how they are
subdivided when rendering with smoothing on. (Though I'm not promising
that as a feature, just a deffinate maybe)

So that's that. Should I continue?


Ted / SpookyElectric

This message scanned for viruses and SPAM by GWGuardian at SCU (MGW2).


More information about the Bf-committers mailing list