Blender Git Commits

Blender Git "master" branch commits.

Page: 351 / 5574

March 13, 2021, 19:59 (GMT)
EEVEE: ScreenSpaceReflections: Avoid outputing NaNs

This happens when the normal is too much deformed to give valid
reflection even after ensure_valid_reflection.

Cycles seems to not handle this case either so we just discard the
rays.
Revision ba3a0dc by Hans Goudey
March 13, 2021, 19:13 (GMT)
Geometry Nodes: Add "normal" attribute for face normals

This commit adds a `normal` attribute on the polygon domain. Since
normal data is derived data purely based off of the location of each
face's vertices, it is exposed as a read-only attribute. After
rB80f7f1070f17, this attribute can be interpolated to the other domains.

Since this attribute is a special case compared to the others, the
implementation subclasses `BuiltinAttributeProvider`. It's possible
there is a better way to abstract this. Something else might also
become apparent if we add similar read-only attributes.

See rB2966871a7a891bf36 for why this is preferred over the previous
implementation.

Differential Revision: https://developer.blender.org/D10677
Revision 2966871 by Hans Goudey
March 13, 2021, 19:05 (GMT)
Geometry Nodes: Revert current normal attribute implementation

After further thought, the implementation of the "normal" attribute
from D10541 is not the best approach to expose this data, mainly
because it blindly copied existing design rather than using the
best method in the context of the generalized attribute system.

In Blender, vertex normals are simply a cache of the average normals
from the surrounding / connected faces. Because we have automatic
interpolation between domains already, we don't need a special
`vertex_normal` attribute for this case, we can just let the
generalized interpolation do the hard work where necessary,
simplifying the set of built-in attributes to only include the
`normal` attribute from faces.

The fact that vertex normals are just a cache also raised another
issue, because the cache could be dirty, so mutex locks were
necessary to calculate normals. That isn't necessarily a problem,
but it's nice to avoid where possible.

Another downside of the current attribute naming is that after the
point distribute node there would be two normal attributes.

This commit reverts the `vertex_normal` attribute so that
it can be replaced by the implementation in D10677.

Differential Revision: https://developer.blender.org/D10676
March 13, 2021, 18:52 (GMT)
GPencil: Remove word "Strokes" in menu

This remove redundant word.
March 13, 2021, 16:49 (GMT)
Geometry Nodes: Add Attribute Convert node

The Attribute Convert node provides functionality to change attributes
between different domains and data types. Before it was impossible to
write to a UV Map attribute with the attribute math nodes since they
did not output a 2D vector type. This makes it possible to
"convert into" a UV map attribute.

The data type conversion uses the implicit conversions provided by
`nodesinternnode_tree_multi_function.cc`.

The `Auto` domain mode chooses the domain based on the following rules:
1. If the result attribute already exists, use that domain.
2. If the result attribute doesn't exist, use the source attribute domain.
3. Otherwise use the default domain (points).

See {T85700}

Differential Revision: https://developer.blender.org/D10624
Revision 8ab6450 by Hans Goudey
March 13, 2021, 16:39 (GMT)
Fix geometry nodes implicit conversion to booleans reversed

The result value should be true if the input values are not zero.
Note that there is ongoing conversation about these conversions
in D10685. This is simply a fix though.
March 12, 2021, 21:29 (GMT)
Cleanup: add BKE_pbvh_vertex_iter_begin to clang-format

Reviewed By: JacquesLucke

Differential Revision: https://developer.blender.org/D10707
March 12, 2021, 20:37 (GMT)
Sculpt: Mask Init operator

This operator initializes mask values for the entire mesh. It supports
different modes for initializing those values, and more will be added in
the future.

The initial version supports generating a random mask per vertex, Face
Sets or loose parts. These masks are useful for introducing variations
in the model using the filters (both shapes and colors).

Reviewed By: JacquesLucke

Differential Revision: https://developer.blender.org/D10679
March 12, 2021, 18:43 (GMT)
GPencil: Interpolate can use all keyframe types except breakdown

Before only it was only possible interpolate frames of `Keyframe` type. Now all types except `Breakdown` can be used.

`Breakdown` cannot be used because it would be impossible interpolate two times because the extremes of the interpolation would change and the clean operator would not work.
March 12, 2021, 18:12 (GMT)
GPencil: UI menu cleanup

Remove duplicate words Stroke and Point already in menu header.

Reviewed by: @mendio, @filedescriptor
March 12, 2021, 16:49 (GMT)
Fix T86332: setting Cycles dicing camera fails after recent changes

Somehow "from __future__ import annotations" and "lambda" are not working
together well here, work around it by not using a lambda function.
March 12, 2021, 16:24 (GMT)
Fluid: Enable scale options for fluid particles

There is no reason to hide the 'Scale' and 'Scale Randomness' options
for fluid particles that are rendered as 'Object'.

It is possible that hiding these options was just an oversight and
not intentional.
March 12, 2021, 16:14 (GMT)
Cleanup: const warning
March 12, 2021, 16:14 (GMT)
Docs: add doc-string for TransDataContainer
March 12, 2021, 15:45 (GMT)
LibOverride Auto Resync: Add option to disable it in Experimental userpref.

Some older .blend files won't react nicely to auto-resync, they need to
get manually fixed with `resync enforce` first.
March 12, 2021, 15:01 (GMT)
CLOG: add support for substring matching.

So that `--log "*undo*"` matches any log identifier containing `undo`.

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D10647
March 12, 2021, 14:58 (GMT)
Fix heap buffer overflow appending/linking from a blend file

Add new function `blo_bhead_is_id_valid_type()` to correctly check the
blend file block type.

File block type codes have four bytes, and two of those are only in use
when these blocks contain ID datablocks (like `"OB "`). However,
there are other types defined in `BLO_blend_defs.h` that have four
bytes, like `TEST`, `ENDB`, etc.

The function `BKE_idtype_idcode_is_valid(short idcode)` was used to
check for ID datablocks while reading a blend file. This only takes a
2-byte parameter, and thus its result is invalid for the 4-byte codes.
For `TEST` blocks, it would actually consider it a `TE` block, which is
a valid identifier for a Texture. This caused the heap buffer overflow,
as the datablock is not a valid ID, and thus the bytes that were
expected to form an ID name actually encode something completely
different.

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D10703
March 12, 2021, 14:36 (GMT)
Fix T82532: Sculpt fails to redo the first sculpt session stroke

Sculpt undo relied on having a mode-changing undo step to properly
apply changes.

However this isn't the case with startup files or when mixing
global undo steps with sculpt (see T82851, also fixed).

Undo stepping logic follows image_undosys_step_decode_undo.
March 12, 2021, 14:27 (GMT)
Fix another crash in LibOverride resync code.

Another case where newly overridden ID (stored in `newid` of its linked
reference) gets immediately deleted in old broken overrides.

Re T86501.
March 12, 2021, 14:17 (GMT)
Fix compiler warning when building Cycles without Embree
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021