[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43428] trunk/blender: Carve booleans library integration

Campbell Barton ideasman42 at gmail.com
Tue Jan 17 07:44:52 CET 2012


Keeping the old code around as a compile option for testing IMHO is
good so we can easily test any regression reports for a while (1-4
months).

However booleans is the sort of feature where you want to have one
good implementation,
having a `good` and another `crappy-but-might-work-in-some-cases`
option is weak IMHO.

I'd want to see really good evidence that this is needed before having
an 2 optional backends.

IMHO its a weak solution unless there is some intent to maintain the
older (currently unmaintained) booleans code, or someone can show
examples where the older code consistently wins out.

- Campbell

On Tue, Jan 17, 2012 at 4:42 PM, Matt Ebb <matt at mke3.net> wrote:
> Sounds really good!
>
> One thing though - is the old code going to be kept around? If it is, it
> would be good to make the choice of backend optional in the UI, and default
> old files to the old backend. If someone's tweaked the old modifier to give
> acceptable results, it could potentially cause an existing setup to freak
> out when the new backend is used giving different output and topology.
>
> IMO better to 'deprecate' by making it optional for a while, than change
> behaviour in all existing files with no recourse.
>
> cheers
>
> Matt
>
>
> On Mon, Jan 16, 2012 at 4:46 PM, Sergey Sharybin <sergey.vfx at gmail.com>wrote:
>
>> Revision: 43428
>>
>> http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43428
>> Author:   nazgul
>> Date:     2012-01-16 16:46:00 +0000 (Mon, 16 Jan 2012)
>> Log Message:
>> -----------
>> Carve booleans library integration
>> ==================================
>>
>> Merging Carve library integration project into the trunk.
>>
>> This commit switches Boolean modifier to another library which handles
>> mesh boolean operations in much stable and faster way, resolving old
>> well-known limitations of intern boolop library.
>>
>> Carve is integrating as alternative interface for boolop library and
>> which makes it totally transparent for blender sources to switch between
>> old-fashioned boolop and new Carve backends.
>>
>> Detailed changes in this commit:
>>
>> - Integrated needed subset of Carve library sources into extern/
>>  Added script for re-bundling it (currently works only if repo
>>  was cloned by git-svn).
>> - Added BOP_CarveInterface for boolop library which can be used by
>>  Boolean modifier.
>> - Carve backend is enabled by default, can be disabled by WITH_BF_CARVE
>>  SCons option and WITH_CARVE CMake option.
>> - If Boost library is found in build environment it'll be used for
>>  unordered collections. If Boost isn't found, it'll fallback to TR1
>>  implementation for GCC compilers. Boost is obligatory if MSVC is used.
>>
>> Tested on Linux 64bit and Windows 7 64bit.
>>
>> NOTE: behavior of flat objects was changed. E.g. Plane-Sphere now gives
>>      plane with circle hole, not plane with semisphere. Don't think
>>      it's really issue because it's not actually defined behavior in
>>      such situations and both of ways might be useful. Since it's
>>      only known "regression" think it's OK to deal with it.
>>
>> Details are there
>> http://wiki.blender.org/index.php/User:Nazg-gul/CarveBooleans
>>
>>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers



-- 
- Campbell


More information about the Bf-committers mailing list