Commit Graph

1150 Commits

Author SHA1 Message Date
Omar Emara
4f51033708 Nodes: Implement Gabor noise
This patch implements a new Gabor noise node based on [1] but with the
improvements from [2] and the phasor formulation from [3].

We compare with the most popular existing implementation, that of OSL,
from the user's point of view:

  - This implementation produces C1 continuous noise as opposed to the
    non continuous OSL implementation, so it can be used for bump
    mapping and is generally smother. This is achieved by windowing the
    Gabor kernel using a Hann window.

  - The Bandwidth input of OSL was hard-coded to 1 and was replaced with
    a frequency input, which OSL hard codes to 2, since frequency is
    more natural to control. This is even more true now that that Gabor
    kernel is windowed as opposed to truncated, which means increasing
    the bandwidth will just turn the Gaussian component of the Gabor
    into a Hann window. While decreasing the bandwidth will eliminate
    the harmonic from the Gabor kernel, which is the point of Gabor
    noise.

  - OSL had three discrete modes of operation for orienting the kernel.
    Anisotropic, Isotropic, and a hybrid mode. While this implementation
    provides a continuous Anisotropy parameter which users are already
    familiar with from the Glossy BSDF node.

  - This implementation provides not just the Gabor noise value, but
    also its phase and intensity components. The Gabor noise value is
    basically sin(phase) * intensity, but the phase is arguably more
    useful since it does not suffer from the low contrast issues that
    Gabor suffers from. While the intensity is useful to hide the
    singularities in the phase.

  - This implementation converges faster that OSL's relative to the
    impulse count, so we fix the impulses count to 8 for simplicitly.

  - This implementation does not implement anisotropic filtering.

Future improvements to the node includes implementing surface noise and
filtering. As well as extending the spectral control of the noise,
either by providing specialized kernels as was done in #110802, or by
providing some more procedural control over the frequencies of the
Gabor.

References:

[1]: Lagae, Ares, et al. "Procedural noise using sparse Gabor
convolution." ACM Transactions on Graphics (TOG) 28.3 (2009): 1-10.

[2]: Tavernier, Vincent, et al. "Making gabor noise fast and
normalized." Eurographics 2019-40th Annual Conference of the European
Association for Computer Graphics. 2019.

[3]: Tricard, Thibault, et al. "Procedural phasor noise." ACM
Transactions on Graphics (TOG) 38.4 (2019): 1-13.

Pull Request: https://projects.blender.org/blender/blender/pulls/121820
2024-06-19 09:33:32 +02:00
Campbell Barton
df78d23f93 Merge branch 'blender-v4.2-release' 2024-06-19 16:01:53 +10:00
Campbell Barton
6eb2b5f47b Fix local extension errors being shown as remote errors
Also fix error with non extension add-on display by removing
an exception for extensions which is no longer needed.
2024-06-19 15:58:45 +10:00
Brecht Van Lommel
a26fd603b0 Merge branch 'blender-v4.2-release' 2024-06-18 21:19:24 +02:00
Nathan Vegdahl
295df94478 Anim: add "legacy behavior" option to Limit Rotation constraint
This adds a "Legacy Behavior" option to the Limit Rotation constraint that makes
it behave how Limit Rotation constraints did prior to
ed2408400d. Newly created constraints have this
option disabled, but versioning code enables the option on constraints from
older files to ensure that the behavior of e.g. existing rigs is not altered.

This is one part of a two-part fix for #123105. The other part is in PR
extensions/rigify#4.

Pull Request: https://projects.blender.org/blender/blender/pulls/123361
2024-06-18 18:29:25 +02:00
Pablo Vazquez
6684504d4f UI: Rename "Strip Colors" panel in theme editor
Rename to "Strip Color Tags" to match how these are called throughout
menus and overlay popover.
2024-06-18 16:13:28 +02:00
Nika Kutsniashvili
2aa388a5f2 UI: Correct alignment for active tool properties
Fix some active tools properties panel that didn't follow Blender's UI guidelines.
Only cosmetic changes, no functionality has changed.

Images and details in the pull request description.

Pull Request: https://projects.blender.org/blender/blender/pulls/122819
2024-06-17 15:38:13 +02:00
Casey Bianco-Davis
3b5cdbad6b GPv3: Add Set Handle Type operator
Adds the ability to change the handle types of points,
this only applies for curves with type bézier.

Pull Request: https://projects.blender.org/blender/blender/pulls/122965
2024-06-17 14:04:04 +02:00
Casey Bianco-Davis
d63b1dd178 GPv3: Add Set Curve Type operator.
Adds the ability to change the curve type of selected strokes.

First steps toward #121574.

Note: Currently there is no way to visually notice any change. This
will be added in subsequent commits.
Pull Request: https://projects.blender.org/blender/blender/pulls/122964
2024-06-17 13:56:13 +02:00
Falk David
10af923eac Grease Pencil: Move GPv3 out of experimental
This removes the experimental flags related to the GPv3 project.

Note that this doesn't remove GPv2 code just yet.
It just exposes GPv3 by default now.

Pull Request: https://projects.blender.org/blender/blender/pulls/122723
2024-06-17 13:50:41 +02:00
Jeroen Bakker
f8d95401d9 Merge branch 'blender-v4.2-release' 2024-06-17 09:37:12 +02:00
Jeroen Bakker
52d72d9fbb Fix #122847: Show Transparent Render Pass
EEVEE has a transparent render pass that renders materials where
the render mode is set to blended. This was introduced when EEVEE-Next
was still in development, but was never fully backported.

This PR adds the missing pieces.

Pull Request: https://projects.blender.org/blender/blender/pulls/123298
2024-06-17 09:35:03 +02:00
Campbell Barton
ed1e3d1c1f Merge branch 'blender-v4.2-release' 2024-06-15 18:43:33 +10:00
Miguel Pozo
a11d3c6c01 EEVEE: Add Ray Visibility > Camera support
FIx #122980.

Pull Request: https://projects.blender.org/blender/blender/pulls/123248
2024-06-15 08:54:20 +02:00
Richard Antalik
6079b16d52 VSE: Add movie clip panel
This moves move clip related properties to own movie clip panel as it
is done with other strip types that uses other datablocks. The clip
property is added to RNA, so this can be added to the panel.

Requested in #120357
2024-06-14 18:00:13 +02:00
Campbell Barton
e0bdb74d8d Merge branch 'blender-v4.2-release' 2024-06-14 15:46:24 +10:00
Campbell Barton
e93f0ee53a Extensions: add network timeout and connection limit preferences
These settings are used when running extension updates but may be
used for any operations that perform online access.
2024-06-14 15:32:07 +10:00
Sean Kim
b7975db04f Cleanup: Match toolbar order for sculpt gesture tools
Pull Request: https://projects.blender.org/blender/blender/pulls/123161
2024-06-13 16:28:14 +02:00
Bastien Montagne
de713122f3 Merge branch 'blender-v4.2-release' 2024-06-13 12:17:10 +02:00
Damien Picard
f87d4e4e40 I18n: Extract and disambiguate a few messages
Extract
- Cycles denoiser enum.
- Extensions user preferences UI.
- Node operator poll message from new node function.

Improve
- Split "(Enabled|Disabled) on startup, overriding the preference."
into two messages.

Disambiguate
- "Add" when describing the action of adding something should use the
  Operator context.
- "Dimensions", in noise textures.
- "Transform" as a noun, the matrix transform type of Geometry Nodes,
  as opposed to the verb to move things in space.
- "Parent" as a noun or verb (the parent of an object, to parent an
  object to another).

Some issues reported by Satoshi Yamasaki, deathblood, and Gabriel Gazzán.

Pull Request: https://projects.blender.org/blender/blender/pulls/122969
2024-06-13 12:15:55 +02:00
Omar Emara
cbabe2d3ef Compositor: Remove Auto Render option
This patch removes the Auto Render option from the compositor. This is
done for the following reason:

- The option didn't really work except in the case of transforming an
  object. So it wasn't really reliable.
- It made little sense to use since the introduction of the Viewport
  Compositor.
- It had a number of UX issues, including the fact that it can't be used
  with animation playback, and the fact that rendering can get in the
  way of the UI depending on the preferences for temporary editors.

Pull Request: https://projects.blender.org/blender/blender/pulls/123132
2024-06-13 07:29:37 +02:00
Miguel Pozo
22788ad1cf Merge branch 'blender-v4.2-release' 2024-06-11 21:22:55 +02:00
Miguel Pozo
6f724b83c6 Fix #122929: Freestyle options not visible in view layer properties (EEVEE) 2024-06-11 21:22:27 +02:00
Pratik Borhade
cea18e62c5 GPv3: Layer group color tags
Reused the collection color theme option for the layer group.
Introduced new operator change the icon color it can be accessed from
layer group context menu.

Part of #121390.

Pull Request: https://projects.blender.org/blender/blender/pulls/122873
2024-06-11 18:25:01 +02:00
Harley Acheson
4f36fb1afe Merge branch 'blender-v4.2-release' 2024-06-10 14:39:36 -07:00
Clément Foucault
e6ca5f00d5 EEVEE-Next: Rename lightprobe volume single sided to backface cull
This also modifies the RNA access path for consistency.
This was a long standing change that was oversighted.
2024-06-10 22:34:26 +02:00
Hans Goudey
2e4be975fe Cleanup: Formatting in geometry nodes add menu
Also remove the caps from the new menu idname. That was only done
for backwards compatibility with old menu names at some point.
2024-06-10 15:38:43 -04:00
Devashish Lal
d1455c4138 Geometry Nodes: Add STL Import Node
This commit adds an initial STL import node, the first of the nodes from the
current Google Summer of Code Project [0]. The importer is refactored to
output a mesh pointer, and a node is added to wrap around the importer.
The node supports error messages from the importer. A new experimental
option is added to hide the nodes by default until they're ready to be exposed
generally.

0: https://devtalk.blender.org/t/gsoc-2024-geometry-nodes-file-import-nodes/34482)

Pull Request: https://projects.blender.org/blender/blender/pulls/122418
2024-06-10 20:47:37 +02:00
Campbell Barton
8749a9c917 Merge branch 'blender-v4.2-release' 2024-06-10 22:23:24 +10:00
Campbell Barton
1e955fbff3 Merge branch 'blender-v4.2-release' 2024-06-10 22:23:21 +10:00
Campbell Barton
554b3c5bd9 Extensions: support custom-directory for system repositories
While this is reasonably obscure, not supporting this caused the UI
to be confusing and there is no strong reason not to support this.
2024-06-10 22:22:07 +10:00
Campbell Barton
0838e99979 Extensions: only show "use_cache" for remote repos
This option only makes sense for remote repos.
2024-06-10 22:22:05 +10:00
Richard Antalik
2ffd69aabf Merge branch 'blender-v4.2-release' 2024-06-10 13:21:05 +02:00
Richard Antalik
6dfed3a021 Fix #122895: Frame change does not work in VSE mixed view
Add timeline version of tweak tool to timeline+preview mixed view.

This was removed in 8c53a18c48. Previously tools combined keymaps for
both preview and timeline, but in combined view preview operators were
disabled.

Pull Request: https://projects.blender.org/blender/blender/pulls/122992
2024-06-10 13:20:03 +02:00
Campbell Barton
c4c3812894 Merge branch 'blender-v4.2-release' 2024-06-08 23:34:48 +10:00
Campbell Barton
3412a34145 Merge branch 'blender-v4.2-release' 2024-06-08 23:34:46 +10:00
Campbell Barton
b0232b4e0e Cleanup: various warnings from pylint for extensions & addons 2024-06-08 23:33:45 +10:00
Campbell Barton
5f06d3aa17 Extensions: consider system repositories read-only
The following operations have been removed for system repositories:

- Installing from disk.
- Uninstall extensions.
- Delete files (when removing the repository).

Also change the operator to remove a repository so the option to
remove files is now a boolean instead of an enum. While a dynamic
enum can be made to work, this option is logically a boolean.
2024-06-08 23:04:17 +10:00
Campbell Barton
c0c1f1884a Merge branch 'blender-v4.2-release' 2024-06-08 13:46:38 +10:00
Campbell Barton
4718d68349 Extensions: expose extensions debug option in release builds
These are useful for more verbose output and expose useful utilities
for development.
2024-06-08 13:32:24 +10:00
Falk David
b7c570c854 GPv3: Don't use unified paint settings for draw tools
Using unified paint settings for the draw tools as multiple issues.
As an artist, it is expected that changing a draw brush will change
its settings. Sharing the radius between draw brushes only leads
to frustration of having to change the radius back and forth.

Instead, we don't use unified paint settings for the tools in draw
mode and always use the settings on the brush.

Resolves #122157.

Pull Request: https://projects.blender.org/blender/blender/pulls/122886
2024-06-07 16:31:53 +02:00
Campbell Barton
69e6240587 Merge branch 'blender-v4.2-release' 2024-06-07 16:34:09 +10:00
Campbell Barton
dc0e559cbb Extensions: remove intermediate operators for upgrade and sync
The buttons to upgrade or sync extensions called extension
operators via bpy.app.handlers, requiring awkward glue-code
which didn't show error reports in to the user.

Remove these operators and call the upgrade & sync operators directly.
2024-06-07 16:33:03 +10:00
Campbell Barton
d8a2517622 Merge branch 'blender-v4.2-release' 2024-06-07 11:37:59 +10:00
Campbell Barton
dc9430c480 Extensions: support system repositories & BLENDER_SYSTEM_EXTENSIONS
Support for "System" extensions as an alternative to the current
"User" extensions repository.

The purpose of this change is to support bundling extensions for
offline work or in environments where users setting up thier own
extensions isn't desirable, see #122512.

Details:

The default "System" repository on Linux will for example use:
- `/usr/share/blender/4.2/extensions/{system}` For system installs.
- `./4.2/extensions/{system}` For portable installs.

- Blender's default startup now has a "System" repository
  which users or administrators may populate.

- Repositories can select between User/System paths,
  setting a custom path overrides overrides this setting.

- Add "BLENDER_SYSTEM_EXTENSIONS" (matching "BLENDER_LOCAL_EXTENSIONS").

Ref !122832
2024-06-07 11:36:20 +10:00
Campbell Barton
c225828aa8 Merge branch 'blender-v4.2-release' 2024-06-07 11:14:09 +10:00
Campbell Barton
881d83031e Cleanup: minor changes to extension repository handing
- Add a function to initialize all default repositories.
- Rename function for creating extensions.blender.org repo for clarity.

Prepare for !122832.
2024-06-07 11:02:48 +10:00
Jesse Yurkovich
954bd240c8 Merge branch 'blender-v4.2-release' 2024-06-06 17:16:57 -07:00
noodlebox
b73b663309 Fix: Redundant submenus are created in the Add menu for certain catalog names
A few of the recently added submenus are not included in the list of builtin
menus, so node assets under those catalog names will generate redundant submenus.
Fixes same issue as b49c84276c for newly added nested menus.

Pull Request: https://projects.blender.org/blender/blender/pulls/122855
2024-06-06 23:39:00 +02:00
Campbell Barton
0f5e816a7d Merge branch 'blender-v4.2-release' 2024-06-06 11:28:06 +10:00