Commit Graph

90424 Commits

Author SHA1 Message Date
28d8076a2e Fix T100768: Reverse curves skips handles of middle Bezier points
Reversing Bezier handle types and positions would skip the middle point
of curves with an odd number of segments, which is still necessary to
swap in order to avoid changing the curve's shape.
2022-09-02 12:05:12 -05:00
Clément Foucault
e02e844f51 Fix T100163: Eevee: Regression: Displacement maps affected by rotation
This was an oversight as the matrix multiplication present in original
code was reversed.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D15858
2022-09-02 18:21:24 +02:00
07cf3ce92f Fix T100377: EEVEE: Regression 3.2 normalmap node broken
This was caused by un-wanted normalization. This is a requirement of
the MikkTspace. The issue is that g_data.N is expected to be normalized
by many other functions and overriden by bump displacement.

Adding a new global variable containing the interpolated normal fixes the
issue AND make it match cycles behavior better (mix between bump and
interpolated normal).
2022-09-02 18:13:54 +02:00
Clément Foucault
874e9cbab9 Fix T99528: EEVEE: Regression: Faulty shaders when using Volume Info node
Workaround the issue by adding an intermediate function. This is usually
the case when working with attributes.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D15860
2022-09-02 18:11:11 +02:00
Clément Foucault
de818d81c3 Fix T98190: EEVEE: Very slow rendering on Intel HD Graphics 4400
This particular GPU driver does not constant fold all the way in order
to discard the unused branches.

To workaround that, we introduce a series of material flag that generates
defines that only keep used branches.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D15852
2022-09-02 13:51:43 +02:00
f366d197db Fix T100737: OBJ/USD import: imported object has no active material, material has 2 users
Fixes issues in importers written in C++ (T100737):

- Materials had one reference count too much. Affected Collada,
  Alembic, USD, OBJ importers, looks like "since forever".
- Active material index was not properly set on imported meshes.
  Regression since 3.3 (D15145). Affected Alembic, USD, OBJ. Note:
  now it sets the first material as the active one, whereas
  previously the last one was set as active. First one sounds more
  "intuitive" to me.

Reviewed By: Bastien Montagne
Differential Revision: https://developer.blender.org/D15831
2022-09-01 20:38:56 +03:00
ad4dcfe227 Fix T100709: baking max ray distance wrong with older .blend files
Add versioning to compensate for bugfix from T97945.
2022-09-01 17:16:50 +02:00
Bastien Montagne
414baf9780 Fix invalid memory handling in C++ OBJ MTL Importer.
An ID created with regualr ID management code should never ever be
directly freed directly.

For embedded nodetrees, there is a dedicated function.

Reviewed By: aras_p

Differential Revision: https://developer.blender.org/D15827
2022-09-01 09:17:02 +02:00
cdc0be48c9 Cleanup: fix warnings from vcol limit commit 2022-08-31 09:43:52 -07:00
30ec628d43 UI: Fix Geometry Nodes "Is Face Planar" name
Old name: "Face is Planar"
New name: "Is Face Planar"

This follows the current convention (Is Shade Smooth, Is Viewport, ...).
2022-08-31 17:31:04 +02:00
db98007c3a UI: Fix Geometry Nodes "Mesh to Volume" name (typo)
Old name: "Mesh To Volume"
New name: "Mesh to Volume"

This is consistent with what we do for the other nodes
(Mesh to Curve, Mesh to Points).
2022-08-31 17:30:39 +02:00
a6ba8e5f38 Core: Remove color attribute limit from CustomData API
Note: does not fix the limit in PBVH draw which is
caused by VBO limits not MAX_MCOL.
2022-08-31 08:29:16 -07:00
d4d14df38c Release schedule: Blender 3.3 RC
The branch is now in Bcon4, critical bug fixes only.
2022-08-31 16:08:26 +02:00
24fe659224 LibOverride: Replace linked objects by their overrides when created from 3DView.
From the 3DView code has basically no knowledge of collection hierarchy,
so we can either not remap any local usage of linked objects that are
being overridden, or remap them in all their local collections.

The second behavior makes most sense in the vast majority of cases.

Note that this was only an issue when directly linking and overriding
objects, not when doing so through collections.
2022-08-31 14:44:55 +02:00
d210ab90d4 Fix crash in liboverride operations from the Outliner.
Checks for 'invalid' selected IDs that need to be skipped were
incomplete, and one was missing the actual return statement.
2022-08-31 12:36:54 +02:00
6177d9f0c8 Fix: reverse uv lookup fails due to floating point accuracy issues
The case when the query uv is almost on an edge but outside of any
triangle was handled before. Now the case where the query uv is
almost on an edge but inside more than one triangle is handled as well.
2022-08-31 10:28:35 +02:00
fec90a5d58 GPencil: Fix sharp_threshold property in sample stroke operator
The property registration was missing in the operator, now fixed.
2022-08-31 10:02:09 +08:00
66fecfcda6 LineArt: Fix (unreported) wrong index in weight transfer
Line art now uses global index for vertices but needs to have
local index in order to do correct weight transfer.
2022-08-31 10:02:09 +08:00
d9c48d94e4 Fix: Potential name clash when adding rest position attribute
If a "rest_position" attribute already existed, potentiall with another
type, the next name "rest_position.001" would be used, which might
even conflict with a name on another domain. Use the C++ attribute
API instead, which has more standard/predictable behavior.
2022-08-30 15:38:38 -05:00
f20d0de3b7 Fix T93084: Area stretch overlay full red on large scale mesh
Issue arises when face areas are really large combined with small UV
areas (report has a mesh ~1.5 km), then precission of shorts is
insufficient.

Now use floats instead.
This also removes this negative signed version of the total area ratio
(since with floats it is no longer used).

Thx @brecht for a lot of hand-holding!

NOTE: this is an alternative to D15805 (and quick tests show this does
not introduce the tiny performance hit as D15805 did).

Maniphest Tasks: T93084

Differential Revision: https://developer.blender.org/D15810
2022-08-30 20:16:30 +02:00
3306b4a86b Fix T99253: Missing face center dots with deform modifier cage option
Before 8c25889bb6, subsurf face center tags were stored in each
vertex, so they were always copied to duplicate meshes. Now they are
stored in runtime data though, so they need to be copied explicitly.
The function name "reset_on_copy" is a bit awkward here, so the
tags are copied by the caller.
2022-08-30 10:41:26 -05:00
afa4f8f3ce LibOverride: Minor resync optimization by removing unuecessary processing.
Not much to gain here, but can make resync faster by a few percents when
dealing with linked overrides and such.
2022-08-30 15:18:17 +02:00
34ff27025d Cleanup: Remove one level of indentation by early continue in a loop. 2022-08-30 15:18:17 +02:00
f3186389b0 Fix T100586: libOverride resync could remove too many data-blocks.
Do not delete 'orphaned' overrides when their reference is missing
because the library file itself is missing.
2022-08-30 15:18:17 +02:00
524d9a3e2f Fix error in operator poll functions
- PALETTE_OT_color_add: crashed without a brush.
- SCREEN_OT_actionzone: crashed without a window.
- PREFERENCES_OT_studiolight_show: exception when opening prefs failed.
2022-08-30 21:06:17 +10:00
34e30baedf Fix T100673: crash when using slide brush without attachment info
The slide brush requires attachment information on the curves.
Now a warning is shown instead of crashing Blender. The attachment
information can be generated by executing the
`Curves > Snap to Nearest Surface` operator.
2022-08-30 12:20:37 +02:00
a97ae83a09 Fix T100703: Crash in file reading with ID's referenced from the WM
Don't decrement ID reference counts as any ID references from the
window-managers will have already been freed.

Reviewed By: mont29

Ref D15808
2022-08-30 19:41:48 +10:00
b814f64f4a Fix: Broken build with OpenVDB turned off
Problem with e3a6a2f412.
2022-08-29 14:50:26 -05:00
Tom Edwards
35df9f80b9 Fix T99576: Guard against empty names when removing attributes
It's possible for misbehaving scripts written before 3.3 to reach
this state and crash Blender. With this change, the error is reduced
to a Python exception.

Differential Revision: https://developer.blender.org/D15724
2022-08-29 14:45:55 -05:00
Pratik Borhade
68487cff95 Fix T98968: Node reroute tool doesn't add to frames
If reroute node lies in side the frame node boundaries then set
frame node as the parent of reroute.

Differential Revision: https://developer.blender.org/D15739
2022-08-29 14:45:01 -05:00
e3a6a2f412 Fix T99004: scaling volume down results in crash
OpenVDB crashes when the determinant of the grid transformation is
too small. The solution is too detect when the determinant is too small
and to replace the grid with an empty one. If possible the translation
and rotation of the grid remains unchanged.

Differential Revision: https://developer.blender.org/D15806
2022-08-29 17:00:08 +02:00
7de290ea08 Fix crashes running operators in invalid contexts
Fix for running operators outside of expected contexts.

- UI_OT_view_drop (poll)
- UI_OT_view_item_rename (poll)
- OBJECT_OT_gpencil_modifier_move_to_index
- OBJECT_OT_modifier_move_to_index
- OBJECT_OT_geometry_nodes_input_attribute_toggle
- OBJECT_OT_geometry_node_tree_copy_assign
- OBJECT_OT_shaderfx_remove
- OBJECT_OT_shaderfx_copy
- POSE_OT_relax (& other pose slide operators).
2022-08-28 20:18:12 +10:00
219d109575 Fix crash in gpencil.brush_reset_all referencing freed memory
A reference to the active brush was kept even when it was freed.
2022-08-28 20:00:14 +10:00
1f9d0acfa9 Fix running transform without a region
Running transform in background mode or without a region would crash.
2022-08-28 19:55:52 +10:00
f7ce20e340 Cleanup: Remove two files committed by mistake.
Committed in rB3c7a6718ddc.
2022-08-27 09:09:41 +02:00
e040aea7bf Transform: Use more general approach to node view update
With rBe6a557952ead, concerns were reported about missing updates when
the view is moved other than through the Edge Pan system.

Although the transform operator blocks navigation in general, it is
good to avoid these cases.
2022-08-26 15:34:38 -03:00
0c8de0eb3b Fix T100632: Regression: Node border snap guide line not drawing properly
Caused by {rBd2271cf93926}.

Color values were being used without being initialized.
2022-08-26 14:18:11 -03:00
e6a557952e Fix T100633: Node Editor: Edge scrolling breaks node snapping
The view offset, calculated by the Edge Pan system, only affects the
position of the nodes, but forget to update:
- snapping data
- final value of transform
- values used for custom drawing

Therefore, to avoid having to update a lot of scattered data, the
`transformViewUpdate` utility has been implemented to recalculate input
values when the view changes.

This utility does more than is necessary to fix the bug, but with that,
it can work in any situation.
2022-08-26 14:17:55 -03:00
8181494ffe Fix assert in id remapper tests.
Was using uninitialized ID name, leading to unknown ID type.

Thanks at Ray molenkamp (@LazyDodo) for noting the issue.
2022-08-26 18:08:46 +02:00
Luis Pereira
763cafc2b1 Fix T55284: error in Hybrid MultiFractal Musgrave texture
The calculation was revised to address two issues:
* Discontinuities occurring when detail was a non-integer greater than 2.
* Levels of detail in the interval [0,1) repeating the levels of detail in
  the interval [1,2).

This fixes Cycles, Eevee and geometry nodes.

Differential Revision: https://developer.blender.org/D15785
2022-08-26 17:27:43 +02:00
a1c8a17b4d IDManagement: fix missing WM name validation when using "keep current WM list" code path
The blendfile_liblink and blendfile_io python tests in debug fired an
assert that WMWinMan object was in Main database, but not in the ID
name map. This was caused by wm_window_match_do going into case 3
there: the new WM list is completely empty, the old list is not empty,
and it was directly using the old/current list (via
wm_window_match_keep_current_wm function), without actually
registering/validating the objects in it through the name map.

Reviewed By: Bastien Montagne
Differential Revision: https://developer.blender.org/D15787
2022-08-26 12:15:12 +02:00
60420f6ea4 Fix T100602: Incoming Vector in world shader for Eevee is inverted
Regression from {rBf4d7ea2cf61} where the direction was flipped.

Maniphest Tasks: T100602

Differential Revision: https://developer.blender.org/D15779
2022-08-26 09:13:55 +02:00
c9723d9464 Fix Sequence.frame_start being rounded to int when assigned 2022-08-26 14:22:58 +10:00
Bastien Montagne
500d815478 Fix T100255: Make RigidBodyWorld (and effector_weights) collections refcounted.
Those collections were so far mainly just tagged as fake user (even
though a few places in code already incremented usercount on them).

Since we now clear the fakeuser flag when linking/appending data, ensure
that these collections are preserved by making these usages regular ID
refcounting ones.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D15783
2022-08-25 17:21:39 +02:00
714a3739da Fix T100599: dont reset parent inverse setting parent type the same
Since rBb100bdca25b1 the parent inverse was always reset in
ED_object_parent (also for just changing the parent type).

This does make sense (since there is no point keeping it when e.g
changing from "Bone" to "Object" or "Vertex" to "Object", for this to
really make sense it would have to be properly recalculated anyways
which does not happen afaict).

The reported issue was that setting the prop to the same value as it was
before (e.g. from "Object" to "Object") would still reset the parent
inverse which was really unexpected since from a user standpoint,
nothing has changed here.

So in case the value does not really change, we now just early out and
skip `ED_object_parent`.

Maniphest Tasks: T100599

Differential Revision: https://developer.blender.org/D15771
2022-08-25 09:22:55 +02:00
3a1ea04d46 Cleanup warning about missing pointer casting. 2022-08-24 19:16:18 +02:00
8b7293eb41 LibOverride: Fix (unreported) crashes in some cases, preserve active object on Clear, general cleanup.
Inconsistencies in update/tagging code between different code doing the
same 'Clear. liboverride operation lead to crashes in some cases.

Unify deg tagging and WM notifiers accross the three editor-level
codepaths performing the common Make/Reset/Clear operations.

Preserve if possible the active object accross Clear operation.

Several cleanup/rename/re-arangement of code to make it more consistent.
2022-08-24 17:11:36 +02:00
24dc84f156 Cleanup: rename new IDTemplate operator to create overrides to make.
Matches other operators' names and UI labels better.
2022-08-24 17:11:36 +02:00
8c38a994c6 Fix Quaternion.rotate(matrix) with negative matrices
Rotating a quaternion by a negative matrix gave an invalid result.

Follow up fix for T94231 which negated negative matrices too.
2022-08-24 18:59:04 +10:00
62f764fad7 Fix T100606: Apply object transform fails with delta quaternion rotation
Apply transform failed to clear delta quaternion & axis-angle rotation.
2022-08-24 17:26:38 +10:00