Fix a NaN when rendering glossy materials that can appear due to a
division by zero in bsdf_D when rendering materials with low roughness.
Thank you to Weizhen for the fix after my incorrect
first attempt.
Pull Request: https://projects.blender.org/blender/blender/pulls/125756
The issue happens due to `out_phase_img` returning wrong values in `eevee_surf_volume_frag.glsl`.
The only workaround I've been able to find is using the same format as the other property textures.
Pull Request: https://projects.blender.org/blender/blender/pulls/125715
The File Output node doesn't provide an option to save byte formats like
PNG in a space that is not sRGB. This is problematic for data images
like normal maps, which need to be saved as non-color.
This patch adds a Color Space option to the File Output node to allows
users to override the assumed color space. This also adds a new global
Save As Render option that is used if Use Node Format is enabled.
Pull Request: https://projects.blender.org/blender/blender/pulls/124238
Directly calculate the transformation matrix by multiplying and
inverting the Domain matrices. This removes a double-invert and
decomposition of the matrices so it should be more accurate, and I think
makes the math a lot easier to figure out.
This also moves the "bias" for Nearest to be done in the input space
rather than output. This should make it select the same pixels from the
input even if the image is rotated 180 degrees.
Co-authored-by: Bill Spitzak <bills@sidefx.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/125543
Classes Speaker, Lattice, Metaball, Prepass refactored to contain one pass.
Stereo camera's connecting line fixed to always be dashed.
Metaball selection fixed in object and edit modes.
Pull Request: https://projects.blender.org/blender/blender/pulls/125684
Align Cycles SVM and EEVEE's rendering of the vector math node
in reflect mode with OSL when the normal vector is 0,0,0.
This is done by using safe_normalize rather than normalize on the
normal vector. Which also fixes a NaN in the reflect mode in this
specific configuration.
Pull Request: https://projects.blender.org/blender/blender/pulls/125688
Code was using the `struct_index` instead of the `type_index` to set the
alignement value for this struct, effectively setting that alignement
value for another struct/type than `mat4fx4f`.
Found while working on naming cleanups of maksdna code.
Pull Request: https://projects.blender.org/blender/blender/pulls/125777
Rename ed_workspace_status_mouse_item to ed_workspace_status_icon_item
as this is not specific to mouse icons. Just a brain-fart because this
function has specific handling of mouse icons because of spacing
issues.
Pull Request: https://projects.blender.org/blender/blender/pulls/125790
PR #125332 made changes to the format of the version string displayed
on the title bar and in status bar. These changes included not showing
the patch level if zero. Unfortunately this also changes the version
as displayed on the command-line with "--version". This particular
change was approved quite hastily so this PR just reverses that, always
shows zero patch level and therefore shows the command-line version as
before. If we want to hide patch zero we can debate this specifically
later.
Pull Request: https://projects.blender.org/blender/blender/pulls/125788
Curve control points are shown quite small regardless of UI scale and
local zooming. This PR increases the minimum, regular, and maximum
sizes so that they are easier to see in all circumstances.
Pull Request: https://projects.blender.org/blender/blender/pulls/125786
Part of #118145.
Instead of storing a separately allocated array for each BVH node
for the temporary "color buffer" colors meant for mixing during a
stroke, just store an array the size of the whole mesh. Though this
is wasteful in terms of memory usage, plenty of other brushes store
mesh-sized arrays already, and it should make more sense as BVH
nodes get smaller too. After this commit, the BVH tree has no
specific code for color attributes anymore.
Pass a single span for both cloth brush init positions and the persistent
base array instead of switching between the two every time. Also only
retrieve the persistent base for base mesh sculpting since AFAIK that's
the only situation where it works properly anyway.
Use the same method for sharing code as elsewhere in the cloth brush:
translate the SubdivCCG and BMesh data structures to the equivalent
vertex indices used by meshes. This commit has to add some more code
for that because we only want to process visible vertices and there are
no factors being used for the typical filtering method used by brushes.
Use less or equal depth comparison for EEVEE and Overlay, since their
depths no longer match.
The main disadvantage of this approach is that material masked
transparency won't work anymore with overlays, so there's still another
(arguably not as bad) regression.
Pull Request: https://projects.blender.org/blender/blender/pulls/125722
The issue occurred when creating a keylist for an FCurve.
Keys outside the given range are ignored, but the call to `update_keyblocks`
still got the full range leading to the assertion.
The fix is to keep track of the index range for which bezt have been added
to the keycolumns. Note that we have to do that within the loop because
the FCurve might not be ordered (e.g. during transforms in the dope sheet)
Pull Request: https://projects.blender.org/blender/blender/pulls/125678
The crash was caused by attempting to write-back to the original data after it
has been removed (`add_data_block_items_writeback`).
This write-back is already disabled when applying a modifier, however the
corresponding flag was only set when applying modifiers on mesh objects. This
patch fixes this issue with two small changes:
* Rename `MOD_APPLY_TO_BASE_MESH` to `MOD_APPLY_TO_ORIGINAL` to make it more
generic.
* Pass this flag into modifier evaluation for other geometry types besides
meshes in `modifier_apply_obdata`.
Pull Request: https://projects.blender.org/blender/blender/pulls/125761
The Translate node leaves empty pixels at the boundary of the image.
This caused by incorrect clipping when sampling the pixels. To fix this,
we adjust COM_MemoryBuffer::read to read using Extend or Repeat using
BLI interpolation, then multiply that by a clipping rectangle. The
read_elem_sampled function is now defined in terms of the read method.
This also coincidentally fixes off by half a pixel error in nearest
neighbour interpolation.
Bake nodes are not supported in a repeat zone. They used to just output
default values when used in a repeat zone, but now they just pass-through
the inputs like an unbaked bake node would.
This makes the behavior more like one would expect when using the same
node group in and outside of a repeat zone that happens to have a bake
node inside (which is not even used).
Modifiers in the VSE have mask properties first, then modifier-specific
settings. This breaks consistency with other modifiers for objects
and Grease Pencil.
Move Mask properties to the bottom, after a separator, and group them
in a column for better alignment.
Fixes#120360
Pull Request: https://projects.blender.org/blender/blender/pulls/125710
The reordering of channels didn't work in the following case:
* in the Graph Editor
* Channels outside of a FCurve group
The reason for that was that any channels outside a group get added to a temp group
(sorting somehow depends on groups) and that was missing the `AGRP_EXPANDED_G`
flag. The reason this was only broken in the Graph Editor was that this flag is only used
for the graph editor. The `EXPANDED_AGRP` macro has a special case for that
(used towards the end of `rearrange_action_channels`).
Pull Request: https://projects.blender.org/blender/blender/pulls/125673
Python bundles pip, but does not track CVEs reported against it.
Add an explicit CPE to be able to detect CVEs affecting pip version
bundled with Python.
Currently it is a manual process of keeping the version in sync with
the one used in Python.
The CVE-2018-20225 is essentially marked as ignored. It is not fixed
upstream, and other users like Debian are also essentially ignoring
this CVE:
https://security-tracker.debian.org/tracker/CVE-2018-20225
Pull Request: https://projects.blender.org/blender/blender/pulls/125648
The mnemonic for the remark Ignored has been split into False Positive
and Not Affected in the recent version of cve_bin_tool, preventing it
from properly parsing the CVS file and not being able to do proper
report.
Use Not Affected, as it is seems to be the closest to what Ignored was
used for in our case.
Pull Request: https://projects.blender.org/blender/blender/pulls/125645