Now texture storage of images is defined by the alpha mode of the image. The
downside of this is that there can be artifacts near alpha edges where pixels
with zero alpha bleed in. It also adds more code complexity since image textures
are no longer all stored the same way.
This changes allows us to keep using sRGB texture formats, which have edge
darkening when stored with premultiplied alpha. Game engines seems to generally
do the same thing, and we want to be compatible with them.
This new cursor is used instead of the ARROW because it was too disruptive while you are drawing.
The change affects all paint modes that are used Brushes.
See D5036 for details.
Reviewers: @brecht @billreynish @mendio
Cursor designed by: @billreynish
The OpenGL state was not set to blender defaults when using
`DRW_render_to_image` path. This is only used when doing F12-rendering.
Cause of changes with the `RESTART_INDEX` hair rendering was rendering
the restart_index as an actual vertex index.
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D5039
This option can not be supported by a new granular dependency graph,
and, especially, copy-on-write.
It was always doing full update ever since initial commit of new dependency
graph which we are using here in the studio for the past years and lack of
this option was never brought up.
Fixes T65557: Delay refresh option in armatures is broken
Consists of few simple steps.
Don't tag object data's bounding box as dirty before re-evaluaiton
Most of the time this actually tags evaluated mesh which will be tossed
away few lines below anyway. And this causes issues if the evaluated
mesh is actually owned by the mesh datablock.
The bounding box now has clear separation between original object data
and object data after modifiers, so this should not be causing any
issues.
Free evaluated mesh when owner mesh changes
Ensures that evaluated mesh shares the same settings as its owner when
updates related on animation system happens.
Depsgraph: Update mesh when its geometry settings changes
Allows to have options like autosmooth animated.
Reviewers: brecht, mont29
Differential Revision: https://developer.blender.org/D5030
Most of the time this actually tags evaluated mesh which will be tossed
away few lines below anyway. And this causes issues if the evaluated
mesh is actually owned by the mesh datablock.
The bounding box now has clear separation between original object data
and object data after modifiers, so this should not be causing any
issues.
This commit fixes crash but the possible 3D sound is still missing.
Also, sound from sequencer coming from a scene strip is also missing.
This is partially a regression, at least for F12 case. The editing
was already behaving wrong: it was needed to have scene strip to be
actually rendered in preview.
Add invalidation to strip add functions
Add invalidation for scene and movieclip strips
Skip invalidation for sound strips
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D4989
3D engine settings were used to select image scaling method.
Use higher quality scaling only for rendering.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D4995
We need to find a better solution for mixing normal refreshes in some corner
cases. We actually had similar issues in 2.79 anyway, not crashing is more
important.
Modulo makes no sense here at all, is from an old bugfix to prevent a crash
that is no longer an issue.
Differential Revision: https://developer.blender.org/D4727
When rendering the Sequencer using viewport rendering the annotations
were not scaled to respect the scene render size. This was because the
matrices were calculated based on the output size and not the actual
rendersize.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D5032
Use an additional pose bone flag so we can keep track of mirrored bones that should be autokeyframed.
Reviewed By: Brecht
Differential Revision: https://developer.blender.org/D5033
This is a mix of solutions rBe60b18d51d58 and rB52af5fa31fbc.
What happened was that when a node of the BVH gets 0 vertices, the batch is untouched and therefore still drawn.
This is enabled with bl_use_eevee_viewport = True. It allows external engines
to generate an Cycles/Eevee shader node setup to emulate their materials in
the realtime viewport, or to leave it to users to do manually.
Removed bl_use_exclude_layers and bl_use_shading_nodes that did nothing
anymore. This should not break API compatibility, any scripts setting those
should continue to work the same as before.
Also adds descriptions for some RenderEngine settings.
Currently only obvious setting which can be animated is Smooth.
The rest requires more proper support from animation update on
the Curve datablock.
But at least with this change it's not a "dependency graph fault"
While fix in dependency graph for those is trivial, adopting underlying
code to become aware of animated settings is quite a rabbit hole: there
are non-obvious hidden inter-dependencies between settings, which are
especially tricky for NURBS.
For until we have more dedicated time for this disabling animation.
There is no obvious threading-unsafe code in the localization.
The main source of issues were the new_node/new_socket pointers
which are no longer used during node tree duplication.