Was affecting quad faces. where 0 was always passed for inner
loops and a wrong one for boundary ones.
In the current code this change shouldn't cause any difference
since the corner index is ignored in the actual callback, but
it is required to have his fixed for an upcoming changes.
The apparent off-by-one error was caused by a few factors:
- The 'blend base' colour was green for the two frames directly
surrounding the current frame, but black for the current frame itself.
- For the frames before the current one, the 'blend base' was mixed with
black, making the green stand out clearly, but fading to black again
for the current frame. This looks like an off-by-one, even though it
was just bad mixing.
- For the frames after the current one, the 'blend base' was mixed with
cyan, which already has a strong green component, so mixing it there
was much less visible, making the entire thing look like an off-by-one
error where it actually wasn't.
I have simplified the code, so now it only chooses green as the 'blend
base' for the current frame, and simplified the mixing for the current
frame.
This further separates requested attributes and textures from the actual
node graph, that can be retained after the graph has been compiled and
freed. It makes it easier to add volume grids as a native concept, which
sits somewhere between an attribute and a texture.
It also adds explicit link types for UDIM tile mapping, rather than
relying on fairly hidden logic.
System GLEW often is not new enough, which gives error on startup. The build
correctness should not be affected by using lite vs. full, so better to leave
this out than save compiling one extra file.
Cycles recently fixed this issue, EEVEE needed to be adapted to output
similar results in the light passes.
This patch implements cycles `safe_divide_even_color` function to a GLSL
function that will be used when extracting the light passes.
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D6948
Shadow could penetrate occluded geometry. This patch adds a check to see
if the light is in the right location to light the pixel.
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D6918
This is in preparation of new object types. This only changes mesh_eval, we
may do the same for mesh_deform_eval and other areas in the future if there is
a need for it.
Differential Revision: https://developer.blender.org/D6695
The dope sheet, NLA editor, and other similar animation editors were
ignoring the temporariy visibility flag of collections. As a result, an
editor that's supposed to show animation data of visible objects only was
still showing such data of objects that were hidden by hiding their
collection.
This was observed while fixing T71743.
Cycles uses the display_space_shader it gets from Blender. When
requested the shader used to be a GPU_SHADER_2D_IMAGE_COLOR, which
set the `color` uniform incorrectly. This resulted in a yellowish tint
when used.
To fix this the `GPU_SHADER_2D_IMAGE` shader will be used.
Reviewed By: brecht, fclem
Maniphest Tasks: T74119
Differential Revision: https://developer.blender.org/D6921
Bug was introduced by the render passes. We had to tweak the bloom
shader a bit so we could reuse it. After that tweaking the original
alpha was ignored.
This patch will read and store the correct alpha channel.
Don't use -ffast-math functions for libc compatibility implementation, since
then the function ends up calling itself. This may not be ideal for performance
but should be insignificant in practice.
When disabling AO or BLOOM in the render tab, when the pass is shown in
a 3d viewport the pass wasn't reset. This resulted in showing a black
texture and a not filled UI render pass in the shading popover.
This patch will by default reset to the combined pass. It is intended
that the render_pass in the 3d shading struct isn't set to combined as
people could have disabled AO/bloom by mistake and it could reset
viewports that aren't visible.
When disabling AO or BLOOM in the render tab, when the pass is shown in
a 3d viewport the pass wasn't reset. This resulted in showing a black
texture and a not filled UI render pass in the shading popover.
This patch will by default reset to the combined pass. It is intended
that the render_pass in the 3d shading struct isn't set to combined as
people could have disabled AO/bloom by mistake and it could reset
viewports that aren't visible.
This clarifies logic in ED_object_add_generic_get_opts (see comments in
code).
Also following issues are adressed:
- do not enforce setting the op UI to WORLD when rotation is set (e.g.
on redo). This is not wrong (happens in world space), but is more
confusing than helpful (was added in own rB3b8a14a3c072).
- respect setting the User Preference to WORLD properly (could fail when
set to something else, then back to WORLD)
Maniphest Tasks: T69576
Differential Revision: https://developer.blender.org/D6943
This fixes {T70269}.
Before this commit there was complicated code to try and compute the
correct parent inverse matrix for the 'Child Of' and 'Object Solver'
constraints outside the constraint evaluation. This was done mostly
correctly, but did have some issues. The Set Inverse operator now defers
this computation to be performed during constraint evaluation by just
setting a flag. If the constraint is disabled, and thus tagging it for
update in the depsgraph is not enough to trigger immediate evaluation,
evaluation is forced by temporarily enabling it.
This fix changes the way how the inverse matrix works when some of the
channels of the constraint are disabled. Before this commit, the channel
flags were used to filter both the parent and the inverse matrix. This
meant that it was impossible to make an inverse matrix that would
actually fully neutralize the effect of the constraint. Now only the
parent matrix is filtered, while inverse is applied fully. As a result,
pressing the 'Set Inverse' matrix produces the same transformation as
disabling the constraint. This is also reflected in the changed values
in the 'Child Of' unit test.
This change is not backward compatible, but it should be OK because the
old way was effectively unusable, so it is unlikely anybody relied on
it.
The change in matrix for the Object Solver constraint is due to a
different method of computing it, which caused a slightly different
floating point error that was slightly bigger than allowed by the test,
so I updated the matrix values there as well.
This patch was original written by @angavrilov and subsequently updated
by me.
Differential Revision: https://developer.blender.org/D6091
While one issue of the report was fixed already (rB27adc4aa3347), still a
couple of clarifications could be made:
- correct/clarify which modes these apply to
- clarify that "Face Mask" is a paint thing
Maniphest Tasks: T54323
Differential Revision: https://developer.blender.org/D6797
UI
Main issue is that the UI doesn not respect the Unified Weight/Strength
setting (but instead alwasy shows the brushes weight/strength)
Was working before, but somewhat missed in rBfb74dcc5d69d.
See discussion in T74025 on why the Gradient Tool in its current state
is not very user friendly in general, what I think we should do though
is at least have the values in the UI respect Unified Weight / Unified
Strength since this is what the tool will use internally...
ref T74025
Maniphest Tasks: T74025
Differential Revision: https://developer.blender.org/D6900
Change to false color are based on artist feedback:
* Even 2.5 EV differences down to -10 EV.
* Even 2.167 EV differences up to +6.5 EV.
* Slightly below middle grey biased toward cyan.
* Slightly above middle grey biased toward yellow.
* Converts to nonlinear luma for more accuracy.
On Linux, precompiled libraries may be made with a glibc version that is
incompatible with the system libraries that Blender is built on. To solve
this we add a few -ffast-math symbols that can be missing.
Differential Revision: https://developer.blender.org/D6930
Based on work by Nathan Craddock, with further changes to apply it to all
precompiled libraries.
Differential Revision: https://developer.blender.org/D6929