Commit Graph

53375 Commits

Author SHA1 Message Date
Mitchell Stokes
fe05f97841 BGE: Multi-threading animation updates and skinning.
This required BL_ArmatureObject to have tighter control over armatures and poses.
Also, (Blender) armature objects are now copied instead of shared between
BL_ArmatureObjects to avoid race conditions. Also, due to the armature copy,
shape key drivers need a bit of extra fiddling to get the correct armature copy.

Initially OpenMP was used for threading, but then BLI_task was used due to being
less compiler dependent.

This commit also places time spent on skinning updates in the Animation
profiler category (was previously under the Rasterizer category).
2014-04-06 16:30:59 -07:00
Campbell Barton
be8b4b8b0c Todo T36849: support XDG thumbnail management standard 2014-04-07 08:43:46 +10:00
brita
1194037327 blenderplayer - Reviewed some command line options and the respective help
Doubts: are written as comments in the code
Current Problems:
 - stereo modes sometimes have different names and are ordered differently everywhere (blender properties panel names and tooltips, blenderplayer cmndline)
 - dome mode as several options, but can only take one at a time, like -D mode bla -D tilt X -D ...
 - gameoptions are also given one at a time, like above, but with an assignment -g option = X  . This is inconsistent.
 - gameoptions need to be reviewed and docummented
 - parent to window (-i) is useful for what? (there is no wiki on this either)
 - there is no support for verbose options like --help (blender itself supports it)

Reviewers: dfelinto, moguri

CC:

Differential Revision: https://developer.blender.org/D312
2014-04-06 14:38:15 -07:00
Bastien Montagne
07f8c5c3b6 Better code for (bone axis + roll) to mat
See T39470 and D436. Code by @tippisum, with some minor edits by @mont29.

Tested with various rigs, including Rigify, CGcookie flex rig, and gooseberry/pataz caterpillar.

Riggers, please test it, no change expected in behaviour.

Reviewers: aligorith

CC: tippisum

Differential Revision: https://developer.blender.org/D436
2014-04-06 19:15:50 +02:00
Bastien Montagne
959ec27ac9 Install_deps.sh: tweaks to support new LLVM-3.4.
Issue is, looks like Debian testing's graphic backend now uses LLVM-3.4,
which conflicts with 3.3 in Blender and makes it crash.

So add support to handle 3.4, by both allowing to force a specific version for some libs,
and switching back to head of official repo for OSL.
2014-04-06 17:50:50 +02:00
Bastien Montagne
ae792e930c Fix T39479: Transform mouse constraint fails in some situations.
Some more float precision issue...
2014-04-06 11:11:56 +02:00
Campbell Barton
43fb105ff1 Move LIKELY/UNLIKELY into header 2014-04-06 17:25:50 +10:00
Campbell Barton
43a201662a Guarded Alloc: use UNLIKELY for debug memset 2014-04-06 12:58:10 +10:00
Pablo Vazquez
1bd3922b3a Fix error when enabling Mist pass but there was no world. Can't find mist settings, so check for World first. 2014-04-05 17:52:06 -03:00
Monique Dewanchand
49d1c8d8c6 Fix issue for OPENCL problem on Macosx 10.9.2 2014-04-05 21:33:44 +02:00
Antony Riakiotakis
f6d5212c3a Fix sculpt brushes stuck to drag dot or anchored mode
Was own mistake after RNA enu refactoring.
2014-04-05 20:30:47 +03:00
4550731963 RNA: optimization to avoid malloc for iterators.
This mostly helps making Cycles scene synchronization a bit faster.
2014-04-05 14:50:17 +02:00
cb0520f79a Fix for auto detect homogeneous volume with OSL, forgot to include this file in last commit. 2014-04-05 14:49:50 +02:00
Campbell Barton
2a82b8ade5 Math Lib: add power of 2 min/max for unsigned ints 2014-04-05 21:54:20 +11:00
Thomas Dinges
95ac6bc9e5 Fix T39606, SSS and Volume nodes were showing warning, even if CPU was used. 2014-04-05 12:49:30 +02:00
Thomas Dinges
53f6057aed Cycles UI: Refactor cpu checks into a use_cpu() function. 2014-04-05 12:49:29 +02:00
Campbell Barton
1e504bc123 Dyntopo: minor optimizations for edge queue 2014-04-05 16:30:55 +11:00
Campbell Barton
61c73b49d3 Remove redundant call to CustomData_get_offset 2014-04-05 12:32:25 +11:00
Campbell Barton
19b7bb5975 Optimize mempool: round chunk size to powers of 2, account for slop-space
This helps to reduce memory fragmentation.
2014-04-05 12:14:05 +11:00
Campbell Barton
af59ee340f Mempool: remove BLI_MEMPOOL_SYSMALLOC, MEM_* allocs are more efficient now 2014-04-05 12:14:05 +11:00
Antony Riakiotakis
321c35ec6c Solve issue with dyntopo collapse.
It was possible to delete a masked vertex during collapsing. Looks like
this is one of the causes for hangs during masked flood filling.
2014-04-05 02:31:36 +03:00
Campbell Barton
70353f833a Optimize mempool: replace double linked list with single for memory chunks 2014-04-05 09:49:13 +11:00
Bastien Montagne
cfbfb5e626 Great, now Debian Jessie as well can cause libyaml-cpp version mismatch... Update warning message! 2014-04-04 22:45:23 +02:00
Bastien Montagne
6ff0fcdae7 Some stupid systems give limited powers to sudo... So add a --no-sudo option disabling usage of sudo!
Note in this case, script becomes more or less useless, just spit out names of packages to install...

Requested by Dalai Felinto over IRC.
2014-04-04 22:38:49 +02:00
Tamito Kajiyama
2dedf2a4e6 Missing file in commit 12302011d6207a60b24d0cae71a88df0384bc5da. 2014-04-04 23:47:31 +09:00
Tamito Kajiyama
62bf22e27b Freestyle: Removed SVertex _curvatureFredo and _directionFredo and their getter/setter methods..
These data elements are undocumented and of little use.  For now they are commented out
in the implementation in favor of less memory consumption, and a very limited support for
these data components in the Python API was just removed (should be easy to recover).
2014-04-04 23:47:31 +09:00
Tamito Kajiyama
685d785c98 Freestyle: Fix for class definitions of 0D/1D functions (functors).
Symbol 'real' is an alias of double and is subject to future change, while the interface of
0D/1D functions is part of the stable Freestyle Python API.  So all occurrences of this type
in the class definitions were replaced with double.
2014-04-04 23:47:30 +09:00
Sergey Sharybin
392065ed40 Fix for typos in array size 2014-04-04 18:03:17 +06:00
Sergey Sharybin
41e2dc7746 Fix for mask slide operators didn't work with LMB selection 2014-04-04 17:23:45 +06:00
Sergey Sharybin
1aa753ce88 Mask spline slide didn't respect auto-key 2014-04-04 17:19:36 +06:00
Sergey Sharybin
2a62a06e86 Mask spline slide: holding Ctrl will make handles free 2014-04-04 17:08:35 +06:00
Jens Verwiebe
8ff74bed9b Scons/cycles: fix header distribution for geom 2014-04-04 13:07:32 +02:00
Sergey Sharybin
0579a6e209 Followup to the previous commit: forgot to tweak handle type 2014-04-04 16:49:50 +06:00
Sergey Sharybin
68bc675af4 Mask spline segment slide improvement
This implements weighted slide of second handle, just the
same exact way as it works in Gimp.
2014-04-04 16:44:09 +06:00
Campbell Barton
7cb90a611f Optimization for mempool initial chunk allocation
Almost all pools allocated 2 chunks on initialization,
every element needed to be added to the free-list which
would never be used for small pools.

Now allocate only one, gives minor speedup for some bmesh operations.
2014-04-04 21:25:08 +11:00
Sergey Sharybin
896725e0bb Mask point slide: clean-up of SlidePointData structure 2014-04-04 15:11:39 +06:00
Sergey Sharybin
31c73586d6 Maks point slide: get rid of jump when you press shift 2014-04-04 15:03:14 +06:00
Sergey Sharybin
6cf86f2725 Mask point slide: remove commented out code
The code wasn't needed for quite a while already, so
let's get rid of it.
2014-04-04 14:36:41 +06:00
Sergey Sharybin
884b9e27f6 Mask curvature slide: reduce jumps on slide
Also correct wrong logic around tweaking handles type.
2014-04-04 14:34:11 +06:00
Sergey Sharybin
71a2ff12a8 Fix crash happening in DAG_pose_sort() due to threading issues
This function used ugly hack with static variable which was
preventing some type checks in DAG nodes. Using this variable
form multiple threads is not considered safe, apparently.

Solved by moving this variable inside the DAGForest structure.
so it's global for the graph now, but different graphs does not
run into conflicts.

This required passing the forest to some functions, which doesn't
look so much nice, but don't want to spend time on making this
code look beautiful because it is really to be replaced by the
new dependency graph.

This is really bad bug actually which is must go to 'a'.
2014-04-04 12:46:08 +06:00
Campbell Barton
45b02cee47 Code cleanup: no need to use calloc when memory is initialized after
also replace AT with __func__ since AT expands the full pathname
2014-04-04 14:26:01 +11:00
Campbell Barton
2bba04f1b0 Cloth: replace EdgeHash with EdgeSet 2014-04-04 14:15:57 +11:00
Campbell Barton
602629502c Clicking outside menus wasn't closing when opened from non menu popups 2014-04-04 07:33:42 +11:00
Thomas Dinges
d923720312 Cycles: Disable Branched Path on all GPUs for now, until we separate the cubins.
SM_20 fails now as well, reported by Zanqdo in IRC.
2014-04-03 22:18:40 +02:00
bd03e4cfe8 Cycles volume: detect homogeneous volume automatically in common cases.
In practice this means that if you don't connect a texture to your volume nodes
it will figure that out and render the node faster, rather than you having to
specify it manually.

Main weakness is custom OSL nodes where we have to assume it is heterogeneous
because we don't know what kind of data the node accesses.
2014-04-03 22:13:05 +02:00
Sv. Lockal
ab32a1807d Cycles: SSE optimization for Voronoi cells texture
Gives 5-6% speedup for Caterpillar_PatazStudio.blend.

Reviewed By: brecht, dingto

Differential Revision: https://developer.blender.org/D419
2014-04-03 23:35:10 +04:00
Sv. Lockal
c019ae5ea3 I18N: add missing lines
Reviewed By: mont29

Differential Revision: https://developer.blender.org/D328
2014-04-03 22:49:27 +04:00
Sv. Lockal
e7c2578576 Cycles: avoid 1.0f/(1.0f/x) divisions, which msvc (only) can't optimize.
This makes bmw scene in msvc 12 builds 6% faster.
It also gives a minor speedup for SSE hair in all compilers.
2014-04-03 22:08:53 +04:00
5e5ec4c138 Fix T39577: cycles issue mixing anisotropic BSDFs with branched path tracer. 2014-04-03 15:59:39 +02:00
Sergey Sharybin
0102d57c1d Slide mask spline segment to define it's curvature
This actually implements the idea used in Gimp which is grabbing
an arbitrary point on the spline and dragging it, ensuring spline
goes over this point. This is really useful way to tweak spline
curvature.

Currently only affects on a closest handle, meaning no weighting
on changes for both handles which are adjacent to the same segment
will happen just yet,

Another limitation is that currently such a slide is a big jumpy
when you start sliding. This is because projection is not used
to calculate u value because projection used to fail a lot for
me here and didn't find a nice solution for this yet. But this is
to be improved for sure!
2014-04-03 18:20:17 +06:00