Contrast helps to adjust IBL (HDR images used for background lighting).
Note: In the UI we are caling it Bright instead of Brightness. This copy what Blender composite is doing.
Note2: the algorithm we are using produces pure black when contrast is 100. I'm not a fan of that, but it's a division by zero. I would like to look at other algorithms (what gimp does for example). But that would be only after 2.62.
Org code was working with isotropic scaling, but when scaling only one axis, it was broken. First fix just disabled completly scale handling. This version only takes into account scaling along local Y axis, as this is the only one affecting that constraint!
Sorry for the mistake, hope this time it will be ok.
Original indices from right operand were used in boolean result derived mesh
which lead to crash if right operand has got more entities (faces/edges/vertices)
than left operand.
Issue was caused by left boolean operand consist of several intersecting manifolds
which make Carve triangulator confused and which can't be resolved in general case.
Added mesh pre-processing before actual applying boolean operator on it. This
preprocessing applies union operation on intersecting manifolds of the same object
so intersection edge loop with second object wouldn't confuse tesselator and correct
result would be returned.
Detecting of intersecting manifolds is based on AABB intersection check which leads
to some extra union operation called, but it's possible to speed things up from
Carve side so union operation of two not intersecting meshes would work faster.
Additional condition for running union for manifold is this manifolds intersects
AABB of second operand, so mesh topology wouldn't be changed at all in areas
where there's definitely no intersection between operands. It might be improved
so only manifolds which actually intersects second operand would be joined
together, but it'll slow things down a bit and prefer to do it only if it'll
be really a problem.
Additional change is fixed memory leak when boolean operation fails to run -
it was missed "delete" call if exception happens in Carve library.
From side effects of this change might be named boolean operation between
suzanne and another object: suzanne is consist of three intersecting open
manifolds, so this new meshes preprocessing leads to missed eyes in result
because of failure of merging two open manifolds. Don't think making suzanne
work for all setups should really be a goal, it's a bit crappy mesh for CSG
algorithms.
The main issue in an implementation of these functions is the need to constantly edit the vertex array and subsequently update the face and edge arrays.
* Modifier Icon was missing in the outliner
* Fluid icon was used in the rna struct, fixed
Note: Ocean uses the Wave modifier icon atm, if we find a better one, this can be changed.
User side:
* Preview for DynamicPaint should keep the same behavior (for now). Weight preview should be somawhat quicker, though.
* Preview for WeightVG modifiers is only active in WeightPaint mode, and if the affected vgroup is the active one.
* Last active preview modifier in stack wins!
Note: that modifier preview topic is yet to be further refined, quite raw/incomplete for now.
Dev side:
* In draw code, renamed DRAW_DYNAMIC_PAINT_PREVIEW flag to DRAW_MODIFIERS_PREVIEW
* Removed use of MOD_DPAINT_PREVIEW_READY in DynamicPaint code (seems unecessary, and if it was, should be of more general scope).
* Added eModifierTypeFlag_UsesPreview to ModifierTypeFlag, for modifiers that can generate some preview data.
* Added three new modifier funcs, to handle preview modifiers in draw code / mod stack.
* For weights preview: added the generic DM_update_weight_mcol func, which can update WEIGHT_MCOL layer with either a given array of weights (currently used by DynamicPaint only), or from current active vgroup(s).
So now, draw code is fully generic (i.e. no more modifier-type checking in it). Mod stack code is generic to some extent, but will need more work.
Submitted by Perry Parks (scuey)
From the patch:
This patch enables drag and drop parenting for objects in the outliner.
Drag and drop is supported for a selection of multiple objects as well. Also,
all of the "special" parenting tasks (armature, curve, lattice) are possible
through the usual parenting context menus. For example, drag a mesh object onto
an armature and you are prompted for using bone envelopes, automatic weights,
etc.
Demonstration on Vimeo: http://vimeo.com/25698606
Problem was, if no vertices were ever added to one of the obect's vgroups, there is no CD_DEFORMVERT layer, even though there might be several valid vgroup indices... Odd no one noticed that earlier.
Many thanks to miikah for finding that bug!
Submitted by Shane Ambler (sambler)
From patch description:
As a follow on from #23443 - committed in r40066 I have added the outliner
filter match highlight colour to the theme settings.
Default colour is a light green matching what was originally hard coded.
edit a strip in the timeline
Tweaked the behaviour of the overwritting of extrapolation mode so that it is
less destructive when the problems it sets out to fix aren't likely to occur
(namely a top strip blocking everything below it due to extend backwards).
though it initially works
Problem was that in the past it was possible to have multiple strips/tracks
tagged as "active", but now after getting a correct implementation, we can no
longer have that, and thus entering Tweak Mode only works on the last selected
strip.
However this is problematic in cases when you want to tweak the keyframes of
several objects (which may only have a single strip each) in order to get them
to line up with each other. This hack caters for this case (selecting multiple
strips from the same AnimData block is still impossible and insane/illogical and
is not allowed).
This may have implications for some future tools which make assumptions about
certain aspects of NLA state. However, it shouldn't cause too many problems
(hopefully ;)
This commit restores support for freezing or speeding up physics sims. Animate
the "Speed" parameter under Domain->Time, which controls a multiplier factor for
the rate at which the sim proceeds (i.e. the old "Fac-Tim" setting).
Notes:
* Subversion bumped to 4 to patch up defaults for new value so that old sim
files will still run correctly
* Names/descriptions could do with some tweaking
* Porting this across was not that obvious since quite a bit of stuff had
changed (as in, been cleaned up). However, from tests so far, it seems to work
well.
CCGSubsurf has already a function to disable calculation of normals,
but seems it wasn't used. This patch changes subsurf UV and
subsurf_calculate_limit_positions() to not calculate normals, and also
not allocate space for them.
Should be no functional changes, just a small speedup/less memory use
during subdivision for these cases.
Code review link:
http://codereview.appspot.com/5558058/