Age | Commit message (Collapse) | Author |
|
RNA collections can store lists of ID pointers, so they require a similar handling for RNA pointers.
|
|
|
|
Currently viewers and previews only display node trees that have at least one node with fixed resolution size. When all inputs are generated, nothing is displayed in most cases (RGB Node is displayed as a single pixel on previews). By generated I mean inputs not having resolution on their own, they create content dynamically given an output resolution.
This patch adds support for those cases by using an appropriate preferred resolution on Viewers/Previews which propagates to generated inputs as output resolution. Now:
- Viewers will display generated inputs with scene render resolution.
- Previews will display them with scene aspect ratio.
This is consistent with final render result and respects relative space.
The benefit for the user is being able to compose images without any input source. For example for creating mask images or simple backgrounds.
Reviewed By: Jeroen Bakker
Differential Revision: https://developer.blender.org/D10611
|
|
|
|
|
|
The goal of this patch is to remove the boilerplate code required to get
a string property that maps to an allocated char pointer in dna.
Previously, one to to provide three callbacks, all of which are not necessary
anymore for a simple string property.
Currently, when an empty string is assigned, the `set` function will always
allocate it as well, instead of assigning `NULL` to the pointer. Some structs
might support `NULL` while others don't, so this is the safer option for now.
Differential Revision: https://developer.blender.org/D10773
|
|
There were multiple cases that could lead to problems like moving meta
strip into itself or into it's children meta strips.
Print error string to console when invalid action is requested.
|
|
Cycles, Eevee, OSL, Geo, Attribute
Based on outdated refract patch D6619 by @cubic_sloth
`refract` and `faceforward` are standard functions in GLSL, OSL and Godot shader languages.
Adding these functions provides Blender shader artists access to these standard functions.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D10622
|
|
Made it just a bit smaller (same size as renderlayers node).
|
|
|
|
Set the min/max and default node size of the cryptomatte node.
|
|
Differential Revision: https://developer.blender.org/D10789
|
|
Currently, when a taper object is specified, the radius of the spline is
ignored. This patch adds a new option to control how the taper object
affect the effective radius of the spline. The option allow three modes
of operation:
- Override: The old method. The radius of the spline is ignored and
overridden.
- Multiply: The radius of the spline is multiplied by the taper radius.
- Add: The radius of the spline is added to the taper radius.
Ref D10779
|
|
Sorting of links on multi-input sockets where not recalculated after
using the knife operator. Added call to resort function before
cutting operator finishes.
Reviewer: Jacques Lucke
Differential Revision: https://developer.blender.org/D10783
|
|
|
|
Regression in e9182a0f5d0b1700e4bcdc11d0110ba7e9b97a0c
|
|
|
|
|
|
|
|
Regression in 913b71bb8be9b40da9c0f0cd21016c784a56dc18
|
|
Regression in 3d9ee83d88186248fb66823662a04d1a0429e1ae
|
|
|
|
- Rename:
`BKE_gpencil_object_material_get_index_name`, to
`BKE_gpencil_object_material_index_get_by_name`
Matching `BKE_gpencil_layer_get_by_name`.
- Move logic to ensure named materials into a new function:
`BKE_gpencil_object_material_ensure_by_name`
|
|
|
|
Also replace "Feature" with "LineArt" in enum names.
|
|
No need for a module to define a single panel, since this is an
object panel it can be included with other object panels.
If centralizing line-art properties is needed in the future,
this can be done in a `*_common` module.
|
|
The stated reason for this no longer applies.
|
|
The clipping plane bias is an implementation detail,
don't use this in the RNA name.
|
|
Replace `int editmode` with `const bool is_editmode`.
No functional changes.
|
|
We need to return the global context collection if it is not found in
the data path.
Also fix pinning of the collection tab.
|
|
In this case both the mirror object and object itself moving in time may
change the geometry and must be checked.
Differential Revision: https://developer.blender.org/D10757
|
|
In some multi-functions (such as a simple add function), the virtual method
call overhead to access array elements adds significant overhead. For these
simple functions it makes sense to generate optimized versions for different
types of virtual arrays. This is done by giving the compiler all the information
it needs to devirtualize virtual arrays.
In my benchmark this speeds up processing a lot of data with small function 2-3x.
This devirtualization should not be done for larger functions, because it increases
compile time and binary size, while providing a negilible performance benefit.
|
|
|
|
Following some discussion among the geometry nodes team, it was decided
that keeping the primitive nodes simpler and requiring a separate
transform node to move the generated geometry from the origin would
be better.
- It's more consistent with the current general idea of "building
block nodes"
- It makes more sense for the future when it will be possible to
use instancing to control the transforms.
- It reduces UI clutter when the controls are not necessary.
|
|
|
|
Although it works well in most cases, the algorithm to detect if a point
is within the limits of the camera does not work well in othographic mode.
This commit also adds the option `V3D_PROJ_TEST_CLIP_FAR` (currently unused).
Differential Revision: https://developer.blender.org/D10771
|
|
The issue was caused by the prefetch code having LOCK_MOVIECLIP lock
acquired while reading frames from the movie files. The need of the
lock was coming from the fact that `clip->anim` can not be accessed
from multiple threads, so that was guarded by a lock. The side effect
of this lock was that the main thread (from which drawing is happening)
did not have any chance passing through it in the cache code because
the prefetch happens so quickly.
The solution is to create a local copy of the clip with its own
anim handler, so that read can happen without such lock.
The prefetch is slower by an absolute number in seconds (within 10%
in tests here), but it is interactive now.
|
|
Re-adds a legacy document icon for macOS 10.14 Mojave that is
consistent with the system generated document icon on macOS 11
Big Sur. It uses the old-style document sheet icon, but includes the
file extension underneath the Blender icon (unlike the previous
legacy document icon that was removed in D10267).
Adds the missing description for the exported type identifier.
Finder now correctly displays “Blender File” instead of “data”
for Blender files.
Differential Revision: https://developer.blender.org/D10746
|
|
|
|
This option is only valid in Edit mode. Also changed the space between options to improve UI.
Reviewed by: @mendio
|
|
This helps to keep animation buttons grouped.
|
|
The root of the issue was caused by the PredictMarkerPosition()
always returning false when tracking backwards. This was making
it so tracker always had to run brute initialization, which is
an expensive operation.
From own timing here:
- Tracking forward takes 0.667637 seconds
- Tracking backward used to take 2.591856 seconds
- Tracking backward now takes 0.827724 seconds
This is a very nice speedup, although the tracking backwards is
still somewhat slower. Will be investigated further as part of
a regular development.
|
|
Code rebuilding/ensuring the sanity of the collection hierarchy was not
checking for a same collection being child of the same parent multiple
times.
This was already prevented to happen in code adding collections to other
collections, but not for the remapping case.
|
|
In collection/viewlayer synchronization code, in some cases, there are
extra unused view layer collections left in old list after all needed
ones have been moved to the new list.
Found while working on T86741.
|
|
|
|
The text is unecessary and it's always cut off anyway.
|
|
Those nodes are leftovers from my work on particle nodes and are not needed currently.
They can be added back easily if they become necessary.
|
|
Previously, different Random Float nodes would generate different values
depending on where they are in the node group hierarchy. This can be useful,
but should definitely not be the default behavior, because it is very inconsistent
with other nodes.
|
|
Previously, the signature of a `MultiFunction` was always embedded into the function.
There are two issues with that. First, `MFSignature` is relatively large, because it contains
multiple strings and vectors. Secondly, constructing it can add overhead that should not
be necessary, because often the same signature can be reused.
The solution is to only keep a pointer to a signature in `MultiFunction` that is set during
construction. Child classes are responsible for making sure that the signature lives
long enough. In most cases, the signature is either embedded into the child class or
it is allocated statically (and is only created once).
|
|
The sequencer header needs to be drawn, even if the returned
variables aren't used.
|