Commit Graph

63 Commits

Author SHA1 Message Date
Sergey Sharybin
e81f2853c8 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

Special thanks to:

- Ken Hughes: author of original carve integration patch.
- Campbell Barton: help in project development, review tests.
- Tobias Sargeant: author of Carve library, help in resolving some
                   merge stoppers, bug fixing.
2012-01-16 16:46:00 +00:00
Campbell Barton
8391f534ab remove WITH_OGG define, its not used anywhere. 2012-01-10 13:33:53 +00:00
Campbell Barton
ba8d1b940f option to build without remesh modifier for cmake and scons 2011-12-31 03:34:44 +00:00
Sergey Sharybin
7bc43f3693 Added WITH_BF_LIBMV to command line options 2011-12-26 14:52:21 +00:00
Thomas Dinges
b7649ea757 Cycles / CUDA Kernel compile:
* Added option "WITH_BF_CYCLES_CUDA_THREADED_COMPILE" for the people who have much RAM (8 or more) and can compile several kernels at the same time. If enabled, it uses the general BF_NUMJOBS flag.
* The option is off per default.
2011-12-06 16:00:57 +00:00
Brecht Van Lommel
45de380771 Cycles
* Compile all of cycles with -ffast-math again
* Add scons compilation of cuda binaries, tested on mac/linux.
* Add UI option for supported/experimental features, to make it
  more clear what is supported, opencl/subdivision is experimental.
* Remove cycles xml exporter, was just for testing.
2011-12-01 16:33:21 +00:00
Thomas Dinges
366554d303 Scons / Cycles:
* Add dummy WITH_BF_CYCLES_BINARIES to scons, to be able to copy the .cubin kernels from cmake and have it work.
2011-11-24 19:22:34 +00:00
Campbell Barton
8c6057d5e3 exclude addons_contrib/ for release builds. 2011-11-17 19:43:59 +00:00
Lukas Toenne
11c83d8432 Ocean Sim modifier patch
by Matt Ebb, Hamed Zaghaghi

This adds a new Modifier "Ocean" to simulate large-scale wave motion.
Details can be found in the wiki documentation [1], the project homepage [2] and the patch tracker [3]

The modifier is disabled by default for now. To enable it, the WITH_OCEANSIM (cmake) / WITH_BF_OCEANSIM (scons) flags have to be set. The code depends on fftw3, so this also has to be enabled.

[1]
http://wiki.blender.org/index.php/Doc:2.6/Manual/Modifiers/Simulation/Ocean

[2]
http://www.savetheoceansim.com

[3]
http://projects.blender.org/tracker/?group_id=9&atid=127&func=detail&aid=28338
2011-11-13 12:17:27 +00:00
Brecht Van Lommel
5b1a42cb17 Cycles:
* Fix excessive fireflies in Velvet BSDF (patch by David).
* Disable some unused SSE code
* Remove RTTI disabling flags for now, this is giving some compile issues and
  was only needed of OSL which we're not using yet.
2011-11-10 14:32:16 +00:00
Sergey Sharybin
f09f5eec57 - Added options to link staticly against oiio/boost
- Also changed buildbot settings so now linking should happe staticly
2011-11-09 19:02:42 +00:00
Nathan Letwory
f0adbb7746 Fix ${} var usage. Was missing BF_OIIO and BF_BOOST init.
Noticed still missing: OSX file copying (cycles .py files, kernel files, licenses).
2011-11-09 17:22:55 +00:00
Nathan Letwory
c9bca51e76 Add compiles support for Cycles.
No CUDA compiling yet, will be added later.
2011-11-08 20:40:02 +00:00
Sergey Sharybin
27d42c63d9 Camera tracking integration
===========================

Commiting camera tracking integration gsoc project into trunk.

This commit includes:

- Bundled version of libmv library (with some changes against official repo,
  re-sync with libmv repo a bit later)
- New datatype ID called MovieClip which is optimized to work with movie
  clips (both of movie files and image sequences) and doing camera/motion
  tracking operations.
- New editor called Clip Editor which is currently used for motion/tracking
  stuff only, but which can be easily extended to work with masks too.

  This editor supports:
  * Loading movie files/image sequences
  * Build proxies with different size for loaded movie clip, also supports
    building undistorted proxies to increase speed of playback in
    undistorted mode.
  * Manual lens distortion mode calibration using grid and grease pencil
  * Supervised 2D tracking using two different algorithms KLT and SAD.
  * Basic algorithm for feature detection
  * Camera motion solving. scene orientation

- New constraints to "link" scene objects with solved motions from clip:

  * Follow Track (make object follow 2D motion of track with given name
    or parent object to reconstructed 3D position of track)
  * Camera Solver to make camera moving in the same way as reconstructed camera

This commit NOT includes changes from tomato branch:

- New nodes (they'll be commited as separated patch)
- Automatic image offset guessing for image input node and image editor
  (need to do more tests and gather more feedback)
- Code cleanup in libmv-capi. It's not so critical cleanup, just increasing
  readability and understanadability of code. Better to make this chaneg when
  Keir will finish his current patch.

More details about this project can be found on this page:
    http://wiki.blender.org/index.php/User:Nazg-gul/GSoC-2011

Further development of small features would be done in trunk, bigger/experimental
features would first be implemented in tomato branch.
2011-11-07 12:55:18 +00:00
Thomas Dinges
563becafb9 Scons:
* Basic support for OpenImageIO and Boost libraries
* Path to libraries added for win32/64-vc-config.py, still commented out.
2011-11-03 12:40:15 +00:00
Thomas Dinges
6ea6e992ba Scons:
* Minor cleanup
2011-11-03 12:24:29 +00:00
Thomas Dinges
f837b46a2b Modifier compilation tweaks (Blender conference commit)
* Fluid compilation: Inverse the compile flag from DISABLE_ELBEEM to WITH_MOD_FLUID for consistency. (scons/cmake)
* Use WITH_BF_FLUID in your user config (scons) 

* Add support for scons to disable build with Decimate and Boolean modifier. 
(WITH_BF_DECIMATE and WITH_BF_BOOLEAN)
2011-10-29 23:56:07 +00:00
Campbell Barton
78a8f8a4b1 - remove release/bin/.blender/.bfont.ttf, we have ./release/datafiles/bfont.ttf already, and its not used anymore.
- removed scons WITH_BF_FREETYPE
2011-10-21 03:16:01 +00:00
Joerg Mueller
07ad83a439 * Removing libsamplerate from build systems
* Enabling OpenAL for scons win64-vc in default config; Nathan or Sergey: please update the build bot to build with OpenAL!
2011-10-02 17:09:39 +00:00
Campbell Barton
83a2f02a78 cleanup endian handling
- define __BIG_ENDIAN__ or __LITTLE_ENDIAN__ with cmake & scons.
- ENDIAN_ORDER is now a define rather than a global short.
- replace checks like this with single ifdef: #if defined(__sgi) || defined (__sparc) || defined (__sparc__) || defined (__PPC__) || defined (__ppc__) || defined (__hppa__) || defined (__BIG_ENDIAN__)
- remove BKE_endian.h which isn't used
2011-09-19 08:02:17 +00:00
Jens Verwiebe
d8394b9d67 set OSX default python to static 2011-08-31 14:46:27 +00:00
Jens Verwiebe
5e8d191930 OSX/scons: fix compile with static python, my patch was a bit outdates, sorry 2011-08-31 14:15:14 +00:00
Sergey Sharybin
36f20f162c Fix #28154: linux3-config.py doesn't exist
Change OURPLATFORM from "linux<major_version>" to simple "linux".
Since new policy for linux kernel versions that major version in
platform doesn't make much sense for building rules so the same
rules could be used for both of linux2 and linux3 now/

Tested on both of linux2 and linux3 systems.
2011-08-21 13:31:46 +00:00
Sergey Sharybin
c9216e390c Commiting patch from jensverwiebe for NDOF support on OSX 2011-08-11 15:59:19 +00:00
Thomas Dinges
fad243a4bf Mac Compile fix for ndof, by jensverwiebe. Thanks! 2011-08-07 22:48:04 +00:00
Campbell Barton
577293569a scons patch from jensverwiebe
fix a silly bug in version detection, - added an OSX sdk-check

jensverwiebe, needs to get commit access!, but will apply his patches for now.
2011-08-07 16:54:40 +00:00
Sergey Sharybin
2c4357c1e1 - Move list of FFmpeg DLLs to be installed from SConstruct
to conficuration variable BF_FFMPEG_DDL.
  This would allow to use different FFmpeg in buildbot.
- Added some 3DMOUSE variables to list of command line options.
  Now 3dmouse related-settings can be set from command line.
2011-08-03 10:50:21 +00:00
Nathan Letwory
5c36b75324 Simple argument to be able to explicitely tell the bitness you want to build Blender in.
python scons\scons.py BF_BITNESS=32
python scons\scons.py BF_BITNESS=64

So from now on for Windows you don't have to run a specific win32 or win64 Python version
to get the Blender version you want. If you omit the BF_BITNESS flag the bitness as per
Python version will be used as before.

Note that this is an argument, so works *only* on the command-line, not in your user-config.py
2011-08-02 18:33:39 +00:00
Sergey Sharybin
13eefec9dd More flexible configuration for 3dmouse library for scons.
Needed for release environment and buildbot.

Buildbot rules would be updated with next commit after
environment will be tested.
2011-08-02 17:59:43 +00:00
Jiri Hnidek
2e860a3e85 - Blender could be build with scons again. 2011-08-02 07:02:40 +00:00
Sergey Sharybin
9eb1b26312 Fix for recent GHOST SDL commit.
SCons rules haven't been changed to deal with new option.
2011-07-12 18:39:46 +00:00
Brecht Van Lommel
06ca703737 BuildBot: various changes to support building branches. 2011-06-03 20:44:23 +00:00
Brecht Van Lommel
7b4aac3e34 Fix #27481: windows uninstaller could remove files unrelated to blender
when installing to a folder that already existed. Now the uninstaller
will remove only the files it has installed, and leave any other files
in the installation directory intact.
2011-06-01 13:13:55 +00:00
Brecht Van Lommel
d369a6aaaf Windows installer and Path changes, fixing various issues:
* Windows installer not working for non-admin users and multiple users
* Addon scripts not installing next to user configuration
* Portable install not being taken into account in all places

The main problem was the windows installer was installing system scripts in
AppData next to the user configuration directory, which is not shared between
users. Now these are installed in ProgramFiles, and only addon scripts added
by the users go to AppData.

On all platforms, addon scripts were sometimes getting installed between
system scripts, because the scripts folder in the executable directory was
given precedence over the user configuration folder, that is no longer done
now. So addons now behave like user configuration, they are preserved even
if you download a newer build of the same blender version.

If you have an installation of 2.57 on windows, the addon install location
will not change until we do the version bump to 2.58, to avoid conflicts with
the existing the installed 2.57 version.

The old behavior of giving precedence to the local folder was done to support
portable install, where all configuration is written to the local folder. This
is now implemented differently: if and only if a "config" folder exists in the
local folder, portable install will be assumed, and files will only be written
to that local folder.
2011-05-27 09:57:53 +00:00
Brecht Van Lommel
b434e7f933 LCMS code removed, was an experiment but never finished. 2011-05-16 13:34:42 +00:00
Sergey Sharybin
8941cc626a Option to use jemalloc when building with scons under linux.
Disabled by default.
2011-05-13 12:08:34 +00:00
Joseph Eagar
088899236b =trunk=
Recommitted eltopo collision code (but disabled by default)
with Genscher's permission.

To use, you need to install liblapack and libblas
2011-05-01 21:39:13 +00:00
Campbell Barton
a42bf45333 revert Joseph Eagar's eltopo commits r36073, 36075 (& some minor edits)
discussed with Janne, Ton, Nathan and we agreed this kind of change at least needs discussion with module owners.

Its also too close to release to be making these kinds of changes.

commands used:

  # reverse merge
  svn merge -r36073:36072 .
  # for some reason this gave a lot of property changes
  svn revert `svn st | grep "^ M" | awk '{print $2}'`
  # reverse merging didn't work here, removing while dir.
  svn rm extern/eltopo/


  # manually fixed conflict in
  # ./source/blenderplayer/CMakeLists.txt
  #
  # also manually removed 2 lines from
  # ./CMakeLists.txt
2011-04-12 11:09:10 +00:00
Joseph Eagar
0a60bc14d6 =cloth collisions=
Plugged the eltopo library into the cloth solver.
I was playing with it earlier, and it's so easy to
use I decided to quickly put it in (trunk's) cloth.

See http://www.cs.ubc.ca/labs/imager/tr/2009/eltopo/eltopo.html
.  The authors are on the bleeding edge of continuous collision
detection (one of them did ILM's cloth sim).  
I
don't really have to time to plug it into softbody, particles,
bullet, fluid, etc, but doing so would be pretty straightforward.
I'll leave that up to someone else.

To use, turn on USE_ELTOPO (in cmake) or WITH_BF_ELTOPO in scons.
2011-04-09 23:19:11 +00:00
Sergey Sharybin
90326c4c6e buildbot:
- Remove packed to buildbot_archive.zip archive file to keep scons install
  directory as clean as possible (if i understood correct, this file isn't
  actually needed in the future, so we could remove it just after packing rather
  than cleaning install directory before packing as it's done for cmake)
- No need in scripts installation for linux slaves when preparing archive
2011-04-02 21:11:22 +00:00
Sergey Sharybin
485229b7db Initial support of linux 32/64 bit for buildbot:
- Use the same config as we're using for release builds
- Added stipping (maybe it should be generalized)
- Not software gl packing, bot would be easy to add

Note, that you should have special environment to create
proper linux builts (which would work for everybody)
2011-04-01 21:22:19 +00:00
Nathan Letwory
e4ef822ecd build target was changing into wrong directory. 2011-03-29 12:10:41 +00:00
Nathan Letwory
e8dc841199 Version and platform name were in wrong order. 2011-03-22 12:54:13 +00:00
Nathan Letwory
d2a721cfd5 Add buildslave target for builder.blender.org integration 2011-03-22 10:26:53 +00:00
Ken Hughes
f4e16def46 Build system
------------
Allow BF_PYTHON_ABI_FLAGS to be specified on the command line for scons.
2011-03-14 16:10:35 +00:00
Sergey Sharybin
cf8cc39d4c Make BF_PYTHON_ABI_FLAGS a scons option. Default flags are empty.
Made changed to linux2-config and freebsd*-config. Windows/MacOS are kept
unchanged.

I'm not sure which flags should be used for freebsd systems, so flags for
them also kept empty. Maintainers of this platform, please check which
flags should be used and make changes to rules.
2011-03-13 09:29:47 +00:00
Campbell Barton
e8c322ee85 Py/RNA API: WITH_PYTHON_SAFETY
compile time option which enables extra safety checks.
since this is noticeably slower I rather not enable by default yet.
2011-03-03 12:00:35 +00:00
Campbell Barton
848d60caee Move blender version info into BKE_blender.h so we only have the info in one place and so package building scripts can extract it in a more usable way.
this also means we can have a version string like '2.56a-beta' without using buildinfo.

release/VERSION was only used by scons, NSIS installer.

Possibly helps to fix bug [#26062] too.
2011-02-21 04:45:47 +00:00
Nathan Letwory
708df39935 Check the os.environ at the start of the build process.
Print any variable that contains a value with non-ascii
characters, then abort build.
2011-02-18 09:39:15 +00:00
Nathan Letwory
c5613de2d5 Remove redundant VC_REDIST code, since it's not used anymore. 2010-12-07 08:37:00 +00:00