Commit Graph

15949 Commits

Author SHA1 Message Date
Nathan Vegdahl e26d287520 Fix #112018: increase AgX LUT resolution
AgX exhibited some banding-like artifacts that were due to being
approximated with a 3D LUT.  This commit resolves that by increasing
the LUT resolution enough to mitigate the artifacts and make them
unnoticeable.

Additionally:
- The previous LUTs were written in a space-inefficient way, using
  e.g. "0.000000" instead of "0".  The new LUTs are written more
  efficiently, avoiding quite as dramatic a file size increase as
  usually accompanies 3D LUT resolution increases.
- The previous LUTs included output values greater than 1.0, which was
  both incorrect for a tone mapper, and also pointless since Blender
  immediately clips them anyway.  The new LUTs clip to 1.0.  This also
  allows the more efficient writing to squeeze even more space savings
  out of the LUTs.
- The previous inverse AgX LUT contained NaNs.  Those have been
  replaced with 0.0 in the new inverse LUT.

Note that due to discrepancies between the LUTs previously provided
to Blender and the AgX scripts that were later published, the color
transform in these LUTs are slightly different.  But they are close, and
equivalently good.

Pull Request: https://projects.blender.org/blender/blender/pulls/113253
2023-10-06 10:12:24 +02:00
Francesco Siddi e0fe8d4698 Fix AppIcon on macOS
The 128x128 version presented some resizing artifacts. It has now
been re-done specifically for that resolution. This icon is only
visible in non-retina displays.

Pull Request: https://projects.blender.org/blender/blender/pulls/112807
2023-09-27 23:45:10 +02:00
Richard Antalik 86a0d0015a VSE: Improve retiming UI
Currently retiming is quite awkward, when you need to retime multiple
strips strips in sync. It is possible to use meta strips, but this is
still not great. This is resolved by implementing selection.

General changes:
Gizmos are removed, since they are designed to operate only on active
strip and don't support selection.
Transform operator code is implemented for retiming data, which allows
more sophisticated manipulation.
Instead of drawing marker-like symbols, keyframes are drawn to
represent retiming data. Retiming handles are now called keys. To have
consistent names, DNA structures have been renamed.
Retiming data is drawn on strip as overlay.

UI changes:
Retiming tool is removed. To edit retiming data, press Ctrl + R, select
a key and move it. When retiming is edited, retiming menu and
context menu shows more relevant features, like making transitions.
Strip and retiming key selection can not be combined. It is possible to
use box select operator to select keys, if any key is selected.
Otherwise strips are selected.
Adding retiming keys is possible with I shortcut or from menu.
Retiming keys are always drawn at strip left and right boundary. These
keys do not really exist until they are selected. This is to simplify
retiming of strips that are resized. These keys are called "fake keys"
in code.

API changes:
Functions, properties and types related to retiming handles are renamed
to retiming keys:
retiming_handle_add() -> retiming_key_add()
retiming_handle_move() -> retiming_key_move()
retiming_handle_remove() -> retiming_key_remove()
retiming_handles -> retiming_keys
RetimingHandle -> RetimingKey

Retiming editing "mode" is activated by setting `Sequence.show_retiming_keys`.

Pull Request: https://projects.blender.org/blender/blender/pulls/109044
2023-09-27 01:45:59 +02:00
Harley Acheson 25b9e8b13b UI: Inter Font with regular (non-slashed) zero
Inter font with "tnum" (Tabular numbers), "ss01" (open digits), and
"ss04 (disambiguation w/o zero). Therefore with a regular zero, not
slashed.

Pull Request: https://projects.blender.org/blender/blender/pulls/112819
2023-09-24 22:44:09 +02:00
Harley Acheson 1be6fb6b07 UI: Inter with Features ss01, ss02, and tnum
Same (current) version of Inter but with some OpenType features set ON:
"Open digits", "Disambiguation", and "Tabular numbers".

Pull Request: https://projects.blender.org/blender/blender/pulls/112795
2023-09-24 00:58:28 +02:00
Harley Acheson f58f6d0338 UI: Replace UI Font with Inter Regular v3.19
Replace default UI font DevaVuSans with Inter Regular v3.19

Pull Request: https://projects.blender.org/blender/blender/pulls/112603
2023-09-21 22:44:07 +02:00
Pablo Vazquez a59ec4c936 UI: Rename Eevee to EEVEE in labels/tooltips
Remove ambiguity of Eevee/EEVEE in labels, tooltips, and docs.

The correct spelling is "EEVEE".

Pull Request: https://projects.blender.org/blender/blender/pulls/112501
2023-09-18 12:28:36 +02:00
Pablo Vazquez 2f31077463 Fix #112032: Theme: Wrong colors editing list items
Fixed by using a slightly transparent white color that blends
correctly with the background of text inputs and list items.

Also use the same colors in the Text Editor for consistency in both
Dark and Light themes.
2023-09-15 13:00:05 +02:00
Harley Acheson fa32379def UI: Allow Integer Thumbnail Size Range
Instead of four discrete thumbnail sizes, allow the user to instantly
zoom to any integer size from 16-256. This also changes the default to
96 from the current 128.

Pull Request: https://projects.blender.org/blender/blender/pulls/105815
2023-09-13 19:56:53 +02:00
Francesco Siddi dbe890dd3e macOS: update application icon
Follow-up to #111232.

- Fix 128x128px version, rendered poorly on non HiDPI displays
- Ensure all versions of the icon have the correct dimensions. In the
  previous version, one icon was off by 2px due to downsampling
- Remove unused large versions, makes file 10x smaller

Pull Request: https://projects.blender.org/blender/blender/pulls/112033
2023-09-06 19:33:33 +02:00
Brecht Van Lommel 6bdf0b660a macOS: update app icon to have dark rounded square background
Following current macOS guidelines.

Created by Francesco Siddi.

Pull Request: https://projects.blender.org/blender/blender/pulls/111232
2023-09-04 19:19:43 +02:00
Rawalanche 0e090369d6 Fix #109439: Use List Item widget colors for View Item widgets
As concluded in discussion under #109439, the View Item widgets are
supposed to use List Item widget theme colors. This patch does that.

Co-authored-by: Harley Acheson <harley.acheson@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/111584
2023-09-01 20:02:20 +02:00
Rawalanche 411cd827b7 Nodes: Move Auto-Offset toggle to User Preferences
Move Auto-Offset toggle from Node Editor View menu
into the Editing > Node Editor section of User Preferences,
to reflect its use as a workflow option not configured
per editor or per file.

Pull Request: https://projects.blender.org/blender/blender/pulls/111589
2023-08-29 01:18:33 +02:00
Campbell Barton b150b47720 UI: add a preference for the number of samples used for FPS playback
This was hard coded to 8, which can still result in a number that
jitters making the overall FPS difficult to measure.

The default is still 8, but this is now a preference that can be
increased for values that don't jitter as much.
2023-08-25 19:33:48 +10:00
Zijun Zhou 23fc8126be Color management: Shrink Filmic LUT size down without noticeable difference
This PR shrinks the Filmic LUT's size down without causing noticeable
difference, making the overall LUT package size smaller. There should be no
functional change on the user end.

Pull Request: https://projects.blender.org/blender/blender/pulls/111380
2023-08-22 15:30:12 +02:00
Zijun Zhou a9053f7efb Color management: Add AgX view transform and make it default
On a user level this view transform provides much better handling of colors in
the over-exposed areas.

With this configuration the following display devices are available, including
AgX view transform for them:
* sRGB
* Display P3
* Rec.1886
* Rec.2020

NOTE: There is no Filmic view transform available for the newly added display
devices.

AgX also brings an implementation of False Colors view transform, which replaces
Filmic-based, and is available for all display devices.

The backward compatibility is preserved. The new files will default to AgX view
transform, which makes it non-forward compatible.

More technical details is available in the original PR #106355.
Please note that the PR has been split into more incremental changes when
was landing.

Pull Request: https://projects.blender.org/blender/blender/pulls/111099
2023-08-22 12:53:15 +02:00
Pablo Vazquez eef2b61e91 Theme: Set 3D Viewport background to single color
The default vignette effect introduces issues reported several times
on various hardware configurations.

It would still be nice to figure out the issue and fix it in the
vignette effect code. For now, simply use single-color in the
default theme.

As agreed during the 2023-08-15 User Interface Module meeting.

Fixes #93627
Closes #106699
2023-08-16 18:45:21 +02:00
Campbell Barton e955c94ed3 License Headers: Set copyright to "Blender Authors", add AUTHORS
Listing the "Blender Foundation" as copyright holder implied the Blender
Foundation holds copyright to files which may include work from many
developers.

While keeping copyright on headers makes sense for isolated libraries,
Blender's own code may be refactored or moved between files in a way
that makes the per file copyright holders less meaningful.

Copyright references to the "Blender Foundation" have been replaced with
"Blender Authors", with the exception of `./extern/` since these this
contains libraries which are more isolated, any changed to license
headers there can be handled on a case-by-case basis.

Some directories in `./intern/` have also been excluded:

- `./intern/cycles/` it's own `AUTHORS` file is planned.
- `./intern/opensubdiv/`.

An "AUTHORS" file has been added, using the chromium projects authors
file as a template.

Design task: #110784

Ref !110783.
2023-08-16 00:20:26 +10:00
Zijun Zhou 6923f7a153 Color management: Add and Rename Colorspaces
This is the next step towards AgX view transform project.

This is a sanitization pass over the existing color space names, as well as
addition of some new spaces. For example, the name Linear makes no sense when
there are a bunch of Linear spaces. An aliases are included for backwards
compatibility.

Some of the space descriptions and family tags are also updated., which also
involves in putting `False Color` to `inactive_colorspaces` instead of using
`family: display` filtering.

The spaces are now:

- Linear components of the display spaces
  - Linear Rec.709
  - Linear DCI-P3 D65
  - Linear Rec.2020
- Linear ACES spaces
  - ACES2065-1
  - ACEScg (Changed from `Linear ACEScg` to `ACEScg` since ACEScg already
    implied a linear transfer function, otherwise using `Linear AP1 ACES`
    might make more sense. Same goes for ACES2065-1)
- Linear FilmLight E-Gamut
  This is for AgX's LUT input encoding. It can potentially be useful for interop.
- Display spaces
  - sRGB
  - Display P3
  - Rec.1886
  - Rec.2020
- Filmic Components
  - Filmic Log
  - Filmic sRGB
  - False Color

Ref #110685

Pull Request: https://projects.blender.org/blender/blender/pulls/110941
2023-08-09 18:00:45 +02:00
Colin Marmond b8eb7d18e9 Nodes: experimental node previews in the shader editor
First implementation of node previews in the shader node editor. Using
the same user interface as compositor node previews, most shader nodes
can now be previewed (except group in/output and material output).

This is currently still an experimental feature, as polishing of the
user experience and performance improvements are planned. These will
be easier to do as incremental changes on this implementation.

See #110353 for details on the work that remains to be done and known
limitations.

Implementation notes:

We take advantage of the `RenderResult` available as `ImBuf` images to
store a `Render` for every viewed nested node tree present in a
`SpaceNode`. The computation is initiated at the moment of drawing nodes
overlays.

One render is started for the current nodetree, having a `ViewLayer`
associated with each previewed node. We separate the previewed nodes in
two categories: the shader ones and the non-shader ones.
- For non-shader nodes, we use AOVs which highly speed up the rendering
  process by rendering every non-shader nodes at the same time. They are
  rendered in the first `ViewLayer`.
- For shader nodes, we render them each in a different `ViewLayer`, by
  rerouting the node to the output of the material in the preview scene.

The preview scene takes the same aspect as the Material preview scene,
and the same preview object is used.

At the moment of drawing the node overlay, we take the `Render` of the
viewed node tree and extract the `ImBuf` of the wanted viewlayer/pass
for each previewed node.

Pull Request: https://projects.blender.org/blender/blender/pulls/110065
2023-08-08 17:36:06 +02:00
Zijun Zhou 1bcf31a874 Color management: Refactor OCIO config to be CIE XYZ I-E based
The change is motivated by using the actual CIE standard, preparing for the
Spectral Cycles, and making followup AgX integration more straight forward.

On a user level this change renames XYZ space to Linear CIE-XYZ D65, and
introduces Linear CIE-XYZ E.

The aliases are configured so that the backward compatibility is preserved.
The forward compatibility will be achieved by committing an alias name to the
3.6 release branch.

Ref #110685
2023-08-08 15:11:10 +02:00
ok_what 5f0a8759b0 VSE: Improve drawing of strip title and preview
This patch includes set of smaller changes to address visual
inconsistencies and bugs:

- Strip previews are drawn under title bar
- All strip previews now disappear when there isn't enough space for
  drawing
- Like the sound strip, the color strip expands to fill the whole strip
  when there is little vertical space, "taking over" the strip title
  Color is more important visual indicator than the name of the strip
- Disabling strip title no longer disables strip handle frame previews
- All strip previews are now be affected by the "Show overlays" toggle
- Turning off strip text overlay no longer makes the color strip
  preview disappear
2023-08-07 21:35:45 +02:00
Zijun Zhou f5e567b4a8 Color Management: Use OCIO's built-in function for sRGB color space
Use OCIO's built-in functionality for sRGB which allows to have un-clipped
range of the input colors. The lookup tables are now removed.

Should be no functional changes on the user side.
However, it is possible that this change does not preserve exact per-pixel
value due to difference in precision.

Ref #110685

Pull Request: https://projects.blender.org/blender/blender/pulls/110712
2023-08-07 17:52:29 +02:00
Julian Eisel 8b19477e9c UI: Support asset shelves in 3D Views
The previous commit introduced all the basic bits and pieces necessary
to support asset shelves as experimental feature, but didn't actually
add support for any specific editor. With this commit asset shelves can
be registered in 3D Views, which should soon be used by the Pose Library
add-on to replace its previous UI in the sidebar (see
blender/blender-addons#104546). Note that until then, there will still be no
actual asset shelf to display.

Also adds:
- Toggle to hide/unhide the asset shelf under "View" -> "Asset Shelf"
- 3D View theme settings for the asset shelf regions.

None of the changes are visible if the experimental option for the asset
shelf is not enabled.

Approved as part of #104831, then split off as separate commit.

Pull Request: #110767
2023-08-03 16:59:50 +02:00
Zijun Zhou b2b7b37139 Color Management: Clean up no longer used colorspaces, display device, and LUTs
This is a Step 1 of the AgX project integration, which is focused on cleaning
up legacy aspects of the configuration.

Delete all not longer used colorspaces and their LUT files. This includes:
nuke_rec709, lg10, XYZ display device and its standard view colorspace.

The nuke_rec709, lg10 were not used, and the XYZ display device was initially
added to support output for a DCP compliant J2K files. Unfortunately, some of
the crucial transform was missing from this initial configuration, so often a
custom OCIO configuration was needed. With the addition of Filmic and now with
AgX this really became not-so-usable use-case. Also, there is no display device
which is XYZ and on which Blender can realistically run.

The None display device has duplicated functionality as the Raw view in sRGB
display. Its need originated for the compatibility with legacy "No Color
Management" option in Blender. It is also missing in the fallback color
management implementation. So, now use sRGB with Raw view to replicate the
old behavior. There will be a separate do-version commit after this one to help
transitioning the current files to the new configuration.

The Raw and Non-Color are duplicates of each other, there is no need to have
both of them. Since users are more familiar with Non-Color, and it's also the
one assigned as the data role, will keep Non-Color and remove Raw. For the
compatibility the Raw is an alias of the Non-Color space.

Ref #110685
2023-08-01 14:57:45 +02:00
Jacques Lucke 3d73b71a97 Geometry Nodes: new Repeat Zone
This adds support for running a set of nodes repeatedly. The number
of iterations can be controlled dynamically as an input of the repeat
zone. The repeat zone can be added in via the search or from the
Add > Utilities menu.

The main use case is to replace long repetitive node chains with a more
flexible alternative. Technically, repeat zones can also be used for
many other use cases. However, due to their serial nature, performance
is very  sub-optimal when they are used to solve problems that could
be processed in parallel. Better solutions for such use cases will
be worked on separately.

Repeat zones are similar to simulation zones. The major difference is
that they have no concept of time and are always evaluated entirely in
the current frame, while in simulations only a single iteration is
evaluated per frame.

Stopping the repetition early using a dynamic condition is not yet
supported. "Break" functionality can be implemented manually using
Switch nodes in the  loop for now. It's likely that this functionality
will be built into the repeat zone in the future.
For now, things are kept more simple.

Remaining Todos after this first version:
* Improve socket inspection and viewer node support. Currently, only
  the first iteration is taken into account for socket inspection
  and the viewer.
* Make loop evaluation more lazy. Currently, the evaluation is eager,
  meaning that it evaluates some nodes even though their output may not
  be required.

Pull Request: https://projects.blender.org/blender/blender/pulls/109164
2023-07-11 22:36:10 +02:00
Brecht Van Lommel 6ff7d0a796 Fix mistake in PyPI release instructions, improve console output 2023-07-03 17:00:34 +02:00
Brecht Van Lommel 92334b94a6 Release: add script to automate publishing to PyPI
This is still manual now, but the script is ready to be used by the buildbot.

Pull Request: https://projects.blender.org/blender/blender/pulls/109653
2023-07-03 16:40:49 +02:00
Thomas Dinges 588975739a Merge branch 'blender-v3.6-release' 2023-06-26 19:45:08 +02:00
Thomas Dinges 91ca4f581b Release: Update license file for OpenSSL 3.0.9. 2023-06-26 19:44:09 +02:00
Thomas Dinges dac8ef53a3 Merge branch 'blender-v3.6-release' 2023-06-26 17:15:48 +02:00
Thomas Dinges 08ffb77279 Release: Updates for freedesktop file. 2023-06-26 17:14:40 +02:00
Thomas Dinges 11fbf58a67 Merge branch 'blender-v3.6-release' 2023-06-22 09:23:01 +02:00
Thomas Dinges 80e518bdd4 Release: Update freedesktop file for 3.6. 2023-06-22 09:20:16 +02:00
Campbell Barton 7d7ac591c8 Cleanup: minor changes to BKE_appdir_font_folder_default
- Ensure a trailing slash in BKE_blendfile_userdef_from_defaults
  instead of in-line platform specific checks.
- Take a buffer size argument for the directory.
- Use the documented size for SHGetSpecialFolderPathW wchar_t argument.
- Remove use of unsafe `wcscat` on WIN32
2023-06-22 13:42:27 +10:00
Campbell Barton 39851db1fa Linux: remove historic bourne shell argument expansion workaround
This is a history workaround not needed for modern shells
(fixed with bourne shell SRV3, 1986).

This isn't used in other wrappers (snap package) for e.g.
2023-06-22 13:17:28 +10:00
Brecht Van Lommel f4e6981513 Merge branch 'blender-v3.6-release' into main 2023-06-21 15:15:23 +02:00
Brecht Van Lommel 17fa168a3d Linux: add launcher script to fix issue launching on Steam
The steam environment sets LD_LIBRARY_PATH with a libtbb.so.2 that is
incompatible with our own. This wrapper scripts gives our own library
priority.

There is a more modern "Steam Linux Runtime" that can be used instead of
the "LD_LIBRARY_PATH Steam Runtime" and which launches Blender, but it
fails to detect GPU compute libraries. So that was not an option.

Ref #107385

Pull Request: https://projects.blender.org/blender/blender/pulls/109169
2023-06-21 14:49:27 +02:00
Thomas Dinges 897bd3f431 Merge branch 'blender-v3.6-release' 2023-06-20 17:00:54 +02:00
Thomas Dinges 4b0dc9eb29 License: Update THIRD-PARTY-LICENSES doc for 3.6. 2023-06-20 17:00:11 +02:00
Campbell Barton 65f99397ec License headers: use SPDX-FileCopyrightText in all sources 2023-06-15 13:35:34 +10:00
Richard Antalik 58d8a2ed67 Revert "Merge branch 'blender-v3.6-release'"
This reverts commit 01f0f8b86c, reversing
changes made to 26b5de6865.
2023-06-14 04:47:53 +02:00
Richard Antalik 01f0f8b86c Merge branch 'blender-v3.6-release' 2023-06-14 04:41:57 +02:00
Richard Antalik b77e7480ef VSE: Remove retiming tool for 3.6 release
This reverts commits:
e1f6587f12
b4100ed377
6749593aec
a97cae3efc
559898709f
e4eb9e04e0
bb1c503bee
b21695a507
7bf56e5c75
4dc026ec8e
354ef89d20

Reason for reverting is to not introduce this feature with current UI.

Pull Request: https://projects.blender.org/blender/blender/pulls/108870
2023-06-14 04:25:52 +02:00
Philipp Oeser 10b0ed58f8 Merge branch 'blender-v3.6-release' 2023-06-08 10:22:58 +02:00
Philipp Oeser 7ffd73100e Fix #106759: Error on running blender_icons_geom.py with curve
288e7d0af0 added support for legacy curves, these dont have attributes
though, but code was checking for an active color atttribute.

Now, only do this check (and skip that object) if it has no attributes (or
doesnt have vertex or active color atttribute).

Pull Request: https://projects.blender.org/blender/blender/pulls/108647
2023-06-08 10:21:54 +02:00
guishe e16ec95a16 UI: Add a custom text editor preference
Add a user preference to set up a custom text editor for editing text
files with the "Edit Source" action in the UI context menu.

- An operator TEXT_OT_jump_to_file_at_point has been added.
- A custom editor can be set in the user preferences.
- A preset has been included for "Visual Studio Code".
- When the editor is not set, use Blender's internal editor.

Ref !108299.
2023-06-07 14:09:19 +10:00
Sergey Sharybin 83ffc108e4 Merge branch 'blender-v3.6-release' 2023-05-31 16:49:22 +02:00
Sergey Sharybin 8bd14cb3aa Update the copyright.txt
This is the copyright file which is distributed with the
official Blender builds distributed via blender.org project,
with the intent to indicate that the build is done by the
blender foundation.

This change makes the file shorter, avoiding stating agreements
in the file itself, and instead referring to the license.

This matches more closely to how other open source projects
tackle the COPYING file.

The updated content has been reviewed by Ton.

Ref #107295
2023-05-31 16:43:55 +02:00
Thomas Dinges 0f3682a88a Merge branch 'blender-v3.6-release' 2023-05-26 15:44:44 +02:00