Commit Graph

2217 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
Sv. Lockal
efc6be2002 patch [#29856] UTF-8 copy&paste for Win32 GHOST 2012-01-16 15:00:28 +00:00
Brecht Van Lommel
92764260d7 Cycles: add option to cache BVH's between subsequent renders, storing the BVH on
disk to be reused by the next render.

This is useful for rendering animations where only the camera or materials change.
Note that saving the BVH to disk only to be removed for the next frame is slower
if this is not the case and the meshes do actually change.

For a render, it will save bvh files to the cache user directory, and remove all
cache files from other renders. The files are named using a MD5 hash based on the
mesh, to verify if the meshes are still the same.
2012-01-16 13:13:37 +00:00
Campbell Barton
917714acf7 svn merge ^/trunk/blender -r43345:43381 2012-01-15 09:16:39 +00:00
Campbell Barton
9c2a58a811 remove api from addon bl_info, was never used. 2012-01-14 13:02:20 +00:00
Campbell Barton
705f23064e svn merge ^/trunk/blender -r43294:43338 2012-01-13 01:39:57 +00:00
Brecht Van Lommel
b20a56b2ca Fix #29860: cycles musgrave scale input not working correct. 2012-01-12 17:13:56 +00:00
Dalai Felinto
de86d89a9f Cucumber - AA for blenderplayer and fullscreen
..............................................
svn merge ^/branches/soc-2011-cucumber -r 38968,38970,38973,39045,40845

Notes:
======
*  we replaced fullscreen by playerflag in DNA_scene.types.h. So no doversion here, I think this is a small reversion can't see any potential problem in forcuing users to re-check fullscreen. If the file is really old (<250) it will doversion though;

* (for after commit) it would be nice to gray out the width/height when desktop=True

* for a rainy day: it would be nice to have other ghost modes (e.g. screensaver) to support desktop + MSAA as well. It's not a huge deal given that I don't even know if anything else work (apart from windowed, fullscreen and embed) but it doesn't hurt to have it updated as well.

* there is something strange with outliner. I think space_outliner merge-info is not in sync with the ^/ folder. It's probably a wrong merge early in cucumber.

Commit Logs:
===========
# 40845 by dfelinto
remove desktop and fullscreen properties. They are both part of playerflag now
also I removed the fullscreen from the DNA completely. I don't think we need doversion that..

#39045 by kupoman
The Desktop option is now greyed out when fullscreen is not checked rather than disappearing from the UI completely.

#38973 by kupoman
Adding a checkbox to the UI to allow the full screen Blender Player to use the current desktop resolution instead of the resolution setting.

#38970 by kupoman
Multisampling now works in a fullscreen Blender Player.

#38968 by moguri
Committing a patch from Mitchell Stokes (Moguri) to include a setting in the UI for the Blenderplayer multisampling.
2012-01-11 20:53:22 +00:00
Campbell Barton
a7b0a11811 svn merge ^/trunk/blender -r43278:43294 2012-01-11 15:04:54 +00:00
Campbell Barton
b308e61312 svn merge ^/trunk/blender -r43220:43278 --accept postpone 2012-01-11 14:14:04 +00:00
Brecht Van Lommel
6ce92d09f7 Fix #29848: cycles not respecting dupli group visible layers, also exposed
DupliObject.hide property in API now.
2012-01-11 13:55:00 +00:00
Brecht Van Lommel
778774ba16 Fix: cycles CPU device not being used when it should be on some multi-GPU
configurations.
2012-01-11 13:18:06 +00:00
Alex Fraser
dcef7346eb Added mode-getting functions for GHOST under X11 (GNU/Linux).
Enabled xvidmode by default in cmake.
Patch approved by Campbell.
2012-01-11 12:28:31 +00:00
Alex Fraser
37fc8b4dbb This patch implements mode switching (resolution changing) for full-screen games.
Hopefully, this should be platform agnostic. Requires WITH_GHOST_SDL.
This patch contains code from Quake 2 and bzflag.
Tracker: [#29839]
2012-01-11 11:59:57 +00:00
Campbell Barton
def948cc28 patch [#29853] UTF-8 copy&paste for X11 GHOST 2012-01-11 00:34:42 +00:00
Brecht Van Lommel
d7932ceea8 Cycles: multi GPU rendering support.
The rendering device is now set in User Preferences > System, where you can
choose between OpenCL/CUDA and devices. Per scene you can then still choose
to use CPU or GPU rendering.

Load balancing still needs to be improved, now it just splits the entire
render in two, that will be done in a separate commit.
2012-01-09 16:58:01 +00:00
Brecht Van Lommel
47d9c6689b Cycles: show elapsed time for F12/background render. 2012-01-09 16:57:46 +00:00
Brecht Van Lommel
8f37c143ed Cycles: small tweak to checker texture, scale rather than add with epsilon,
looks a bit better on all sides of a mesh.
2012-01-09 16:57:26 +00:00
Brecht Van Lommel
8bfa48384d Cycles: checker texture node, patch by Thomas. 2012-01-08 14:55:43 +00:00
Campbell Barton
98bdf0274b svn merge ^/trunk/blender -r43183:43220 2012-01-08 13:09:09 +00:00
Brecht Van Lommel
49bc284d10 Fix #29760: cycles border render issue on 32 bit linux. 2012-01-05 22:41:46 +00:00
Campbell Barton
348f116fe5 svn merge ^/trunk/blender -r43124:43160 2012-01-05 11:23:24 +00:00
Brecht Van Lommel
049ab98469 Cycles: device code refactoring, no functional changes. 2012-01-04 18:06:32 +00:00
Campbell Barton
c0eec8f379 svn merge ^/trunk/blender -r43062:43085 2012-01-03 02:16:52 +00:00
Brecht Van Lommel
84437bb5e9 Fix #29695: cycles particle emitter not being properly hidden. 2012-01-02 19:44:13 +00:00
Brecht Van Lommel
1e96b5f284 Fix #29740: missing cycles viewport update with animated node socket values. 2012-01-02 19:44:07 +00:00
Brecht Van Lommel
2077b7e3b7 Fix #29755: cycles crash with array modifier that can produce material indices
that are out of bounds.
2012-01-02 15:51:49 +00:00
Alex Fraser
15dc3d4609 Fixes two crashers for games, with GHOST under SDL:
- Fixes SDL fullscreen mode for game engine (blenderplayer). Mode switching (resolution changes) not supported yet though.
- Fixes embedded game engine exit.
See patch tracker [#29748].
2012-01-02 12:35:06 +00:00
Alex Fraser
c2bb285750 Mode switching for GHOST under X11: adds the ability to change screen resolutions in the blenderplayer on GNU/Linux.
Code ported from Quake 2.
2012-01-02 12:25:14 +00:00
Campbell Barton
b64f352270 svn merge ^/trunk/blender -r43033:43062 2012-01-02 02:57:36 +00:00
Brecht Van Lommel
b5595298d3 Cycles code refactoring: change displace kernel into more generic shader
evaluate kernel, added background shader evaluate.
2011-12-31 15:18:13 +00:00
Campbell Barton
78a4e24614 svn merge ^/trunk/blender -r43009:43033 2011-12-31 12:03:36 +00:00
Sergey Sharybin
bac6757ea0 Fix for compilation error when compiling dualcon with mingw 2011-12-31 11:08:04 +00:00
Campbell Barton
ba8d1b940f option to build without remesh modifier for cmake and scons 2011-12-31 03:34:44 +00:00
Campbell Barton
65c74f1570 workaround for error building with clang and quiet some warnings building without libmv. 2011-12-31 03:01:18 +00:00
Nicholas Bishop
289c8b5758 Add remesh modifier (dual contouring).
This patch adds a new remeshing modifier. The algorithm is based on
the paper "Dual Contouring of Hermite Data", and the implementation
was contributed to Blender by Dr. Tao Ju.

The contributed code is in intern/dualcon, and was modified to compile
under gcc and work on 64-bit systems. Files not needed for Blender
were removed and a small C wrapper was added in order to interface it
with Blender. The rest of the patch is just standard modifier stuff.

Reviewed by Sergey, code review link:
http://codereview.appspot.com/5491053/

The remesh icon was contributed by Zafio:
http://blenderartists.org/forum/showthread.php?240751-Request-for-modifier-icon/page2.
Thanks to everyone in that thread for the icon proposals and
discussion.

Documentation and examples on the Blender wiki:
http://wiki.blender.org/index.php/User:Nicholasbishop/RemeshModifier

In case the history is needed for anything, check the remesh-modifier
branch of this git repository:
https://gitorious.org/~nicholasbishop/blenderprojects/nicholasbishop-blender
2011-12-30 21:11:40 +00:00
Campbell Barton
50ca81154e svn merge ^/trunk/blender -r42973:42991 2011-12-30 09:23:06 +00:00
Campbell Barton
6d965f4493 style edits for function declarations 2011-12-30 07:55:15 +00:00
Brecht Van Lommel
e32a117c8b Fix: cycles camera dof object with non-uniform scale gave incorrect distance. 2011-12-29 23:34:25 +00:00
Campbell Barton
6b587bc5a1 svn merge ^/trunk/blender -r42957:42967 2011-12-29 06:44:51 +00:00
Dalai Felinto
b4c95833ab bugfix: [#29711] Cycles - HSV Node - Hue Change Bug
* Adding hue instead of removing it.

fmod doesn't work as % when it comes to negative numbers:
fmod( 1.3, 1) ==  1.3 % 1 == 0.3
fmod(-0.3, 1) != -0.3 % 1
2011-12-29 05:40:48 +00:00
Campbell Barton
ea36d4eb22 svn merge ^/trunk/blender -r42953:42957 2011-12-29 01:58:47 +00:00
Campbell Barton
85a97f64a7 add UNLIKELY / LIKELY util defines to help optimize iterators that are called a lot, only defined for gcc at the moment.
also some cmake formatting edits.
2011-12-29 01:46:58 +00:00
Campbell Barton
cb8090d4c8 svn merge ^/trunk/blender -r42940:42953 2011-12-28 22:55:45 +00:00
Brecht Van Lommel
9d3f5ea334 Fix #29715: cycles and glsl normal node not working correct. 2011-12-28 19:42:22 +00:00
Brecht Van Lommel
c9830549ea Fix #29689, #29702: cycles render crash with node setups with non-cycles nodes,
after group socket refactoring.
2011-12-28 19:42:08 +00:00
Campbell Barton
f63e33303f svn merge ^/trunk/blender -r42871:42882 2011-12-26 21:39:16 +00:00
Nicholas Bishop
50cc053690 Add a glClear() in GHOST/X11 between creating the GLX context and
displaying the window.

This fixes a brief flash of random data on Blender startup on my
system (Ubuntu 11.10, ATI Mobility Radeon HD 5650, Gallium drivers.)

Code review link:
http://codereview.appspot.com/5505071/
2011-12-26 19:12:13 +00:00
Campbell Barton
2cd5436a81 svn merge ^/trunk/blender -r42839:42871 2011-12-25 21:31:19 +00:00
Thomas Dinges
a06358570e Cycles Test App:
* Added some new integrator parameters to the xml reading. 
* Added ability to specify window width/height, if not set it uses film/camera width/height. 
* Added back the xml exporter script from cycles branch, with modifications to hock up into the UI. To use it, copy the script into 2.61/scripts/startup.

Note: This is intended for developers for now, but the standalone Cycles app has potential to be used as benchmark for example.
2011-12-25 13:34:18 +00:00