Delay loading all DATA sections of the blend file until they're needed.
Loading all data-blocks caused high peak memory usage especially with
libraries - since a lot of data may exist which isn't used directly.
In one test (spring project: 10_010_A.anim.blend),
peaked at ~12.5gig, dropping back to ~2.5gig once loaded.
With this change peaks memory usage reaches ~2.7gig while loading.
Besides this there are some minor gains from not having to read data
from the file-system and we can skip an alloc + memcpy reading data
written with the same version of Blender.
Removes the flat shader variant since the attrib is specified for each vert
loop in flat shaded mode. It was something leftover from the previous
implementation.
The multires sculpt drawing was a not working in smooth mode.
Also hidding was not supported by the wireframe overlay and flat shaded
faces.
Codewise it is cleaner and index buffers are only updated if the
smoothing changes.
Before 1bfbfa2810 this wasn't essential because the constraints
prevented the axes from being applied.
Now redo ignores constraints - the input values must be constrained.
When the line width was larger than the UI scale, there was not enough
space for thicker widget outlines to draw properly. Now widgets are made
a little larger to accommodate the thicker outlines.
Differential Revision: https://developer.blender.org/D4368
* Two cursors for horizontal and vertical split.
* Four cursors for each join direction.
* One cursor to indicate when splitting is not possible.
Differential Revision: https://developer.blender.org/D4264
Made it so that generated coordinate is always calculated.
Ideally, it will only be done depending on a current shading,
but code is quite deep, and doing smarter thing here will end
up in way bigger refactor.
First, make things working, and then make them fast if they
pop up in a profiles.
Transfomr init code called just after duplication (presumably before
regular depsgraph update is executed) would erase new objects'
transflags.
This is more like a hack than a real fix, but since that transform piece
of code is already a hack... Other solution would have been to force DEG
to run after object duplication, think it's better to go with that
solution for now.
Not to mention to fact that dupli flags are put into transflag... ;)
Issue was a concurrent modification of an evaluated mesh by two
other meshes using it as source for custom normals data transfer.
Note that this fixes the crash (modifiers are strictly forbidden to modify
any data besides their own!), but now will have to add a new CD type to
be able to specifically request 'computed' clnors data layer, and not
only 'encoded' one, for source mesh...
This commit makes it so both Subdivision Surface and Multiresolution
modifiers are caching OpenSubdiv topology. This cuts down evaluation
time quite a bit, especially for meshes which don't have many extra
ordinary verticies.
Only working for animation. Other modifications like edit mode needs
more work to make topology cache preserved by copy-on-write.
It was copying the alpha from the foreground instead of background image,
which is not usually what is needed and inconsistent with the compositor.
Differential Revision: https://developer.blender.org/D4371
Constraint options had confusing behavior:
- When non were pressed, the orientation was ignored.
- When any were pressed, the orientation was used,
but only unconstrained axed could be adjusted.
Now constraining is only used for modal execution
so there is no need to show these in the interface.
When an orientation is selected, the XYZ values always transform
using that space.
Note, transform system should be refactored to support different
orientations w/o having to use constraints.
Addresses T57204
-Use factor for flame_vorticity, slice_depth, density & volume_density
-Use distance for surface_distance
-Use factor for mix factor in Data Transfer modifier
-Use prop_translation for pivot constraint offset
-Use distance for Shrink/Fatten Distance
-Use factor for Smooth Factor
-Use Factor for Randomize Uniform and Normal values
-Use Distance for Randomize distance amount
-Randomize Transform Scale was wrongly using distance
Default behavior is unchanged still, but can be changed in the keymap.
From testing I think this needs better visual feedback to indicate that
you are in local view, if the view does not move it's not as clear.