- Passing original object with apply_modifiers=false will give a
non-modified non-deformed mesh.
The result mesh will point to datablocks from the original "domain". For
example, materials will be original.
- Passing original object with apply_modifiers=true will give a mesh which
has all modifiers applied.
The result mesh will point to datablocks from the original "domain". For
example, materials will be original.
- Passing evaluated object will ignore apply_modifiers argument, and the
result always contains all modifiers applied.
The result mesh will point to an evaluated datablocks. For example,
materials will be an evaluated IDs from the dependency graph.
Fixes T62916: Applying boolean modifier does not set material properly
Differential Revision: https://developer.blender.org/D4604
This was wrong and violating design to force modifiers to query
evaluated objects and IDs. It is up to the caller to make sure
the object is properly evaluatable.
Effectively, reverting changes from de491abf99 (and possibly
other related changes).
Since there is a flush of evaluated values back to the original
for an active dependency graph we don't need this lookup anymore.
Not only it slows interface drawing down, but also is becoming
in a way of the upcoming fix.
Some iterations in bevel were over a hash table, which leads
to possibly different results run-to-run, especially when
loop_slide is enabled. Changed those iters to go over all verts
of BMesh, which leads to consistent order run-to-run.
The old logic was working if the eraser was moved towards the end of the stroke, but got ugly results when the eraser was done towards the start of the stroke.
The issue was the manipulated depth for images would be used when doing distance depth checks.
Now we will use the actual depth of the image object when doing such tests.
Reviewed By: Clément Foucault
Differential Revision: http://developer.blender.org/D4616
New icons from Andrzej Ambroż / jendrzych:
-Adds separate icons for 3D Cursor orientation and pivot
Also, many dozens of tweaks and updates - too many to mention here.
Full list is on Devtalk
This makes it easier to exclude a surface from casting shadows and can be
used to manipulate the shadows even for opaque surfaces.
Versionning ensure that old behavior is transfered to new rendering logic.
This was due to some shading resources not being bound for the shadow
shader. This commit completely remove the shading part when in a shadow
shader. Thus making it a bit more lightweight and removing the needed
sources.
Remove remapping to new IDs from `BKE_object_duplicate()` itself, doing
it here will break later remapping done after all desired objects have
been duplicated, preventing complete remap of ID pointers used in obdata
and other sub-data of duplicated objects.
Checked, the only two usages of this function were already doing
separated later step for this anyway.
This is to fix the slowdown issue experienced on windows when rendering
from command line.
Fix T59649 Eevee in command-line batch mode is slow with particles/duplis
The wrong transformation was used. Add a new matrix specially for this case.
This also fix the Node texture coordinate that was suffering the same issue.
Thanks to Gabor Fekete for helping finding the issue.
Was caused by uninitialized variable. Also took the oportunity to use comp
swizzling instead of multiple assignment.
Until now, Orcos were computed by the gpu (GLSL) and were not taking into
account the modifier stack (breaking orco for deformed mesh).
Now Orco is now computed on CPU but only if a modifier stack is present.
Tagging that an ORCO layer is present is done via a 4th component, which is
a waste of memory/bandwidth. Best would be to do the same as auto attrib
color space and save a bool uniform somewhere but for now it's too
disruptive.
Now the entire node gets greyed out, instead of using a red header that is
hard to distinguish from other nodes with similar header colors.
Differential Revision: https://developer.blender.org/D4597
BKE_mesh_new_nomain automatically added a CD_ORIGINDEX layer initialized to 0,
which was never filled in correctly. In 2.7 the equivalent function used to
modify the source derivedmesh and add valid original indices to it, but this
is no longer possible in the new design and was quite unpredictable anyway.
Now instead rely on mesh_calc_modifiers and the depsgraph to determine when
CD_ORIGINDEX should be added.
This should not use the original index as a unique instance index, with for
example an array modifier the same original index may be used multiple times.