Commit Graph

3492 Commits

Author SHA1 Message Date
YimingWu
2ee223b774 Clip Editor: Add clip.delete_track shortcut in dopesheet view
Previously there isn't a "delete" shortcut in dopesheet view of
the movie clip editor. Now the shortcut (`X` key) is added for
convenience.
2024-09-05 11:51:17 +08:00
Pratik Borhade
0bfad6cc5a GPv3: Wrong radius property in draw context menu
Mistake in 9ca6e049a7
Adjust draw brush properties based on `use_locked_size` status

Pull Request: https://projects.blender.org/blender/blender/pulls/127070
2024-09-04 12:58:49 +02:00
Pratik Borhade
0ef35bc475 UI: Expose Proportional edit in image editor mask mode
Proportional edit works with shortcut in mask mode of image editor but
it was never exposed in UI (header). Also move pivot point along with
proportional edit property to the right of mask template.

Pull Request: https://projects.blender.org/blender/blender/pulls/126482
2024-09-03 22:56:48 +02:00
Campbell Barton
e34d9eeac7 Cleanup: use C-style comments, double quote Python text 2024-09-03 21:22:34 +10:00
Campbell Barton
3cb95b0be9 Cleanup: avoid repetition in version extraction 2024-09-03 13:44:44 +10:00
Alaska
3196ef1636 Add a script to collect system information when Blender isn't opening
This commit adds a python script that can collect some of the
information necessary to fill out a bug report.

The primary use case is to help users collect system information for
a bug report in the case that Blender can't open.

CMD and sh files are included to help users use the Python script.

Ref !122191
2024-09-03 13:26:54 +10:00
Campbell Barton
d19c13eb82 Cleanup: spelling & punctuation in comments 2024-09-03 12:59:37 +10:00
Miguel Pozo
7a55bdeaf9 EEVEE: Enable translation of screen messages
Add `Instance::info_append` so it's easier to log correctly formatted
info, and `Instance::info_append_i18n` to support string localization.

Co-authored-by: Damien Picard
Co-authored-by: Bastien Montagne <mont29@noreply.localhost>
Pull Request: https://projects.blender.org/blender/blender/pulls/124257
2024-09-02 20:13:31 +02:00
Sybren A. Stüvel
433278233e Cleanup: formatting
Just running `make format`, no functional changes.
2024-09-02 18:05:55 +02:00
Bastien Montagne
b5ea3beaf9 Fix i18n message extraction tool after recent BPY/RNA fix.
Recent fix 21b820cd33 in BPY/RNA code broke introspection code of RNA
data in i18n message extraction code.

Luckily, it actually fixes things, and allows to remove some of the ugly
hacks we had in this code, especially regarding Operators handling.
2024-09-02 15:59:16 +02:00
YimingWu
7c52bbb30a Cleanup: Remove _has_gpv3 condition in python
GPv3 is no longer really a experimental feature now and the
experimental option is also removed already, so it does not
make much sense keeping this branch in the UI.
2024-09-02 21:21:03 +08:00
Sybren A. Stüvel
a6d7e12e22 Anim: New/Un-assign Slot operators
Add two new operators, `anim.slot_new_for_id` and
`anim.slot_unassign_from_id`. These are used in the Action editor and
the Animation panels in the Properties editor, to respectively create a
new Action Slot for an ID and to unassign whatever slot is currently
assigned to that ID.

The latter operator also replaces the C++ operator
`anim.slot_unassign_object`, which was specifically made for the
Dopesheet header. The Python ones are generic enough to be used there
too.

Pull Request: https://projects.blender.org/blender/blender/pulls/126943
2024-09-02 14:10:49 +02:00
Sybren A. Stüvel
f917b60036 Anim: add Action selectors to Material + Camera properties
In the Properties editor, add Action selectors to the Material
properties and the Camera properties.

For the Material, two Action selectors are shown: for the Material
itself and for its shader node tree. Those are separate IDs of different
types, and thus will always have separate Actions (until the Slotted
Actions are commonplace).

When the 'Slotted Actions' experimental feature is enabled, also show
the Action Slot selector underneath each Action selector.

The Animation panel in the Properties editor is (by default) always at
the bottom, just above the Custom Properties panel.

Pull Request: https://projects.blender.org/blender/blender/pulls/125666
2024-09-02 12:10:14 +02:00
Julien Duroure
780721de19 glTF exporter: fix error message if hook failed 2024-09-01 15:16:27 +02:00
Aaron Carlisle
a08005f484 Docs: Update rna manual references 2024-08-30 17:18:23 -04:00
Charlie Jolly
294994e4b9 Geometry Nodes: new Hash Value node
This node hashes various types into an integer. Note that hashes
cannot generally used as unique identifiers because they are not
guaranteed to be unique. It can be used to generate somewhat
stable randomness though in cases where White Noise does not
offer enough flexibility.

It uses hash functions from BLI_noise.hh. These are also used in
the White Noise node.

Pull Request: https://projects.blender.org/blender/blender/pulls/110769
2024-08-30 16:42:29 +02:00
YimingWu
b98b93ec8f Grease Pencil: Add menu corrections for GPv3
Correct line art icons for add menu in grease pencil v3, also
renamed "Suzanne" back to "Monkey" to keep it consistent with
GPv2.

Pull Request: https://projects.blender.org/blender/blender/pulls/126979
2024-08-30 15:43:40 +02:00
Jacques Lucke
1ee6a8fad5 Geometry Nodes: support customizing warning propagation
Previously, all errors, warnings and info messages were propagated from the node
that generates it to the top level node group. This is a good default, but may
not always be desirable. For example, someone may build a node group asset that
generates some warning that is irrelevant to the user to the asset. Now, the
asset author can selectively disable propagating warnings from that node.

Each node has a new `Warning Propagation` setting. It controls if warnings from
this node should be propagated to the parent group node. By default, everything
is propagated. One can also choose to propagate nothing, only errors or only
errors and warnings.

Note, this does not affect whether the warning is shown in the node itself, only
if the warning is propagated one level up!
Pull Request: https://projects.blender.org/blender/blender/pulls/126786
2024-08-30 12:06:48 +02:00
Julien Duroure
c132bd896f glTF exporter: children type check refactoring 2024-08-30 06:56:34 +02:00
Julien Duroure
11451a2082 glTF export: Add logging level control for export
This was already the case at import
2024-08-30 06:48:07 +02:00
Julien Duroure
4dad2a567d glTF: Use wait cursor instead of empty % cursor 2024-08-30 06:43:52 +02:00
Julien Duroure
8d575d3c85 glTF exporter: Enable exporting joint leaf at tail of leaf bones 2024-08-30 06:42:26 +02:00
Julien Duroure
5122255739 glTF: Manage Quaternion and Matrix attribute types for custom attributes 2024-08-30 06:39:52 +02:00
Julien Duroure
58141b7396 glTF exporter: set udim material names with tile number 2024-08-30 06:37:34 +02:00
Julien Duroure
69ab986370 glTF exporter: Regression: RGB to Shader socket unlit management 2024-08-30 06:29:42 +02:00
Julien Duroure
7c6975f6c8 glTF exporter: avoid double export
Make sure to not check instances inside instances collection when GN instance is enable.
2024-08-30 06:26:47 +02:00
Julien Duroure
6191eb1e9d glTF exporter: Fix custom prop when apply modifier
Since 4.2, props are Statically Typed
so no need to copy them in that case, because overwriting them will crash
2024-08-30 06:23:11 +02:00
Julien Duroure
42840ded01 glTF exporter: Fix UI after Blender changes 2024-08-30 06:20:04 +02:00
Julien Duroure
4e5093130c Fix #126920 glTF: Cleanup - file renaming
Long filepaths cannot be unzipped (by default) on Windows, so cleaning filenames to avoid too long paths
2024-08-30 06:00:10 +02:00
Jacques Lucke
e8b81065bc Geometry Nodes: support custom warnings in node groups
This implements the `Warning` node that allows node groups to communicate
expectations about input values to the user.

By default, the `Warning` node is only evaluated if the node group that contains
it is evaluated in any way. This is better than always evaluating it, because
that could trigger lots of unnecessary evaluation in parts of the potentially
large node tree which should be ignored. In this basic mode, the output of the
node should not be connected to anything and it must not be in a zone.

For more fine-grained control for when the `Warning` node should be evaluated,
one can use the boolean output which is just a pass-through of the `Show` input.
If this output is used, the `Warning` node will only be evaluated if its output
is used. A simple way to use it is to control a Switch node with it that e.g.
"disables" a specific output when the inputs are invalid. In this case, the
`Warning` node may also be in a zone.

The node allows the user to choose between 3 severity levels: Error, Warning and
Info. Those are the same levels that we use internally. Currently, the error and
warning mode are pretty much the same, but that may change in the future.

Pull Request: https://projects.blender.org/blender/blender/pulls/125544
2024-08-29 16:03:25 +02:00
Sybren A. Stüvel
090c7aa68e Anim: add operator for creating a new Action Slot to the dope sheet header
Add new operator `anim.slot_new_for_object`, which creates a new action
slot for the active object. Since this slot is created on the action
used by the object, it requires that this action exists and is a
layered/slotted action (which by definition includes empty actions).

Pull Request: https://projects.blender.org/blender/blender/pulls/126934
2024-08-29 15:37:03 +02:00
Campbell Barton
d497452a73 Cleanup: typo, spaces in comments, comment blocks & use double quotes 2024-08-29 17:16:44 +10:00
Alaska
2fd2af86e8 Fix incorrect export FBX time
Ref: !125717
2024-08-28 12:30:56 +10:00
YimingWu
c5bdaaf96c Python: Add a note for clarifying GreasePencilDrawing::strokes() validity
When point/curves count of a `GreasePencilDrawing` is changed, prior stroke
slices are no longer valid. This is not obvious when using the `stroke()`
call since it is meant to provide a easier access to the drawing data and
did not represent the actual data layout in the drawing, hence we need an
additional note in the document to tell users to be more careful.

Pull Request: https://projects.blender.org/blender/blender/pulls/126815
2024-08-27 17:51:30 +02:00
Alaska
6ccb33e9fe Shader: Add Metallic BSDF Node
Add Metallic BSDF Node to the shader editor.

This node can primarily be used to create more realistic looking
metallic materials than the existing Glossy BSDF node.

This commit does not add any new closures to Cycles, it simply exposes
existing closures that were previous hard to access on their own.

- Exposes the F82 fresnel type that is currently used by the
metallic component of the Principled BSDF. Results should match
between the Metallic BSDF and Principled BSDF when using the same
settings.
- Exposes the Physical Conductor fresnel type that was previously
limited to custom OSL scripts. The Conductor fresnel type accepts
IOR and Extinction coefficients to define the appearance of the
material based off real life measurements.

EEVEE only supports the F82 fresnel type with internal code to convert
the the physical conductor inputs in to a colour format for F82,
which can lead to noticeable rendering differences with
some configurations.

Pull Request: https://projects.blender.org/blender/blender/pulls/114958
2024-08-27 17:20:46 +02:00
Sybren A. Stüvel
f8af00e61b Anim: Action editor, only show Action selector if there is an active object
In the Action editor, only show the Action selector (and the matching
separator) if there actually is an active object to select it for.
2024-08-27 15:13:17 +02:00
Andrej730
798fbe7dbd Fix: Typo in extensions repository lock info message
`Fore` -> `Force`

Pull Request: https://projects.blender.org/blender/blender/pulls/126778
2024-08-26 12:28:52 +02:00
Campbell Barton
5cb29528e6 Cleanup: spelling in comments 2024-08-26 11:50:15 +10:00
Campbell Barton
780686f885 Cleanup: correct code-comment 2024-08-26 11:50:14 +10:00
Falk David
3ca9396cc3 Fix #126613: GPv3: Python: Writing to stroke.curve_type crashes Blender
Writing to the `curve_type` attribute directly is not allowed as there are other
updates needed and otherwise will result in a crash.

The fix makes sure the `curve_type` is read-only. To change the curve type,
the `grease_pencil.set_curve_type` operator has to be used for now.
2024-08-23 18:24:37 +02:00
Christoph Lendenfeld
51fd355c01 Anim: UI template for Action selectors
This PR is just taken over from @dr.sybren with
minor comments addressed.

Original PR: #125493

Co-authored-by: Sybren A. Stüvel <sybren@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/126561
2024-08-23 11:07:16 +02:00
Campbell Barton
fdd0b93cfa Cleanup: spelling in comments 2024-08-23 10:19:53 +10:00
Philipp Oeser
65930d2a03 Fix #125800: AttributeError when maximized the 3d view with asset shelf
For a brief moment when switching to a maximized screen full area, the
screen context is missing its `object` it seems, until the context is
properly set up again.

Prevent the 'Context' object has no attribute 'object' by just checking
if it is available

Pull Request: https://projects.blender.org/blender/blender/pulls/125905
2024-08-22 15:07:38 +02:00
John Kiril Swenson
715129bf5b VSE: ability to connect and disconnect strips in the VSE.
Adds the ability to connect and disconnect strips in the VSE.

- Connected strips have an icon indicating their status, and attempting
  to select one connected strip selects all other connected strips in
  that chain.
- If the user attempts to connect a strip that is already connected to
  other strips, that strip will disconnect itself from others before
  connecting to new strips.
- Preview selection also works in bulk if multiple video strips are
  connected together in the timeline.
- When adding new strips from the Add menu or the File Browser, strips
  from the same file are connected by default. There's an option to
  turn this off in Editing > Video Sequencer user preferences.
- It is possible to individually tweak strips/handles and ignore
  connections with Alt+Click.
  - This shortcut overrides the old keymap item for "Linked Handle"
    selection. The property still exists if people want to use that
    shortcut for its old purpose.
- To make sure that connections remain valid even after duplication,
  I've added a condition to `seq_new_fix_links_recursive` that also
  updates connections using the `seq->tmp` var. (A note -- I've updated
  the comment for this field in `DNA_sequence_types.h` because the var
  is only used for duplication now. It was once present in
  `select_more_less_seq__internal` to be used for linked selection but
  is gone now).
  - There are also functions to cut one-way links and make sure that
    all strips are bidirectionally connected after duplicating.

Pull Request: https://projects.blender.org/blender/blender/pulls/124333
2024-08-22 14:54:42 +02:00
Dalai Felinto
0f2f9cd230 Extensions: Update the example license on the manifest template
Use GNU/GPL 3.0 or later instead of 2.0 or later.
2024-08-22 10:56:54 +02:00
Lukas Tönne
2e9fc8ef2d GPv3: Segment selection support
Support segment mode in Grease Pencil v3 selection operators.
This is a continuation of #109221.

Segment selection works in multiple stages:
1. When enabled, the 2D evaluated lines for all visible curves are
entered into a BVH tree. This tree is used to find intersections later
on. All the visible drawings are in the tree, an `OffsetIndices` array
is used to record ranges of BVH elements for each drawing.
2. Primary selection functions get alternative versions that produce an
`IndexMask` instead of writing directly to selection attributes. This
makes it possible to detect select actions on points that are already
selected. Using a delta of selection attributes for this is not enough
to detect such user actions (and inefficient).
3. In segment mode the `IndexMask` is extended to fully cover segment
points (or exclude them when deselecting respectively). This first
performs and intersection test using the BVH tree, then finds all point
range with selected elements.
4. Finally the extended index mask is applied to selection attributes as
usual.

Pull Request: https://projects.blender.org/blender/blender/pulls/126027
2024-08-21 13:35:26 +02:00
Amelie Fondevilla
625ef79f57 GPv3: Soft mode for the Eraser tool
Implementation of the soft mode of the eraser tool for GPv3.
In this mode, the eraser decreases the opacity of the points it hits.
If the opacity of a point falls below a threshold, then the point
is removed from the curves.

Pull Request: https://projects.blender.org/blender/blender/pulls/110310
2024-08-20 17:24:03 +02:00
Christoph Lendenfeld
db6113048d Fix #126129: Bake Action not working
With layered actions, the bake action wasn't working.
More specifically it failed to create a slot on the action
and link that slot on the animation data.

The fix is to create the slot.

Pull Request: https://projects.blender.org/blender/blender/pulls/126546
2024-08-20 16:45:34 +02:00
Lukas Tönne
400c738db9 GPv3: Import and export for SVG and PDF
Implements the SVG import/export and PDF export operators for GPv3.

Pull Request: https://projects.blender.org/blender/blender/pulls/123996
2024-08-20 11:41:37 +02:00
Falk David
850e316688 Refactor: Move Grease Pencil helper classes to _bpy_internal
This moves the helper python classes from `scripts/modules/grease_pencil_python.py`
to `scripts/modules/_bpy_internal/grease_pencil.py`.

It also cleans up the code a bit more. No functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/126403
2024-08-20 11:11:53 +02:00