Commit Graph

49420 Commits

Author SHA1 Message Date
Campbell Barton
8119791703 fix error in pose bone selection - head/tail mixup 2013-08-03 17:10:00 +00:00
Campbell Barton
a75702b467 code cleanup: remove duplicate checks 2013-08-03 16:55:49 +00:00
Campbell Barton
4770848871 code cleanup: bmesh use 'const' for query functions. 2013-08-03 16:37:23 +00:00
Campbell Barton
31761f5e5b code cleanup: replace bmesh_radial_face_find -> BM_edge_in_face 2013-08-03 15:30:57 +00:00
Lukas Toenne
20a377f93a Fix #36288, Renderlayer toggles behave unexpected in Outliner. The outliner was using the wrong flag variable for toggling render layers, was setting pass flags instead of the layer on/off flag. 2013-08-03 15:00:22 +00:00
Thomas Dinges
52e91d7da2 Merged revision(s) 58857 from trunk/blender into soc-2013-dingto.
Note: For next merge skip 58858, SSS passes merge to trunk.
2013-08-03 13:13:53 +00:00
Thomas Dinges
5fc6f04fc8 Cycles / SSS:
* Render Passes are now available for Subsurface Scattering (Direct, Indirect and Color pass). 

This is part of my GSoC project, SVN merge of r58587, r58828 and r58835.
2013-08-03 13:12:09 +00:00
Campbell Barton
ea95a78b0b skip BLI_STATIC_ASSERT for Coverity builds (caused parse error) 2013-08-03 13:08:51 +00:00
Thomas Dinges
b84858778c Merged revision(s) 58785-58855 from trunk/blender into soc-2013-dingto. 2013-08-03 12:49:08 +00:00
Sv. Lockal
66a4077927 fix for [#36260] 2,300 Objects Makes Blender Unresponsive
- performance of outliner was low because of unoptimal data structures.
- now it uses BLI_mempool instead of custom mempool and GHash to make searches for duplicates faster.
- also fix undesired behaviour of BLI_mempool_as_arrayN

thanks to Campbell Barton and Lukas Tönne for helping me get a better fix put together.
2013-08-03 11:35:09 +00:00
Miika Hamalainen
91d148b891 Dynamic Paint: Added a new "smoothness" parameter for waves.
It greatly helps getting rid of that "noise" that occurs if you use really steep objects (like cubes) as a brush. New default value is 1.0 which is just high enough to only get rid of the sharpest spikes, so if you want really smooth waves it's better use higher values.

This also seems to "fix" bug [#35413].
2013-08-03 09:46:38 +00:00
Mitchell Stokes
e131447582 BGE: Making sure m_drawingmode is initialized in the various RAS_Storage constructors. 2013-08-03 05:02:03 +00:00
Mitchell Stokes
411a49445f BGE: Making sure m_left, m_right, m_parent, m_radius, and m_client_object are initialized in the SG_Tree constructors. 2013-08-03 05:01:57 +00:00
Mitchell Stokes
e8ca7abb9a BGE: Making sure m_objType is initialized in the BlendType (VideoTexture) constructor. 2013-08-03 05:01:50 +00:00
Mitchell Stokes
e4d396f300 BGE: Making sure m_line is initialized in the Exception (VideoTexture) constructor. 2013-08-03 05:01:45 +00:00
Mitchell Stokes
ad65bc3315 BGE: Making sure m_buffV, m_buffU, and m_pitchUV are initialized in the FilterYV12 constructor. 2013-08-03 05:01:40 +00:00
Mitchell Stokes
c90a170d57 BGE: Making sure m_offset is initialized in the ImageSourceMix constructor. 2013-08-03 05:01:36 +00:00
Mitchell Stokes
375309f7a9 BGE: Making sure m_mirrorHalfWidth and m_mirrorHalfHeight are initialized in the ImageRender constructor. 2013-08-03 05:01:32 +00:00
Mitchell Stokes
5a042eb734 BGE: Removing some unreachable and unused code in BL_ActionManager.cpp. 2013-08-03 05:01:23 +00:00
Mitchell Stokes
b5016e34ed BGE: Fixing a memory leak with PyType_Ready_ADD. 2013-08-02 22:23:42 +00:00
Miika Hamalainen
9f1670cde6 Fix [#35541]: Point cache doesn't load existing frames from disk if cache file name is changed. 2013-08-02 16:39:50 +00:00
Gaia Clary
ab777e957c fix(Collada): wrong usage of the set attribute with multiple UV sets 2013-08-02 15:58:11 +00:00
Thomas Dinges
35b73586da Cycles / Subsurface Render Passes:
* Code cleanup, "subs" abbreviation is not really meaningful, so let's write "subsurface" instead.
2013-08-02 14:40:21 +00:00
Campbell Barton
c17f5960df correct error in own recent edits to triangle joining 2013-08-02 13:35:04 +00:00
Campbell Barton
efe690a3a5 code cleanup:
- incorrect NULL check in logic UI drawing
- incorrect NULL check in octree quad test
2013-08-02 13:21:32 +00:00
Antony Riakiotakis
5302469834 Some versioning changes/patching of the brush system:
* Change overlay alphas to 33 if not initialized. This should have been
done for 2.67 but better do it now to avoid frustration with overly
transparent overlays. For users that have set this low manually this
will reset the setting to 33 but I think it's less irritating than users
who unwillingly had the setting to 1 and saw nothing when activating the
overlay.

* Allow overlay alpha to be zero as well

* Reset old, now obsolete BRUSH_FIXED flag for brushes that still use
this. I am doing this here to avoid patching hell when the paint brush
is merged, since it's not possible to know the merged version
beforehand, and this flag will be used.
2013-08-02 00:24:34 +00:00
Antony Riakiotakis
36df391b2f User request: when switching to smooth tool with shift-click in
sculpting, use the original brush size.
2013-08-01 23:07:53 +00:00
Campbell Barton
78820edafc use bmesh for loop macros for looping over mesh verts/edges/faces 2013-08-01 18:33:35 +00:00
Campbell Barton
e03b1668e0 code cleanup: remove unused functions
- IsectLLPt2Df
- isect_point_quad_uv_v2
- isect_point_face_uv_v2

These are obsoleted by resolve_tri_uv, resolve_quad_uv

also add attributes for unused function results for some math functions.
2013-08-01 17:15:11 +00:00
Antony Riakiotakis
6fe4ec1bdc Fix a very irritating problem of our stroke system. On small brushes,
the space stroke would be repeated on unneeded subpixel precision. Since
this is not really useful, enforce spacing to be at least one pixel.
This makes small brushes quite more responsive.
2013-08-01 17:14:20 +00:00
Miika Hamalainen
ceaec3c86a Fix [#36265]: Smoke doesn't work if domain object has negative scale. 2013-08-01 12:09:12 +00:00
Sergey Sharybin
e34b7a62c4 Hack to workaround scene update lock caused by GIL
Couple of RNA callbacks would imply scene update routines
to trigger. This works fine for until some objects does have
drivers.

If some object does have driver, it'll try to lock GIL
when evaluating this driver, and GIL is already locked by
a python API, which causes deadlock.

For now made it so RNA callbacks doesn't do threaded update.
This is not so much nice, especially since Cycles might
use the same API for motion blur, but for now don't see
better way to solve the deadlock.
2013-08-01 03:58:22 +00:00
Sergey Sharybin
cb0cb84127 Fix typo which lead to crash when applying lattice modifier 2013-07-31 22:37:54 +00:00
Sergey Sharybin
0f591cbb51 Small optimization to previous change of statistics output
Use boolean flag for detecting whether there're updated
objects instead of doing real object counter (which required
spin lock).
2013-07-31 21:56:11 +00:00
Sergey Sharybin
983137ed74 Remove annoying statistics ifdef from code
All the statistics is already inside if() block, so
it doesn't have any noticeable affect on overall
performance.
2013-07-31 21:56:06 +00:00
Sergey Sharybin
a196de9a79 Made task scheduler follow command line argument number of threads 2013-07-31 21:56:00 +00:00
Sergey Sharybin
f5db3dc220 Made it so threaded update statistics only prints when something was updated
This prevents infinite prints of statistics while blender is idling.
2013-07-31 21:55:54 +00:00
Sergey Sharybin
038cb9ccdb Code cleanup: get rid of unneeded thread count in statistics structure 2013-07-31 21:55:47 +00:00
Sergey Sharybin
c847198a7b Use one global task scheduler for all the tasks
Instead of allocating scheduler and starting threads
on every object_update call make it so scheduler is
global and threads are always ready to run.

This was we could avoid quite hacky thing which is
counting how much objects need to be updated before
starting threaded update.

It'll also allow using the same scheduler to do all
sorts of tasks, not only objects update in the same
scheduler. This is nice from load balancing point of
view.

Couple of changes were needed to be done in task
scheduler itself:

- Free tas before sending notifier.
- Free TaskThread structures outside from thread.

This is needed to make it possible use begin/end
threaded malloc from the main thread before/after
running the pool. Without this change it was possible
that allocation will switch to non-thread mode while
thread is freeing the task.

This required storing TaskThread array in Scheduler,
but it's not so much bad actually, since it also
reduces memory overhead caused by per-thread allocation.
2013-07-31 21:55:36 +00:00
Sergey Sharybin
853f2e05c8 Optimization and threading fix for shapekeys weights calculation
This commit fixes two different issues, which were caused by
how weights are being calculated for relative shapekeys.

Weights for key block used to saved in KeyBlock DNA structure,
which lead to situations when different objects could start
writing to the same weights array if they're sharing the same
key datablock.

Solved this in a way so weights are never stored in KeyBlock
and being passed to shapekeys routines as an array of pointers.
This way weights are still computed run-time (meaning they're
calculated before shapekey evaluation and freed afterwards).

This required some changes to GameEngine as well, to make it
never cache weights in the key blocks.

Another aspect of this commit makes it so weight for a given
vertex group is only computed once. So if multiple key blocks
are using the same influence vertex group, they'll share the
same exact weights array. This gave around 1.7x speedup in
test chinchilla file which is close enough to if we've been
caching weights permanently in DNA (test machine is dual-code
4 threads laptop).

Some further speed is optimization possible, but it could be
done later as well.

Thanks Brecht for idea of how the things might be solved in
really clear way.
2013-07-31 21:55:25 +00:00
Thomas Dinges
0d9364463f Merged revision(s) 58779, 58783-58784 from trunk/blender into soc-2013-dingto. 2013-07-31 21:49:10 +00:00
Campbell Barton
7913604bda remove unused headers and NULL check 2013-07-31 21:34:25 +00:00
Thomas Dinges
2a2f0319bc Cycles / HSV Separator and Combine node:
* Added nodes to separate and combine hsv colors.

Part of my GSoC 2013 project, SVN merge of r57981.
2013-07-31 21:27:48 +00:00
Thomas Dinges
34009da32e Cycles / Vector Transform node:
* Add a note to convert a Vector, Point or Normal between World <=> Camera <=> Object coordinate space. 

Documentation: http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Vector_Transform

Part of my GSoC 2013 project, SVN merge of r57599, r57670, r57918, r57919, r58245 and r58775.
2013-07-31 21:18:23 +00:00
Thomas Dinges
6d9720ef63 Cycles / Blackbody to RGB node:
* Added a node to convert a temperature in Kelvin to an RGB color. This can be used e.g. for lights, to easily find the right color temperature. 
= Some common temperatures =
Candle light: 1500 Kelvin
Sunset/Sunrise: 1850 Kelvin
Studio lamps: 3200 Kelvin
Horizon daylight: 5000 Kelvin

Documentation: http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Blackbody

Thanks to Philipp Oeser (lichtwerk), who essentially contributed to this with a patch! :)

This is part of my GSoC 2013 project. SVN merge of r57424, r57487, r57507, r57525, r58253 and r58774
2013-07-31 20:56:32 +00:00
Campbell Barton
22dae3e600 fix for BLI_ghash_clear from Sv. Lockal (lockal) 2013-07-31 20:50:55 +00:00
Sergey Sharybin
86cb81abb9 Merging r58756 through r58777 from trunk into soc-2013-depsgraph_mt 2013-07-31 20:49:39 +00:00
Thomas Dinges
3840e0b234 Cycles / Ray Depth:
* Added a Ray Depth output to the Light Path node, which gives the user access to the current bounce.
This can be used to limit the maximum ray bounce on a per shader basis. Another use case is to restrict light influence with this, to have a lamp only contribute to the direct lighting. 

http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Light_Path

This is part of my GSoC 2013 project. SVN merge of r58091 and r58772 from soc-2013-dingto.
2013-07-31 20:30:37 +00:00
Thomas Dinges
2a25acb108 Cycles / Vector Transform node:
* Code cleanup to avoid duplicated enum code.
* Added a third type for conversion next to Point and Vector: Normal. This is basically the same result as with the Vector type, but normalizes the vector at the end. 

Thanks to Brecht for code review!
2013-07-31 20:05:13 +00:00
Thomas Dinges
a3e34e5fbc Merged revision(s) 58682-58770 from trunk/blender into soc-2013-dingto. 2013-07-31 18:14:18 +00:00