* 2D image painting support for masking to limit the max contribution of a stroke
to a pixel, to get it working compatible with projection painting. Not strictly
a bugfix, but the inconsistency here was annoying.
* Fix python errors in Texture Mask panel in image editor, was missing overlay
options.
* Clamp paint mask to 0..1 in case some texture exceeds it, this could give black
pixels due to integer overflow.
- highlighed buttons that were never pressed could be activated by accident when canceling search popup.
- canceling a search popup on a popup would close both.
accessing a bmesh from python would reallocate all customdata layers.
add an assert to BM_data_layer_free(), when its called unnecessarily since its reallocating all layers.
crossing themselves.
Again an old issue, the code that was limiting the max contribution to a pixel by
doing a max() operation, which is very sensitive to the spacing of the stroke dabs.
Instead we now use a formula does adds up on repeated dabs but approaches the
maximum brush value slowly and never exceeds it, which gives nice smooth results.
mask_accum = mask_accum + (sqrt(brush_max) - mask_accum) * sqrt(brush_max) * mask;
It's now default to 2D textures, and no AUTO mode at this
moment, since detecting which method is the best not so
simple.
Image drawing could manually be switched to GLSL for tests
and feedback, but for default GLSL is not so much great.
Reason of this is huge images, where operations like panning
becomes dead slow comparing GLSL vs. 2D texture.
Dynamic Paint was also being calculated during "orco" mesh generation, causing image sequence baking to use orco derived mesh instead. This likely affected vertex type surfaces too in some cases.
Was caused by svn rev53181, and it worked before because
image buffer didn't have quality set and in this case
fall back to scene settings happened.
Now or render result quality from scene settings is always
used, image buffer's settings is ignored.
The node link operator had a feature to automatically expose sockets in node groups when ctrl+shift+clicking on a node socket, which would create a node group input/output node. This was intended as a shortcut but conflicts with other features such as socket selection and viewer creation. It is also hardly necessary now that input/output nodes have an extension socket, which is much easier to use. Removed this expose functionality completely.
Labels in UI were not drawing greyed out when disabled.
Bug in post 2.66a commit to make greying out buttons draw much nicer.
User reported Addon menu was not clearly showing disabled Addons anymore.
- was reading outside memory bounds checking the 'x' point.
- inserting a point to the right of the last point would add a point to the very left instead.
resolve by using faces adjacent to the ones directly connected to the edge that sliding.
This isnt a prefect solution but it resolves the common case where an edge slides along a UV seam.
Fixed by adding a "texture_user_property" member to spacebuts' context, and using it to get the prop identifier in ui script.
Thanks to Brecht for its advice!
previous fix for 2D image painting were done, and also:
* For brushes that do masking (keeping the max contribution to a pixel limited),
the alpha from textures is now part of the mask. In many cases the logic
worked out the same and where it didn't it used to cause artifacts.
* Color interpolation for smear and soften tools now happens in premultipied
space, to avoid bleeding of RGB colors from zero alpha areas.
* Fix a few cases where byte <=> float conversion was not doing the proper
straight <=> premul conversion.
* Replace some float division by constants with multiplications, is faster.
Note: float texture painting seems to have some issues updating the OpenGL
texture, but issue was already there before this commit.
Since the bug was fixed that made blur brush _not_ blur all verts, there is no way to blur vertex colors after baking.
While this was hidden it was useful especially for baking vertex colors.
Sequencer was always trying to do GLSL color space
conversion, not respecting user settings at all.
This failed a lot when RGB curves a used in color
management settings.
Now sequencer will fallback if GLSL can not be used
and will also respect user settings (however, draw
pixels are not supported, sequencer always uses 2D
textures).
Color Pickers in Blender support precision editing with holding Shift key.
Unfortunately, on first click the picker cursor moves to the mouse position,
making the precision dragging quite useless.
Now, if you hold Shift, the picker editing will only apply the delta motion
of your mouse drags, making it much nicer for fine tuning of color grades
in Sequencer or Compositor.