System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: GeForce RTX 2070 Super with Max-Q Design/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 461.40
Blender Version
Broken: version: 2.93.0 Alpha, branch: master, commit date: 2021-02-11 17:37, hash: rBa608313860ff
Worked: (newest version of Blender that worked as expected)
Short description of error
All comments are related to the Curve object's "radius for beveling" found in 3D View Sidebar Panel Item tab when control point(s) are selected while in edit mode:
The Curve's Control Point "radius for beveling" changes value after applying scale to a curve in Object mode when the object scale is something other than 1 and there are other inconsistencies with this operation. Context and explanations below.
Adjusting the "radius for beveling" values while in edit mode changes the arrow size on the curve near the selected Control Points that are being adjusted (this is expected behavior).
The "radius for beveling" values do not update during scaling operations in edit mode (this is not a problem and is expected behavior).
The "radius for beveling" does update visually during scaling operations in object mode (this is not a problem). The arrows on the curve in edit mode show that the data has been updated despite the radius value in the N-panel not updating and displaying a value of 1 (this does appear to be a bug).
The "radius for beveling" values only change when applying the scale to the curve in object mode. The value not updating while the arrows update is a bug as far as I can tell and is inconsistent.
Applying scale also affects objects using the curve as their target curve modifier and instantly deforms the objects to a new size due to the curve "radius for bevel" values updating in association with the applied scale (this is confusing behavior to me).
It is interesting to note that no other Curve object data properties are changed/updated when scale is applied, including other Bevel subpanel settings in the Properties editor under the Object Data Properties
Exact steps for others to reproduce the error
[Please describe the exact steps needed to reproduce the issue]
- Open blend file. Delete default cube.
- Add a Bezier Circle and go to Properties Panel and Object Data Properties -> Geometry carat -> Bevel sub carat: Give the curve a small bevel depth value like 0.05m
- Toggle Edit Mode.
- Select all control points (vertices) in edit mode and take note of "radius for beveling" (or Mean Radius) value on the 3D View Sidebar Panel Item tab. It should read 1.0 for each control point.
- Scale all control points down to 0.1 in edit mode. Take note that arrow size on the curve, "radius for beveling" value, and circle geometry bevel depth does not change. The "radius for beveling" value on all control points is still 1.0.
- Toggle to object mode and scale Curve object to 10. Notice the change in size of the displayed Geometry Bevel increased 10 fold while the Depth value stays at 0.05m.
- Toggle edit mode and select all control points (vertices). Take note of increased size of arrows on curve. Then record the "radius for beveling" value. It should still read 1.0. (this is a bug since the data is physically changing the Geometry bevel visually and the curve arrows visually)
- Toggle to object mode and apply scale to the curve object.
- Toggle edit mode and note the arrow size and the "radius for beveling" value has now changed to 10, the arrow size remains unchanged, and the Geometry bevel depth is still 0.05m but it is still visually 10 times larger.
This becomes even more confusing when using the curve object as a target for another object's curve modifier (even more fun using array and curve modifiers together).
Additional steps.
- Create a new bez circle.
- Add a cube and set the scale to 0.1 and apply cube object scale.
- Give cube an array modifier and set Fit Type to Fit Curve and select the bezier circle as the target curve. Set relative array offset to 3 so you can watch both the object geometry and curve geometry easily during next steps.
- Add curve modifier to cube object and set Curve target object to bezier circle and deform axis to x.
- Perform steps 1 through 9 above and watch what happens to curve bevel geometry changing versus object geometry note changing while engaging in scaling operations.
- Notice how object shifts in scale by 10 times only when the curve scale is applied.
The object increases scale ONLY when applying the curve's scale. This is really confusing when scaling the curve in object mode and watching the Geometry bevel on the curve increase but the object geometry using the target for curve modifier stays the same size. The object size changes afterwards once the curve scale is applied due to the fact that the "radius for bevel" property updates fully at that time instead of partially.
If the scale on the "radius for bevel" is going to change it should probably change during scaling operations with the curve and stay the same new larger value when the curve scale is applied. OR just don't update the "radius for beveling" at all and let the user manually adjust it.
Scaling is desired for "radius for beveling" then: If there is an already "non-1.0" value set for each control point on the curve then the math operations should scale based on the value and the scale combined (multiplication of the two values like it is currently doing but is only happening during apply scale operation).