Blender Git Commits

Blender Git "master" branch commits.

7 hours 4 min ago
CMake/deps: Remove CPP11 option for OpenImageIO

This flag is obsolete. In its current state (missing -D) it also
results in a CMake unknown argument error on macOS.
Revision 788a282 by Hans Goudey
7 hours 14 min ago
Geometry Nodes: Realize instances when applying modifiers

The fact that geometry from instnances isn't realized when applying
a nodes modifier can be very confusing, especially for new users.
Nodes themselves realize geometry instances implicitly whenever they
need to. We also currently make instances real and convert points to
mesh when a modifier is added after the nodes modifier. With this
commit, we simply do the same thing when applying the modifier.

There are a few downsides though:
- This can be an extremely heavy operations in some cases where
geometry nodes is used to instance heavy geometry.
- We will still have the issues with materials, since instances use
materials from their original objects, but real geometry uses
materials from the modifier object.

It was decided to live with the potential performance downsides
for now, the idea is the upsides of the change are more important,
and people making complicated setups will be more likely to know not
to apply the modifier. In the future there could be a warning if it's
necessary though.

Ref T87083
Revision ac90c8a by Hans Goudey
7 hours 44 min ago
UI: Add a workspace for geometry nodes in the default startup file

This will hopefully make it faster to start using the node editor.
The workspace also includes the spreadsheet. Note that while
existing startup files won't have this workspace added, it will be
in the list of options when clicking on the "add workspace" button.

Ref T86499
Revision 4dd32f9 by Antonio Vazquez
9 hours 37 min ago
GPencil: Invert color offsetting for Single and Object mode

Now, instead to offset the stroke color to make it visible over fill, the stroke keeps the original color and the fill is offset.

Related to the issue in T87406.
9 hours 45 min ago
Fix T87406: Stroke color when using object color mode

The color of the strokes was shifted when using `Single Color` or
`Object Color`in Solid Display Mode. This was originally done so
that it was still possible to differentiate strokes and fills.

The fix allows for a completly flat shading by checking if the
Lighting Mode is set to `Flat`. If it is, then the colors are not
shifted for the strokes and everything will use the same color.

Reviewed By: antoniov, fclem

Maniphest Tasks: T87406

Differential Revision:
Revision 71eaf87 by Hans Goudey
10 hours 25 min ago
Geometry Nodes: Add domain and data type to attribute search

This patch adds domain and data type information to each row of the
attribute search menu. The data type is displayed on the right, just
like how the list is exposed for the existing point cloud and hair
attribute panels. The domain is exposed on the left like the menu
hierarchy from menu search.

For the implementation, the attribute hint information is stored as a
set instead of a multi-value map so that every item (which we need to
point to descretely in the search process) contains the necessary data
type and domain information by itself. We also need to allocate a new
struct for every button, which requires a change to allow passing a
newly allocated argument to search buttons.

Note that the search does't yet handle the case where there are two
attributes with the same name but different domains or data types in
the input geometry set. That will be handled as a separate improvement.

Differential Revision:
10 hours 41 min ago
UI: 2D Animation: Fix Labelling issue within the 'Cursor' dropdown

Within the 2D Animation workspace, the 'Cursor' dropdown currently displays the 'Display Cursor' incorrectly aligned.

This change fixes the alignment issue.

Reviewed By: #user_interface, #grease_pencil, antoniov

Differential Revision:
14 hours 12 min ago
FFmpeg: Adjust default proxy settings

GOP size and quality are adjusted for h264 codec.

These new values are based on result of benchmark on 9 random files:

Reducing quality to 50 reduces proxy filesize by about 2x on average
and has no significant impact on decoding performance.

Increasing GOP size from 2 to 10 also reduces proxy filesize 2x-3x
while scrubbing is only about 8% slower. It is still around 100FPS
with 1920x1080 media.
This is unfortunately about 50% slower than MJPEG, but this can be
improved with `fastdecode` tune applied to libx264 encoder

Quite surprisingly h264 codec presets had little influence on proxy
building performance as well as proxy filesize. So far it looks that
FFmpeg does initialize encoder in different way then Blender.
This applies mot only for presets but for tune and profile libx264
Once this issue is resolved, performance of proxies may be optimized

Reviewed By: sergey

Differential Revision:
Revision 9ca55b1 by Falk David
18 hours 23 min ago
Fix T87479: GPencil SVG export outside of camera

When trying to export a GPencil object to SVG from outside the camera
view, the expoted file would contain invalid data. This was because the
calculation of the bounding box did not have any objects to
iterate over.

The fix makes sure we create the object list before trying to calculate
the bounding box.

Reviewed By: antoniov

Maniphest Tasks: T87479

Differential Revision:
20 hours 19 min ago
Fix (unreported) compositor resolution propagation broken by some nodes

Some operations may use no preferredResolution ({0, 0}) when calling determineResolution on inputs to check if they have resolution on their own. See MixOperation or MathOperation determineResolution implementation. In such cases {0, 0} resolution ends up being set when an input doesn't have own resolution, breaking propagation of the original preferredResolution. They don't mean to set it as resolution, it's just a check.

This patch only allows to set valid resolutions (>0). When it's 0 it may be understood as "No preferred or determined resolution" so it should not be set to give output operations another chance of finding a proper resolution by calling determineResolution again with a different preferredResolution.

Test file:

Reviewed By: #compositing, jbakker

Differential Revision:
1 day and 0 hours ago
Cleanup: remove unused BLANK_PYTHON_TYPE define
1 day and 0 hours ago
Cleanup: spelling
1 day and 0 hours ago
Cleanup: resolve type hinting error with make_source_archive
1 day and 1 hour ago
GNUmakefile: add 'check_mypy' convenience target
Revision d63b72e by Omar Emara
1 day and 6 hours ago
Fix T78803: Bad widget drawing with the R600g driver

The SB back-end optimizer for the mesa R600g driver corrupts the vertex
shader for widget drawing. This will not be fixed upstream because SB is
getting replaced as part of the new NIR path. This was thought to be an
issue with instancing and an attempted fix was submitted in D8374, but
it did not fix the issue.

This patch reimplements the array look-up part of the code using switch
case as a workaround and removes the old workaround implemented as part
of D8374.

Reviewed By: Clement Foucault

Differential Revision:
1 day and 6 hours ago
Nodes: Tooltip for Group Input properties

With this patch, users can define custom tooltips for the exposed
properties of their Geometry Nodes Groups.
Currently this custom tooltips are only used in the modifier panel,
but its a long term goal to use it in the node editor.

Reviewer: Hans Goudey

Differential Revision:
1 day and 8 hours ago
Object: Enable transfer mode functionality for switching objects in Sculpt Mode

This implements the changes discussed in T87134 for including switch
object funcionality in 2.93. This includes:

- Remove the switch object operator experimental option
- Remove the option for switching objects in Edit Mode.
- Rename switch_object to transfer_mode.
- Enable the operator only in sculpt mode.
- Expose the operator in the Sculpt menu with an eyedropper modal

On later releases, we could revisit enabling the operator in other mode
and object types as well as its place in the UI.

Reviewed By: JulienKaspar, JacquesLucke

Differential Revision:
1 day and 8 hours ago
Sculpt: Update menu entries for new Expand operator

Sculpt menus were using the legacy expand operator. This updates all
entries to use the new one.

It does not make sense to use Expand from the menus as it relies on the
brush cursor position, but now all Expand shortcuts are listed in the

Reviewed By: JacquesLucke

Differential Revision:
1 day and 8 hours ago
Revert 87aa514611b9: Removal of Lock Camera Gizmo Button

Differential Revision:

Reviewed by Julian Eisel
1 day and 9 hours ago
Fix T77330, T81704: Spline IK doesn't preserve bone scale correctly

Previously, the bone position outside of "fit to curve length" mode was

It assumed that the curve was completely straight with no bends or
turns. This would lead to bones being scaled down as their final
position would be servery underestimated in some cases.

The solution is to do a sphere -> curve intersection test to see where
to put the bones while still preserving their length. As we are using
the tessellated curve data this essentially boils down to us doing a
sphere -> line intersection check.

Reviewed By: Sybren

Differential Revision:
By: Miika HämäläinenLast update: Nov-07-2014 14:18 MiikaHweb | 2003-2021