UI: Reorganize 'Select' menus in editors #104848
@ -243,3 +243,9 @@ RedirectMatch "^/manual/{lang}/{version}/editors/nla/editing.html" "^/manual/{la
|
||||
RedirectMatch "^/manual/{lang}/{version}/render/shader_nodes/shader/anisotropic.html" "^/manual/{lang}/{version}/render/shader_nodes/shader/glossy.html"
|
||||
|
||||
RedirectMatch "^/manual/{lang}/{version}/files/import_export.html" "^/manual/{lang}/{version}/files/import_export/index.html"
|
||||
|
||||
RedirectMatch "^/manual/{lang}/{version}/render/eevee/light_probes/introduction.html" "^/manual/{lang}/{version}/render/eevee/light_probes/index.html"
|
||||
RedirectMatch "^/manual/{lang}/{version}/movie_clip/introduction.html" "^/manual/{lang}/{version}/movie_clip/index.html"
|
||||
RedirectMatch "^/manual/{lang}/{version}/getting_started/about/introduction.html" "^/manual/{lang}/{version}/getting_started/about/index.html"
|
||||
RedirectMatch "^/manual/{lang}/{version}/animation/armatures/bones/properties/introduction.html" "^/manual/{lang}/{version}/animation/armatures/bones/properties/index.html"
|
||||
RedirectMatch "^/manual/{lang}/{version}/advanced/command_line/introduction.html" "^/manual/{lang}/{version}/advanced/command_line/index.html"
|
||||
|
@ -27,7 +27,7 @@ for specific instructions on launching Blender from the command line.
|
||||
|
||||
|
||||
Launching from the Command Line
|
||||
================================
|
||||
===============================
|
||||
|
||||
.. toctree::
|
||||
:hidden:
|
||||
|
@ -10,6 +10,7 @@ For example in an animation studio or for school courses.
|
||||
|
||||
This page contains tips setting up Blender in such environments.
|
||||
|
||||
|
||||
Installing Blender
|
||||
==================
|
||||
|
||||
@ -23,18 +24,21 @@ change the results of production files. For a given project, it is
|
||||
advisable to use a single :abbr:`LTS (Long-Term-Support)` version
|
||||
of Blender. LTS versions receive bug fixes for two years.
|
||||
|
||||
|
||||
Working Offline
|
||||
===============
|
||||
|
||||
For security or other reasons, workstation may not have internet access.
|
||||
|
||||
By default Blender does not access the internet, however this can be
|
||||
enabled in the System preferences with the Online Access option.
|
||||
enabled in the System preferences with the
|
||||
:ref:`Online Access <bpy.types.PreferencesSystem.use_online_access>` option.
|
||||
|
||||
Working offline can be enforced by running with the ``--offline-mode``
|
||||
:ref:`command line argument <command-line-args-network-options>`. Users
|
||||
will then be unable to enable online access in the preferences.
|
||||
|
||||
|
||||
.. _deploying-blender-bundling:
|
||||
|
||||
Bundling Extensions
|
||||
@ -65,6 +69,7 @@ In the Extensions preferences, it's possible to manually set a custom
|
||||
directory of the default System repository and to create multiple
|
||||
repositories.
|
||||
|
||||
|
||||
Bundling Scripts
|
||||
================
|
||||
|
||||
@ -79,6 +84,7 @@ These script directories are expected to contain specific directories
|
||||
like ``presets``, ``addons`` and ``startup`` for different types of
|
||||
scripts. See :ref:`blender-directory-path-layout` for a complete list.
|
||||
|
||||
|
||||
Startup Scripts
|
||||
---------------
|
||||
|
||||
@ -103,6 +109,7 @@ For example, a script can enable add-ons for every user.
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
|
||||
Application Templates
|
||||
---------------------
|
||||
|
||||
@ -117,6 +124,7 @@ The files are expected to be placed in the system script directories like this:
|
||||
$BLENDER_SYSTEM_SCRIPTS/startup/bl_app_templates_system/MyTemplate/__init__.py
|
||||
$BLENDER_SYSTEM_SCRIPTS/startup/bl_app_templates_system/MyTemplate/startup.blend
|
||||
|
||||
|
||||
Legacy Add-ons
|
||||
--------------
|
||||
|
||||
@ -138,6 +146,7 @@ Blender follows the `VFX reference platform <https://vfxplatform.com>`_,
|
||||
which means it is able to run on the same systems as other VFX software
|
||||
and exchange image, volume and scene files with them.
|
||||
|
||||
|
||||
Python Version
|
||||
--------------
|
||||
|
||||
|
@ -44,10 +44,12 @@ This option is controlled by Preferences, which can be overriding via command-li
|
||||
(``--offline-mode`` / ``--online-mode``).
|
||||
|
||||
For better error messages, you can check also for ``bpy.app.online_access_overriden``,
|
||||
to determine whether users can turn ``Allow Online Access`` on the preferences, or not.
|
||||
to determine whether users can turn :ref:`Allow Online Access <bpy.types.PreferencesSystem.use_online_access>`
|
||||
on the preferences, or not.
|
||||
|
||||
Blender itself doesn't block internet access based on this setting. It is up to the add-ons to respect it.
|
||||
|
||||
|
||||
Bundle Dependencies
|
||||
===================
|
||||
|
||||
@ -72,6 +74,7 @@ Bundle with `Vendorize <https://pypi.org/project/vendorize>`__
|
||||
|
||||
This has the advantage of avoiding version conflicts although it requires some work to setup each package.
|
||||
|
||||
|
||||
.. This section is reference for legacy add-on installation.
|
||||
.. _bpy.ops.preferences.addon_install:
|
||||
|
||||
@ -88,6 +91,7 @@ Preferences.
|
||||
All add-on maintainers are urged to convert the add-ons they want to share, so they are future proof and can support
|
||||
features like updating from the extensions platform.
|
||||
|
||||
|
||||
Converting a Legacy Add-on into an Extension
|
||||
--------------------------------------------
|
||||
|
||||
@ -103,6 +107,7 @@ Converting a Legacy Add-on into an Extension
|
||||
For testing it is import to :doc:`install the extension from disk </editors/preferences/extensions>` and check if
|
||||
everything is working well. This will get you as close to the final experience as possible.
|
||||
|
||||
|
||||
Extensions and Namespace
|
||||
------------------------
|
||||
|
||||
@ -114,6 +119,7 @@ For example, now instead of ``kitsu`` the module name would be ``bl_ext.{reposit
|
||||
|
||||
This has a few implications for preferences and module imports.
|
||||
|
||||
|
||||
User Preferences and ``__package__``
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
@ -119,7 +119,7 @@ usage::
|
||||
blender --command extension install-file [-h] -r REPO [-e] [--no-prefs]
|
||||
FILE
|
||||
|
||||
Install a package file into a local repository.
|
||||
Install a package file into a user repository.
|
||||
|
||||
positional arguments:
|
||||
:FILE: The packages file.
|
||||
@ -238,7 +238,7 @@ usage::
|
||||
blender --command extension build [-h] [--source-dir SOURCE_DIR]
|
||||
[--output-dir OUTPUT_DIR]
|
||||
[--output-filepath OUTPUT_FILEPATH]
|
||||
[--verbose]
|
||||
[--split-platforms] [--verbose]
|
||||
|
||||
Build a package in the current directory.
|
||||
|
||||
@ -256,6 +256,11 @@ options:
|
||||
The package output filepath (should include a ``.zip`` extension).
|
||||
|
||||
Defaults to a name created using the ``id`` from the manifest.
|
||||
--split-platforms Build a separate package for each platform.
|
||||
Adding the platform as a file name suffix (before the extension).
|
||||
|
||||
This can be useful to reduce the upload size of packages that bundle large
|
||||
platform-specific modules (``*.whl`` files).
|
||||
--verbose Include verbose output.
|
||||
|
||||
.. _command-line-args-extension-validate:
|
||||
@ -286,10 +291,21 @@ Subcommand: ``server-generate``
|
||||
usage::
|
||||
|
||||
blender --command extension server-generate [-h] --repo-dir REPO_DIR
|
||||
[--html]
|
||||
[--html-template HTML_TEMPLATE_FILE]
|
||||
|
||||
Generate a listing of all packages stored in a directory.
|
||||
This can be used to host packages which only requires static-file hosting.
|
||||
|
||||
options:
|
||||
-h, --help show this help message and exit
|
||||
--repo-dir REPO_DIR The remote repository directory.
|
||||
-h, --help show this help message and exit
|
||||
--repo-dir REPO_DIR The remote repository directory.
|
||||
--html Create a HTML file (``index.html``) as well as the repository JSON
|
||||
to support browsing extensions online with static-hosting.
|
||||
--html-template HTML_TEMPLATE_FILE
|
||||
An optional HTML file path to override the default HTML template with your own.
|
||||
|
||||
The following keys will be replaced with generated contents:
|
||||
|
||||
- ``${body}`` is replaced the extensions contents.
|
||||
- ``${date}`` is replaced the creation date.
|
||||
|
@ -0,0 +1,37 @@
|
||||
****************************************
|
||||
Creating a Dynamic Extensions Repository
|
||||
****************************************
|
||||
|
||||
If you plan to setup a dynamic extensions repository, read first about :doc:`static repositories <static_repository>`.
|
||||
The expected format for how to list all the packages is the same, and should be used as a starting point.
|
||||
|
||||
Multiple Versions
|
||||
=================
|
||||
|
||||
When Blender fetches the extensions listing it passes the following arguments to make sure only
|
||||
compatible extensions are listed:
|
||||
|
||||
- ``platform``
|
||||
- ``blender_version``
|
||||
|
||||
This means that servers have the chance to handle these arguments to output a single entry per-extension on the listing.
|
||||
|
||||
These arguments are passed as parameters to the server via a query URL:
|
||||
|
||||
:URL: ``https://extensions.blender.org/api/v1/extensions/``
|
||||
:query URL: ``https://extensions.blender.org/api/v1/extensions/?blender_version=4.2.0&platform=linux-x64``
|
||||
|
||||
|
||||
Access Token
|
||||
============
|
||||
|
||||
Some repositories may require authentication. The user can specify an ``access token`` for a repository,
|
||||
which is passed along with the API request from Blender.
|
||||
|
||||
This is passed to the servers via an Authorization header:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
curl -i https://extensions.blender.org/api/v1/extensions/ \
|
||||
-H "Accept: application/json" \
|
||||
-H "Authorization: Bearer abc29832befb92983423abcaef93001"
|
28
manual/advanced/extensions/creating_repository/index.rst
Normal file
28
manual/advanced/extensions/creating_repository/index.rst
Normal file
@ -0,0 +1,28 @@
|
||||
*********************************
|
||||
Creating an Extensions Repository
|
||||
*********************************
|
||||
|
||||
Third party sites that wish to support extensions in Blender can do so in two ways:
|
||||
|
||||
#. Fork the entire `Extensions Website <https://projects.blender.org/infrastructure/extensions-website>`__
|
||||
as a start point; or
|
||||
#. Host a :doc:`JSON file <static_repository>` listing all the packages of your repository; or
|
||||
#. Serve the JSON file :doc:`dynamically <dynamic_repository>`.
|
||||
|
||||
Repository Types
|
||||
================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
Static Repository <static_repository.rst>
|
||||
Dynamic Repository <dynamic_repository.rst>
|
||||
|
||||
Tags and Translations
|
||||
=====================
|
||||
|
||||
If you are planning to use a different set of :doc:`tags <../tags>` than the ones used by Blender Extensions Platform,
|
||||
remember to submit a pull request to
|
||||
`tags.py <https://projects.blender.org/blender/blender/src/scripts/modules/_bpy_internal/extensions/tags.py>`__.
|
||||
|
||||
This way they can be shown translated within Blender.
|
@ -0,0 +1,70 @@
|
||||
***************************************
|
||||
Creating a Static Extensions Repository
|
||||
***************************************
|
||||
|
||||
To host your own extensions and leverage Blender update system all that is required is a static JSON file on a server,
|
||||
pointing towards download links for the extensions.
|
||||
|
||||
JSON
|
||||
====
|
||||
|
||||
To generate a valid JSON file you can use the command-line tool:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
blender --command extension server-generate --repo-dir=/path/to/packages
|
||||
|
||||
This creates a listing from all the packages found in the specified location.
|
||||
|
||||
See :ref:`server-generate <command-line-args-extension-server-generate>` docs.
|
||||
|
||||
The generated JSON is aligned with the `API <https://developer.blender.org/docs/features/extensions/api_listing/>`__.
|
||||
|
||||
|
||||
Download Links
|
||||
==============
|
||||
|
||||
In order to support drag and drop for installing from a remote repository,
|
||||
there are a few optional ways to prepare the URLs.
|
||||
|
||||
The only strict requirement is that the download URL must end in ``.zip``.
|
||||
|
||||
You can pass different arguments to the URL to give more clues to Blender about what to do with the dragged URL.
|
||||
|
||||
:repository:
|
||||
Link to the JSON file to be used to install the repository on Blender.
|
||||
It supports relative URLs.
|
||||
:platforms:
|
||||
Comma-separated list of supported platforms.
|
||||
If omitted, the extension will be available in all operating systems.
|
||||
:blender_version_min:
|
||||
Minimum supported Blender version.
|
||||
:blender_version_max:
|
||||
Blender version that the extension does not support, earlier versions are supported.
|
||||
|
||||
|
||||
.. tip::
|
||||
|
||||
The more details you provide, the better the user experience.
|
||||
|
||||
With the exception of the ``repository``, all the other parameters can be extracted from the extensions manifest.
|
||||
Those arguments are to be encoded as part of the URL.
|
||||
|
||||
Expected format:
|
||||
``<URL>.zip?repository=<repository>&blender_version_min=<version_min>&blender_max=<version_max_exclusive>&platforms=<platform1,platform2,...>``
|
||||
|
||||
Example:
|
||||
``https://extensions.blender.org/add-ons/amaranth-toolset/1.0.23/download/add-on-amaranth-toolset-v1.0.23.zip?repository=/api/v1/extensions/&blender_version_min=4.2.0&platforms=linux-x64,macos-x64``
|
||||
|
||||
|
||||
HTML Example
|
||||
------------
|
||||
|
||||
For a sample of the HTML code you can use to list all the extensions in the repository, use the ``html`` option
|
||||
when generating the server.
|
||||
|
||||
.. code:: bash
|
||||
|
||||
blender --command extension server-generate --repo-dir=/path/to/packages --html
|
||||
|
||||
This creates a ``download.html`` file with all the extra URLs parameters ready to use.
|
@ -81,8 +81,8 @@ This example is a good starting point to the ``blender_manifest.toml`` that shou
|
||||
tags = ["Animation", "Sequencer"]
|
||||
|
||||
blender_version_min = "4.2.0"
|
||||
## Optional: Blender version that the extension does not support, earlier versions are supported.
|
||||
## This can be omitted and defined later on the extensions platform if an issue is found.
|
||||
# # Optional: Blender version that the extension does not support, earlier versions are supported.
|
||||
# # This can be omitted and defined later on the extensions platform if an issue is found.
|
||||
# blender_version_max = "5.1.0"
|
||||
|
||||
# License conforming to https://spdx.org/licenses/ (use "SPDX: prefix)
|
||||
@ -107,19 +107,19 @@ This example is a good starting point to the ``blender_manifest.toml`` that shou
|
||||
# "./wheels/jsmin-3.0.1-py3-none-any.whl",
|
||||
# ]
|
||||
|
||||
## Optional: add-ons can list which resources they will require:
|
||||
## * files (for access of any filesystem operations)
|
||||
## * network (for internet access)
|
||||
## * clipboard (to read and/or write the system clipboard)
|
||||
## * camera (to capture photos and videos)
|
||||
## * microphone (to capture audio)
|
||||
##
|
||||
## If using network, remember to also check `bpy.app.online_access`
|
||||
## https://docs.blender.org/manual/en/dev/advanced/extensions/addons.html#internet-access
|
||||
##
|
||||
## For each permission it is important to also specify the reason why it is required.
|
||||
## Keep this a single short sentence without a period (.) at the end.
|
||||
## For longer explanations use the documentation or detail page.
|
||||
# # Optional: add-ons can list which resources they will require:
|
||||
# # * files (for access of any filesystem operations)
|
||||
# # * network (for internet access)
|
||||
# # * clipboard (to read and/or write the system clipboard)
|
||||
# # * camera (to capture photos and videos)
|
||||
# # * microphone (to capture audio)
|
||||
# #
|
||||
# # If using network, remember to also check `bpy.app.online_access`
|
||||
# # https://docs.blender.org/manual/en/dev/advanced/extensions/addons.html#internet-access
|
||||
# #
|
||||
# # For each permission it is important to also specify the reason why it is required.
|
||||
# # Keep this a single short sentence without a period (.) at the end.
|
||||
# # For longer explanations use the documentation or detail page.
|
||||
#
|
||||
# [permissions]
|
||||
# network = "Need to sync motion-capture data to server"
|
||||
@ -161,7 +161,7 @@ Optional values:
|
||||
:permissions:
|
||||
Add-ons can list which resources they require. The available options are
|
||||
*files*, *network*, *clipboard*, *camera*, *microphone*.
|
||||
Each permission should be followed by an explanation (short single-sentence with no end pontuation (.)).
|
||||
Each permission should be followed by an explanation (short single-sentence with no end punctuation (``.``)).
|
||||
|
||||
Optional values for "build":
|
||||
|
||||
@ -188,6 +188,11 @@ Optional values for "build":
|
||||
"*.zip",
|
||||
]
|
||||
|
||||
Reserved:
|
||||
These values **must not** be declared in a TOML and are reserved for internal use.
|
||||
|
||||
- ``[build.generated]``
|
||||
|
||||
|
||||
.. note::
|
||||
|
||||
@ -237,55 +242,5 @@ See :ref:`validate <command-line-args-extension-validate>` docs.
|
||||
Third party extension sites
|
||||
===========================
|
||||
|
||||
Third party sites that wish to support extensions in Blender can do so in two ways:
|
||||
|
||||
#. Fork the entire `Extensions Website <https://projects.blender.org/infrastructure/extensions-website>`__
|
||||
as a start point; or
|
||||
#. Host a JSON file listing all the packages of your repository.
|
||||
|
||||
To generate a valid JSON file you can use the command-line tool:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
blender --command extension server-generate --repo-dir=/path/to/packages
|
||||
|
||||
This creates a listing from all the packages found in the specified location.
|
||||
|
||||
See :ref:`server-generate <command-line-args-extension-server-generate>` docs.
|
||||
|
||||
Example of what the JSON is expected to look like:
|
||||
|
||||
.. code:: json
|
||||
|
||||
{
|
||||
"version": "v1",
|
||||
"blocklist": [],
|
||||
"data": [
|
||||
{
|
||||
"id": "blender_kitsu",
|
||||
"name": "Blender Kitsu",
|
||||
"tagline": "Pipeline management for projects collaboration",
|
||||
"version": "0.1.5-alpha+f52258de",
|
||||
"type": "add-on",
|
||||
"archive_size": 856650,
|
||||
"archive_hash": "sha256:3d2972a6f6482e3c502273434ca53eec0c5ab3dae628b55c101c95a4bc4e15b2",
|
||||
"archive_url": "https://extensions.blender.org/add-ons/blender-kitsu/0.1.5-alpha+f52258de/download/",
|
||||
"blender_version_min": "4.2.0",
|
||||
"maintainer": "Blender Studio",
|
||||
"tags": ["Pipeline"],
|
||||
"license": ["SPDX:GPL-3.0-or-later"],
|
||||
"website": "https://extensions.blender.org/add-ons/blender-kitsu/",
|
||||
"schema_version": "1.0.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Just like for the manifest file, the optional fields (e.g., ``blender_version_max``) are either to have a value
|
||||
or should be omitted from the entries.
|
||||
|
||||
For the official Extensions Platform, the ``website`` value is the page of the extension in the online platform.
|
||||
Even if the manifest points to the project specific website.
|
||||
|
||||
.. note::
|
||||
|
||||
Any remote repository is expected to follow the latest `API <https://extensions.blender.org/api/swagger/>`__.
|
||||
If you want to host the extensions yourself,
|
||||
see the :doc:`Creating an Extensions Repository <./creating_repository/index>` docs.
|
@ -25,3 +25,4 @@ Other third party sites can also be supported, as long as they follow the Extens
|
||||
Add-ons <addons.rst>
|
||||
Python Wheels <python_wheels.rst>
|
||||
Command Line Arguments <command_line_arguments.rst>
|
||||
Creating a Repository <creating_repository/index.rst>
|
||||
|
@ -80,3 +80,44 @@ Running
|
||||
|
||||
import PIL
|
||||
print(PIL.__file__)
|
||||
|
||||
|
||||
Platform Builds
|
||||
===============
|
||||
|
||||
Wheels can severely impact the size of an extension. To mitigate this, it is possible to build different
|
||||
extension zip files for each unique required platform.
|
||||
|
||||
For this you need to use the ``--split-platforms`` option from the
|
||||
:ref:`build <command-line-args-extension-build>` command.
|
||||
|
||||
.. code:: bash
|
||||
|
||||
blender --command extension build --split-platforms
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
Manifest file excerpt:
|
||||
|
||||
.. code-block:: toml
|
||||
|
||||
id = "my_addon_with_wheels"
|
||||
version = "1.0.0"
|
||||
|
||||
platforms = ["windows-x64", "macos-x64"]
|
||||
wheels = [
|
||||
"./wheels/pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl",
|
||||
"./wheels/pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl",
|
||||
"./wheels/pillow-10.3.0-cp311-cp311-win_amd64.whl",
|
||||
]
|
||||
|
||||
Generated files from ``--split-platforms``:
|
||||
|
||||
- my_addon_with_wheels-1.0.0-windows_x64.zip
|
||||
- my_addon_with_wheels-1.0.0-macos_x64.zip
|
||||
|
||||
.. note::
|
||||
|
||||
Even though there is a Linux-only wheel present, no Linux zip file is generated.
|
||||
This happens because the ``platforms`` field only has Mac and Windows.
|
||||
|
@ -485,7 +485,7 @@ For API documentation on the functions listed above, see:
|
||||
Bringing It All Together
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
::
|
||||
.. code-block:: python
|
||||
|
||||
bl_info = {
|
||||
"name": "Cursor Array",
|
||||
|
@ -5,30 +5,36 @@
|
||||
Limit Rotation Constraint
|
||||
*************************
|
||||
|
||||
An object or bone can be rotated around the X, Y and Z axes.
|
||||
This constraint restricts the amount of allowed rotations around each axis,
|
||||
through lower and upper bounds.
|
||||
This constraint restricts the rotation of an object or bone to be inside
|
||||
specified angular limits. The limits are given as Euler rotation ranges (a min
|
||||
and max angle), and a separate range can be given for each of the three axes.
|
||||
|
||||
It is interesting to note that even though the constraint limits the visual and
|
||||
rendered rotations of its owner, its owner's data-block still allows (by default)
|
||||
the object or bone to have rotation values outside the minimum and maximum ranges.
|
||||
This can be seen in the *Transform* panel.
|
||||
When an owner is rotated and attempted to be rotated outside the limit boundaries,
|
||||
it will be constrained to those boundaries visually and when rendered, but internally,
|
||||
its rotation values will still be changed beyond the limits. If the constraint is removed,
|
||||
its ex-owner will seem to jump to its internally specified rotation.
|
||||
As with all constraints in Blender, this does not (by default) restrict the
|
||||
user-set rotation values of the object/bone as seen in the *Transform* panel.
|
||||
When the object/bone is rotated outside the limit range, it will be constrained
|
||||
to that range in its final displayed/rendered position, but the user-set
|
||||
rotation values will still be outside that range. If the constraint is removed,
|
||||
the object/bone will then jump back to match those user-set values.
|
||||
|
||||
Similarly, if its owner has an internal rotation that is beyond the limit, rotating it back
|
||||
into the limit area will appear to do nothing until the internal rotation values are back
|
||||
within the limit threshold (unless you enabled the *Affect Transform* option, see below).
|
||||
Something unique about the Limit Rotation constraint (as compared to the Limit
|
||||
Location and Limit Scale constraints) is that rotations loop, and therefore the
|
||||
meaning of the limit range is subtly different. All constraints in Blender
|
||||
internally work on transform matrices, which can't distinguish between e.g. 180
|
||||
and -180 degrees, or 0, 360, and 720 degrees. In other words, any angles that
|
||||
result in the same visual rotation are indistinguishable to the constraint
|
||||
system.
|
||||
|
||||
Setting equal the min and max values of an axis,
|
||||
locks the owner's rotation around that axis... Although this is possible,
|
||||
using the *Transformation Properties* axis locking feature is probably easier.
|
||||
What this means for the Limit Rotation constraint is that when the user-set
|
||||
rotation is outside of the limit range, the final displayed rotation will snap
|
||||
to the closest *visual* rotation in that range, not the closest numerical angle.
|
||||
For example, if you have a limit range of 0 to 90 degrees then a user-set
|
||||
rotation of 340 degrees will actually snap to *0 degrees* because that is the
|
||||
closer *visual* rotation, even though 340 is numerically closer to 90.
|
||||
|
||||
This transform does not constrain the bone if it is manipulated by the IK solver.
|
||||
For constraining the rotation of a bone for IK purposes,
|
||||
see :doc:`Inverse Kinematics </animation/armatures/posing/bone_constraints/inverse_kinematics/introduction>`.
|
||||
Note that this constraint does not constrain the bone if it is manipulated by
|
||||
the IK solver. For constraining the rotation of a bone for IK purposes, see
|
||||
:doc:`Inverse Kinematics
|
||||
</animation/armatures/posing/bone_constraints/inverse_kinematics/introduction>`.
|
||||
|
||||
|
||||
Options
|
||||
@ -55,13 +61,24 @@ Limit X, Y, Z
|
||||
|
||||
Order
|
||||
Allows specifying which :term:`Euler` order to use when applying the limits.
|
||||
Defaults to the order of the owner.
|
||||
Defaults to the order of the owner, or XYZ if the owner uses non-Euler
|
||||
rotations.
|
||||
|
||||
Affect Transform
|
||||
The constraint is taken into account when the object is manually rotated using
|
||||
transformation tools in the editors. This prevents assigning transformation
|
||||
property values (as shown in the *Transform* panel) that exceed the specified limits.
|
||||
|
||||
Legacy Behavior
|
||||
For backwards compatibility: make the constraint behave in the semi-broken
|
||||
way it did prior to Blender 4.2. This old behavior does not properly account
|
||||
for the looping nature of rotations, and therefore causes
|
||||
unpredictable/erratic rotation snapping. However, this behavior can still be
|
||||
useful in some specific circumstances when `Owner` is set to local space, and
|
||||
some older rig setups utilize that. However, that behavior is better and more
|
||||
robustly accomplished with drivers directly on the object/bone's rotation
|
||||
properties, so new rigs should favor that approach over using this option.
|
||||
|
||||
Owner
|
||||
This constraint allows you to choose in which space evaluate its owner's transform properties.
|
||||
See :ref:`common constraint properties <rigging-constraints-interface-common-space>` for more information.
|
||||
|
@ -50,6 +50,7 @@ Active Shape Key Index
|
||||
and tools that move vertices abort with an error if the active shape key is locked.
|
||||
|
||||
.. note::
|
||||
|
||||
Operators that always modify all shape keys in exactly the same way, like
|
||||
:ref:`Apply Object Transforms <bpy.ops.object.transform_apply>`, don't check shape key locks.
|
||||
Neither currently do most edit mode operators that modify topology, because the topology is
|
||||
|
@ -17,6 +17,7 @@ RGB to BW Node
|
||||
The *RGB to BW Node* makes a color image black-and-white by outputting its luminance.
|
||||
|
||||
.. note::
|
||||
|
||||
You can directly connect Color sockets to Value sockets in node graphs,
|
||||
which also converts the image to black-and-white. As such, this node is
|
||||
not always necessary.
|
||||
|
@ -105,6 +105,7 @@ Both Render Regions can exist at the same time.
|
||||
- .. figure:: /images/editors_3dview_navigate_regions_render-border-2.png
|
||||
|
||||
.. note::
|
||||
|
||||
Render regions only apply to the viewport when using Cycles, not when using EEVEE.
|
||||
However, they always affect the final render.
|
||||
|
||||
|
@ -164,6 +164,7 @@ Lets you manually specify, and animate, the frame at which the underlying action
|
||||
is sampled.
|
||||
|
||||
.. note::
|
||||
|
||||
Although the setting is called *Strip Time*, its value is a frame number
|
||||
inside the action, not inside the strip. If you have an action going
|
||||
from frame 1 to frame 50 that's referenced by a strip going from frame
|
||||
|
@ -57,6 +57,7 @@ Display Filter
|
||||
|
||||
You can search the view for data-blocks,
|
||||
by using Search field in the header of the *Outliner*,
|
||||
You can start a search using :kbd:`Ctrl-F` or clear a search with :kbd:`Alt-F`.
|
||||
|
||||
|
||||
.. _editors-outliner-interface-filter:
|
||||
|
@ -16,7 +16,6 @@
|
||||
:maxdepth: 1
|
||||
|
||||
interface.rst
|
||||
themes.rst
|
||||
viewport.rst
|
||||
lights.rst
|
||||
editing.rst
|
||||
@ -26,6 +25,7 @@
|
||||
:maxdepth: 1
|
||||
|
||||
extensions.rst
|
||||
themes.rst
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
@ -25,11 +25,11 @@ Keymap Presets
|
||||
|
||||
.. _bpy.ops.wm.keyconfig_preset_add:
|
||||
|
||||
You add a custom keymap configuration to the preset list by ``LMB`` on the *Add* button ``+``.
|
||||
You add a custom keymap configuration to the preset list by :kbd:`LMB` on the *Add* button ``+``.
|
||||
|
||||
.. _bpy.ops.wm.keyconfig_preset_remove:
|
||||
|
||||
You remove a custom keymap configuration from the preset list by ``LMB`` on the *Remove* button ``-``.
|
||||
You remove a custom keymap configuration from the preset list by :kbd:`LMB` on the *Remove* button ``-``.
|
||||
|
||||
.. _bpy.ops.preferences.keyconfig_import:
|
||||
|
||||
|
@ -71,6 +71,9 @@ Operating System Settings
|
||||
|
||||
Make this installation your default Blender (MS-Windows & Linux only).
|
||||
|
||||
On Linux, if Blender is installed from a package manager such as Snap,
|
||||
file association is handled by the package manager.
|
||||
|
||||
Register
|
||||
Make the currently in use Blender installation the default
|
||||
for generating thumbnails and the default for opening blend-files.
|
||||
@ -81,9 +84,8 @@ For All Users
|
||||
Register Blender for all users, requires escalated privileges.
|
||||
|
||||
|
||||
.. note::
|
||||
|
||||
Linux Registration
|
||||
.. admonition:: Linux Registration
|
||||
:class: note
|
||||
|
||||
Files are setup files under: ``/usr/local`` for all users, otherwise ``~/.local`` is used.
|
||||
|
||||
@ -92,6 +94,25 @@ For All Users
|
||||
- The thumbnailer is installed so blend-file thumbnails will be shown in file managers (**For All Users** only).
|
||||
|
||||
|
||||
Network
|
||||
=======
|
||||
|
||||
.. _bpy.types.PreferencesSystem.use_online_access:
|
||||
|
||||
Allow Online Access
|
||||
Allow internet access. Blender may access configured online extension repositories.
|
||||
Installed third party add-ons may access the internet for their own functionality.
|
||||
|
||||
Time Out
|
||||
The time (in seconds) that online operations may wait before timing out.
|
||||
|
||||
Use the systems default when zero.
|
||||
|
||||
Connection Limit
|
||||
The maximum number of simultaneous connections an online operation may make.
|
||||
|
||||
Do not limit the number of connections when zero.
|
||||
|
||||
.. _prefs-system-memory-and-limits:
|
||||
|
||||
Memory & Limits
|
||||
|
@ -1,5 +1,3 @@
|
||||
.. _bpy.ops.preferences.theme_install:
|
||||
.. _bpy.ops.preferences.reset_default_theme:
|
||||
.. _bpy.types.Theme:
|
||||
|
||||
******
|
||||
@ -15,12 +13,39 @@ change in the multi-choice list at the left, and adjusting colors as required.
|
||||
Notice that changes appear in real-time on your screen. In addition, details such as the dot size
|
||||
in the *3D Viewport* or the *Graph Editor* can also be changed.
|
||||
|
||||
Themes use Blender's preset system to save a theme.
|
||||
This will save the theme to an XML file in the ``./scripts/presets/interface_theme/`` subdirectory of one of
|
||||
the :doc:`configuration directories </advanced/blender_directory_layout>`.
|
||||
Preset Management
|
||||
=================
|
||||
|
||||
Theme Presets
|
||||
Select the Theme from a list of predefined Themes.
|
||||
|
||||
.. _bpy.ops.wm.interface_theme_preset_add:
|
||||
|
||||
You add a custom theme to the preset list by :kbd:`LMB` on the *Add* button ``+``.
|
||||
|
||||
.. _bpy.ops.wm.interface_theme_preset_remove:
|
||||
|
||||
You remove a custom theme from the preset list by :kbd:`LMB` on the *Remove* button ``-``.
|
||||
|
||||
.. _bpy.ops.wm.interface_theme_preset_save:
|
||||
|
||||
You save a custom theme in the preset list by :kbd:`LMB` on the *Save* button.
|
||||
|
||||
This will save the theme to an XML file in the ``./scripts/presets/interface_theme/`` subdirectory of one of
|
||||
the :doc:`configuration directories </advanced/blender_directory_layout>`.
|
||||
|
||||
.. _bpy.ops.preferences.theme_install:
|
||||
|
||||
Install
|
||||
Load and apply a Blender XML theme file and add it to the list of theme presets.
|
||||
|
||||
.. _bpy.ops.preferences.reset_default_theme:
|
||||
|
||||
Reset
|
||||
Reset to the default theme colors.
|
||||
|
||||
Blender comes bundled with a small selection of themes.
|
||||
|
||||
.. figure:: /images/editors_preferences_themes_example.png
|
||||
|
||||
Blender comes bundled with a small selection of themes.
|
||||
|
||||
This is an example of the theme *Blender Light*.
|
||||
|
@ -153,7 +153,12 @@ Playback
|
||||
Play In
|
||||
Which editors to update on each animation frame. If an editor is unchecked,
|
||||
it'll only be updated once playback stops (with some exceptions where it'll
|
||||
update on each frame anyway).
|
||||
update on each frame anyway). When starting playback in either the
|
||||
:doc:`Graph Editor </editors/graph_editor/introduction>`,
|
||||
:doc:`Dope Sheet </editors/dope_sheet/introduction>` or the
|
||||
:doc:`NLA Editor</editors/nla/introduction>`,
|
||||
all editors will play back regardless of the settings.
|
||||
This is a feature requested by animators to easily play back all views.
|
||||
|
||||
.. _bpy.types.Scene.show_subframe:
|
||||
|
||||
|
@ -24,6 +24,7 @@ Cursor
|
||||
(works with all tools) or adjust the 2D Cursor Location in :menuselection:`Sidebar --> View`.
|
||||
|
||||
.. note::
|
||||
|
||||
By default, the 2D Cursor is only shown while dragging it. To make it permanently
|
||||
visible, enable the *2D Cursor* :doc:`overlay </editors/video_sequencer/preview/display/overlays>`.
|
||||
|
||||
|
@ -18,6 +18,13 @@ see `Asset Catalogs on the Blender Developer Documentation <https://developer.bl
|
||||
|
||||
.. figure:: /images/asset-browser-catalogs.png
|
||||
:width: 640px
|
||||
:figclass: only-light
|
||||
|
||||
Example file system and catalog structures.
|
||||
|
||||
.. figure:: /images/asset-browser-catalogs_dark.png
|
||||
:width: 640px
|
||||
:figclass: only-dark
|
||||
|
||||
Example file system and catalog structures.
|
||||
|
||||
|
@ -72,6 +72,8 @@ Open Recent
|
||||
Displays a list of recently opened blend-files.
|
||||
Hovering over items will show a preview, and information about the blend-file.
|
||||
Select any of the file names in the list to open that blend-file.
|
||||
When :kbd:`RMB` on a listed item, a context menu will appear; One of the available options is *Open File Location*, which will open that
|
||||
location in an OS file explorer or Finder window.
|
||||
|
||||
Clear Recent Files List
|
||||
Removes all items from the list.
|
||||
|
@ -207,7 +207,7 @@ Pack
|
||||
- |none|
|
||||
- Particle settings.
|
||||
Used by particle systems.
|
||||
* - :doc:`Light Probe </render/eevee/light_probes/introduction>`
|
||||
* - :doc:`Light Probe </render/eevee/light_probes/index>`
|
||||
- |tick|
|
||||
- |none|
|
||||
- Help achieve complex real-time lighting in EEVEE.
|
||||
|
@ -17,6 +17,10 @@ to export/import Collada files from/to a variety of tools.
|
||||
But please be aware that the Collada module is still a work in progress.
|
||||
So it may be possible that your particular usage scenario is not yet supported.
|
||||
|
||||
.. important::
|
||||
|
||||
Collada support in Blender is considered deprecated and may be removed in a future version.
|
||||
|
||||
|
||||
Collada Exporter
|
||||
================
|
||||
@ -74,15 +78,22 @@ Include Shape Keys
|
||||
Global Orientation
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Todo.
|
||||
Apply
|
||||
Rotate all root objects to match the global orientation settings otherwise set the global orientation per Collada
|
||||
asset.
|
||||
|
||||
Forward / Up Axis
|
||||
Since many applications use a different axis for pointing upwards, these are axis conversion for these settings,
|
||||
Forward and up axes -- By mapping these to different axes you can convert rotations
|
||||
between applications default up and forward axes.
|
||||
|
||||
Blender uses Y forward, Z up (since the front view looks along the +Y direction).
|
||||
For example, it is common for applications to use Y as the up axis, in that case -Z forward, Y up is needed.
|
||||
|
||||
|
||||
Texture Options
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
Only Selected UV Map
|
||||
When your mesh contains multiple UV layers, then Blender exports all layers by default.
|
||||
This option allows you to only export the active (selected) UV layer.
|
||||
Copy
|
||||
When you export images either material based image textures,
|
||||
then the exporter creates absolute file references in the export file.
|
||||
@ -90,6 +101,9 @@ Copy
|
||||
But if the *Copy* option is enabled, the exporter will create copies of the images instead and
|
||||
place the copies besides the export file. In that case the file references are made relative.
|
||||
|
||||
Only Selected UV Map
|
||||
When your mesh contains multiple UV layers, then Blender exports all layers by default.
|
||||
This option allows you to only export the active (selected) UV layer.
|
||||
|
||||
Geometry
|
||||
--------
|
||||
|
@ -7,6 +7,11 @@ Check the :doc:`Downloading Blender </getting_started/installing/index>`
|
||||
page to find the minimum requirements and the different versions that are available
|
||||
for Blender (if you have not done so yet).
|
||||
|
||||
.. important::
|
||||
|
||||
Blender supports both Intel and Apple Silicon architectures on macOS.
|
||||
Make sure to download a variant that is compatible with your CPU's architecture.
|
||||
|
||||
|
||||
Install from DMG
|
||||
================
|
||||
|
@ -9,6 +9,11 @@ for Blender (if you have not done so yet).
|
||||
|
||||
Download the zip-file or Windows Installer File.
|
||||
|
||||
.. important::
|
||||
|
||||
Blender supports both x64 and arm64 architectures on Windows.
|
||||
Make sure to download a variant that is compatible with your CPU's architecture.
|
||||
|
||||
|
||||
Install from Windows Installer File
|
||||
===================================
|
||||
|
BIN
manual/images/3dprint_checks.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_checks.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_degenerate.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_degenerate.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_distorted.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_distorted.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_hollow_in_out.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_hollow_in_out.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_intersect.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_intersect.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_overhang.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_overhang.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_solid.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_solid.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_suzanne.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_suzanne.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/3dprint_thickness.jpg
(Stored with Git LFS)
BIN
manual/images/3dprint_thickness.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/animation_constraints_transform_limit-rotation_panel.png
(Stored with Git LFS)
BIN
manual/images/animation_constraints_transform_limit-rotation_panel.png
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/asset-browser-catalogs_dark.png
(Stored with Git LFS)
Normal file
BIN
manual/images/asset-browser-catalogs_dark.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/images/editors_image_image-settings_generated-image-panel.png
(Stored with Git LFS)
BIN
manual/images/editors_image_image-settings_generated-image-panel.png
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/editors_preferences_addons_enable.png
(Stored with Git LFS)
BIN
manual/images/editors_preferences_addons_enable.png
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/editors_preferences_section_addons.png
(Stored with Git LFS)
BIN
manual/images/editors_preferences_section_addons.png
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/editors_preferences_section_themes.png
(Stored with Git LFS)
BIN
manual/images/editors_preferences_section_themes.png
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/editors_timeline_main.png
(Stored with Git LFS)
BIN
manual/images/editors_timeline_main.png
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/editors_uv_sidebar_display-panel.png
(Stored with Git LFS)
BIN
manual/images/editors_uv_sidebar_display-panel.png
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/files_import-export_collada_export.png
(Stored with Git LFS)
BIN
manual/images/files_import-export_collada_export.png
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/files_import-export_collada_import.png
(Stored with Git LFS)
BIN
manual/images/files_import-export_collada_import.png
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_FunctionNodeAlignEulerToVector.webp
(Stored with Git LFS)
BIN
manual/images/node-types_FunctionNodeAlignEulerToVector.webp
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_FunctionNodeAlignRotationToVector.webp
(Stored with Git LFS)
Normal file
BIN
manual/images/node-types_FunctionNodeAlignRotationToVector.webp
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/images/node-types_FunctionNodeRotationToAxisAngle.webp
(Stored with Git LFS)
BIN
manual/images/node-types_FunctionNodeRotationToAxisAngle.webp
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_GeometryDeformCurvesOnSurface.png
(Stored with Git LFS)
BIN
manual/images/node-types_GeometryDeformCurvesOnSurface.png
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_GeometryNodeCornersOfFace.webp
(Stored with Git LFS)
BIN
manual/images/node-types_GeometryNodeCornersOfFace.webp
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_GeometryNodeGetNamedGrid.webp
(Stored with Git LFS)
BIN
manual/images/node-types_GeometryNodeGetNamedGrid.webp
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_GeometryNodeGroup.webp
(Stored with Git LFS)
BIN
manual/images/node-types_GeometryNodeGroup.webp
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_GeometryNodeInputNamedLayerSelection.webp
(Stored with Git LFS)
BIN
manual/images/node-types_GeometryNodeInputNamedLayerSelection.webp
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_GeometryNodeMaterialSelection.webp
(Stored with Git LFS)
BIN
manual/images/node-types_GeometryNodeMaterialSelection.webp
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_GeometryNodeRepeatInput.webp
(Stored with Git LFS)
BIN
manual/images/node-types_GeometryNodeRepeatInput.webp
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_GeometryNodeRepeatOutput.webp
(Stored with Git LFS)
BIN
manual/images/node-types_GeometryNodeRepeatOutput.webp
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_GeometryNodeSimulationInput.webp
(Stored with Git LFS)
BIN
manual/images/node-types_GeometryNodeSimulationInput.webp
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_GeometryNodeSimulationOutput.webp
(Stored with Git LFS)
BIN
manual/images/node-types_GeometryNodeSimulationOutput.webp
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_GeometryNodeStoreNamedGrid.webp
(Stored with Git LFS)
BIN
manual/images/node-types_GeometryNodeStoreNamedGrid.webp
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_GeometryUVPackIslands.png
(Stored with Git LFS)
BIN
manual/images/node-types_GeometryUVPackIslands.png
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/node-types_GeometryUVUnrwap.png
(Stored with Git LFS)
BIN
manual/images/node-types_GeometryUVUnrwap.png
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/physics_particles_emitter_rotation_panel.png
(Stored with Git LFS)
BIN
manual/images/physics_particles_emitter_rotation_panel.png
(Stored with Git LFS)
Binary file not shown.
BIN
manual/images/render_eevee_render-settings_screen-space-reflections_planar-reflection-combo.jpg
(Stored with Git LFS)
BIN
manual/images/render_eevee_render-settings_screen-space-reflections_planar-reflection-combo.jpg
(Stored with Git LFS)
Binary file not shown.
@ -161,7 +161,7 @@ Only curves with at least one selected control point will be closed/open.
|
||||
The shape of the closing segment is based on the start and end handles for Bézier curves,
|
||||
and as usual on adjacent control points for NURBS.
|
||||
The only time a handle is adjusted after closing is if the handle is an *Auto* one.
|
||||
Fig. :ref:`fig-curves-editing-open-close` is the same Bézier curve open and closed.
|
||||
Fig. :ref:`fig-curve-editing-open-close` is the same Bézier curve open and closed.
|
||||
|
||||
This action only works on the original starting control point or the last control point added.
|
||||
Deleting a segment(s) does not change how the action applies;
|
||||
@ -169,7 +169,7 @@ it still operates only on the starting and last control points. This means that
|
||||
:kbd:`Alt-C` may actually join two curves instead of closing a single curve!
|
||||
Remember that when a 2D curve is closed, it creates a renderable flat face.
|
||||
|
||||
.. _fig-curves-editing-open-close:
|
||||
.. _fig-curve-editing-open-close:
|
||||
|
||||
.. figure:: /images/modeling_curves_editing_curve_open-closed-cyclic.png
|
||||
|
||||
|
@ -11,6 +11,7 @@ Extrude Curve and Move
|
||||
.. reference::
|
||||
|
||||
:Mode: Edit Mode
|
||||
:Menu: :menuselection:`Control Points --> Extrude Curve and Move`
|
||||
:Shortcut: :kbd:`E`
|
||||
|
||||
Extrudes points by duplicating the selected points, which then can be moved,
|
||||
|
@ -78,7 +78,7 @@ Tangent
|
||||
|
||||
.. tip::
|
||||
|
||||
This output can be combined with the :doc:`/modeling/geometry_nodes/utilities/rotation/align_euler_to_vector`
|
||||
This output can be combined with the :doc:`/modeling/geometry_nodes/utilities/rotation/align_rotation_to_vector`
|
||||
to create a rotation that lines up with direction of the curve. Including the *Normal* output
|
||||
in a second align node after can align the other rotation axis.
|
||||
|
||||
|
@ -57,7 +57,7 @@ Geometry
|
||||
Duplicate Index
|
||||
An attribute field with a value for every output element describing which
|
||||
duplicate of the corresponding input. The value for every input element will
|
||||
start at 0 and increase to `Amount - 1`.
|
||||
start at 0 and increase to ``Amount - 1``.
|
||||
|
||||
|
||||
Examples
|
||||
|
@ -67,7 +67,7 @@ Rotation
|
||||
:doc:`Distribute Points on Faces </modeling/geometry_nodes/point/distribute_points_on_faces>`
|
||||
and :doc:`Curve to Points </modeling/geometry_nodes/curve/operations/curve_to_points>`. An Euler rotation
|
||||
can also be created from a direction vector like the :doc:`normal </modeling/geometry_nodes/geometry/read/normal>`
|
||||
with the :doc:`/modeling/geometry_nodes/utilities/rotation/align_euler_to_vector`.
|
||||
with the :doc:`/modeling/geometry_nodes/utilities/rotation/align_rotation_to_vector`.
|
||||
|
||||
Scale
|
||||
The size of each generated instance.
|
||||
|
@ -10,7 +10,7 @@ Mesh to Volume Node
|
||||
:alt: Mesh to Volume node.
|
||||
|
||||
The *Mesh to Volume* node creates a fog volumes based on the shape of a mesh.
|
||||
The volume is created with a grid of the name `"density"`.
|
||||
The volume is created with a grid of the name ``"density"``.
|
||||
|
||||
|
||||
Inputs
|
||||
|
@ -85,7 +85,7 @@ This way, the most vertical connected edge of each vertex will have the lowest w
|
||||
and come first in the list.
|
||||
|
||||
Next, in the point domain, we need to calculate the rotation of each cone.
|
||||
By using the :doc:`/modeling/geometry_nodes/utilities/rotation/align_euler_to_vector`,
|
||||
By using the :doc:`/modeling/geometry_nodes/utilities/rotation/align_rotation_to_vector`,
|
||||
the problem gets simplified and we only need to calculate a direction vector.
|
||||
|
||||
The direction vector of each cone is the centerpoint of the most vertical neighboring edge
|
||||
|
@ -1,15 +1,15 @@
|
||||
.. index:: Geometry Nodes; Align Euler to Vector
|
||||
.. _bpy.types.FunctionNodeAlignEulerToVector:
|
||||
.. index:: Geometry Nodes; Align Rotation to Vector
|
||||
.. _bpy.types.FunctionNodeAlignRotationToVector:
|
||||
|
||||
**************************
|
||||
Align Euler to Vector Node
|
||||
**************************
|
||||
*****************************
|
||||
Align Rotation to Vector Node
|
||||
*****************************
|
||||
|
||||
.. figure:: /images/node-types_FunctionNodeAlignEulerToVector.webp
|
||||
.. figure:: /images/node-types_FunctionNodeAlignRotationToVector.webp
|
||||
:align: center
|
||||
:alt: Align Euler to Vector node.
|
||||
:alt: Align Rotation to Vector node.
|
||||
|
||||
The *Align Euler to Vector* node rotates an Euler rotation into the given direction.
|
||||
The *Align Rotation to Vector* node rotates an Euler rotation into the given direction.
|
||||
|
||||
|
||||
Inputs
|
@ -6,7 +6,7 @@
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
align_euler_to_vector.rst
|
||||
align_rotation_to_vector.rst
|
||||
rotate_rotation.rst
|
||||
rotate_vector.rst
|
||||
axis_angle_to_rotation.rst
|
||||
|
@ -16,6 +16,7 @@ in Edit Mode, and then cuts into the faces there. Afterwards, the resulting geom
|
||||
inside the cut gets selected.
|
||||
|
||||
.. note::
|
||||
|
||||
The cutting objects must be curves or non-manifold meshes (e.g. flat shapes, loose edges).
|
||||
:ref:`Select Non-Manifold <bpy.ops.mesh.select_non_manifold>`
|
||||
will highlight the cutting edges of mesh objects.
|
||||
|
178
manual/modeling/meshes/import_images_as_planes.rst
Normal file
178
manual/modeling/meshes/import_images_as_planes.rst
Normal file
@ -0,0 +1,178 @@
|
||||
.. _bpy.ops.image.import_as_mesh_planes:
|
||||
|
||||
***********************
|
||||
Import Images as Planes
|
||||
***********************
|
||||
|
||||
.. reference::
|
||||
|
||||
:Menu: :menuselection:`3D Viewport --> Add --> Image --> Images as Planes`
|
||||
|
||||
Imports images and creates planes with them as textures.
|
||||
It automates the process of creating a plane, resizing it to fit the dimensions of the image,
|
||||
and creating a material with the image texture to it.
|
||||
The name of the plane, material, and texture will be derived from the name of the image file.
|
||||
|
||||
You can import a single image, multiple images, or an image sequence/movie clip.
|
||||
If you choose a single image, it creates one plane; if you choose multiple images,
|
||||
it creates as many planes as the number of images you selected, either stacked on top of each other or spaced apart.
|
||||
Selecting a movie clip or an image sequence will create a single plane with an animation.
|
||||
|
||||
|
||||
Properties
|
||||
==========
|
||||
|
||||
You can save the current import settings as an :ref:`Operator Preset <ui-presets>`.
|
||||
|
||||
|
||||
Options
|
||||
-------
|
||||
|
||||
Relative Path
|
||||
Set link to the image file using a :ref:`relative file path <files-blend-relative_paths>`.
|
||||
|
||||
Force Reload
|
||||
Reload the image file if it already exists as an image data-block.
|
||||
|
||||
Animate Image Sequences
|
||||
Import sequentially numbered images as
|
||||
an animated :doc:`image sequence </video_editing/edit/montage/strips/image>` instead of separate planes.
|
||||
They will be imported as a *Clip* texture on a single plane.
|
||||
The frame range will be automatically set but can be changed later.
|
||||
|
||||
|
||||
Material
|
||||
--------
|
||||
|
||||
Images as Planes sets up a material to display the image. You can set the type of material and related settings
|
||||
before the import.
|
||||
|
||||
Shader
|
||||
:Principled:
|
||||
The material will have a :doc:`Principled BSDF </render/shader_nodes/shader/principled>` shader node
|
||||
with default settings as its main component.
|
||||
An Image Texture node linked to the imported image will be connected to the Base Color of the Principled
|
||||
BSDF node.
|
||||
:Shadeless:
|
||||
A shadeless material is a material that does not respond to light from other objects and always has the same
|
||||
color in any lighting environment.
|
||||
This option creates a material with a node group of a mix between a Diffuse and an Emission shader controlled
|
||||
by a Light Path node.
|
||||
:Emit:
|
||||
The material will have a Principled BSDF shader node as its main component, but the Color output from
|
||||
the Image Texture node will be linked to the Emission input instead of the Base Color.
|
||||
|
||||
Strength
|
||||
Set the strength of the emission.
|
||||
|
||||
.. note::
|
||||
|
||||
*Blend Mode* and *Shadow Mode* options are specific to the EEVEE renderer.
|
||||
For a detailed explanation of each option, see :doc:`Material Settings </render/eevee/material_settings>`.
|
||||
|
||||
Blend Mode
|
||||
Set the alpha blend mode of the material.
|
||||
|
||||
Shadow Mode
|
||||
Set the shadow mode of the material.
|
||||
|
||||
Show Backface
|
||||
Show backside of the transparent part.
|
||||
|
||||
Backface Culling
|
||||
Hide backside of the plane.
|
||||
|
||||
Overwrite Material
|
||||
By default, the name of the new material from the name of the imported image. However, if there is already
|
||||
a material with the same name, Blender will append a number to the name of the material to avoid conflict.
|
||||
This *Override Material* option makes it overwrite the existing material of the same name in that case.
|
||||
|
||||
|
||||
Texture
|
||||
-------
|
||||
|
||||
.. note::
|
||||
|
||||
For a detailed explanation of each option, see :doc:`Image Texture Node </render/shader_nodes/textures/image>`.
|
||||
|
||||
Interpolation
|
||||
Set the method to scale the image.
|
||||
|
||||
Extension
|
||||
Set how the image is extrapolated past the original bounds.
|
||||
|
||||
Alpha
|
||||
Use the alpha channel of the image for transparency.
|
||||
|
||||
Auto Refresh
|
||||
Automatically refresh the images in the viewport on frame changes.
|
||||
|
||||
|
||||
Transform
|
||||
---------
|
||||
|
||||
Images as Planes creates the plane at the 3D Cursor's location. With *Offset Planes*, multiple planes will be
|
||||
placed with distance intervals set in *Offset*, along the axis set in *Local Axis*, beginning at the 3D Cursor's
|
||||
location.
|
||||
|
||||
Size Mode
|
||||
Set how the plane's size will be determined.
|
||||
|
||||
:Absolute:
|
||||
The size of the plane will be set based on the height value set in *Height*. The width will be set in direct
|
||||
ratio to the height value. For example, with the default height value of 1 m, an image of 800 × 600 pixels
|
||||
will have a width of 1 / 600 × 800 or 1.33 m.
|
||||
|
||||
Height
|
||||
Set the height of the plane.
|
||||
|
||||
:Camera Relative:
|
||||
The size of the plane will be set to fit or fill the camera frame. This will automatically set the *Align*
|
||||
option to *Face Camera*. Make sure to have an active camera in the scene before the import.
|
||||
|
||||
:Fit:
|
||||
Scale the plane to fit inside the camera frame while preserving the aspect ratio.
|
||||
:Fill:
|
||||
Scale the plane so that it fills the entire camera view while preserving the aspect ratio, but some part of
|
||||
the image can spill outside the camera frame.
|
||||
|
||||
::abbr:`DPI (Dots per inch)`:
|
||||
The size of the plane will be set based on the pixels per inch value set in *Definition*. With the *Unit System*
|
||||
set to *Metric* and the default definition of 600 DPI, an image of 800 × 600 pixels will have a size of
|
||||
0.0339 × 0.0254 units since 600 pixels are defined as 1 inch (0.0254 m).
|
||||
|
||||
Definition
|
||||
Set the number of pixels to fit in 1 inch.
|
||||
|
||||
:Dots/BU:
|
||||
The size of the plane will be set based on the pixels per Blender Unit set in *Definition*. With the default
|
||||
definition value of 600, an image of 800 × 600 pixels will have a size of 1.33 × 1 units.
|
||||
|
||||
Definition
|
||||
Set the number of pixels to fit in 1 Blender Unit.
|
||||
|
||||
Align
|
||||
Set the rotation of the plane.
|
||||
|
||||
:Main Axis:
|
||||
The plane will be aligned to a major axis that is best to face the camera's view direction.
|
||||
If there is no camera in the scene, the plane will face toward Z+ (Up) axis.
|
||||
:Face Camera:
|
||||
Similar to the *Main Axis* but the plane will be rotated to directly face the camera's view direction.
|
||||
:Z- (Down), Y-, X-, Z+ (Up), Y+, X+:
|
||||
The plane will be rotated to face toward the selected axis.
|
||||
|
||||
Track Camera
|
||||
Add a :doc:`Locked Track </animation/constraints/tracking/locked_track>` constraint to make the plane always
|
||||
face the camera, even if the camera moves. This option is only available when *Main Axis* or *Face Camera*
|
||||
option is selected in the *Align* menu.
|
||||
|
||||
Offset Planes
|
||||
Place multiple planes with an offset. If disabled, all planes will be created at the same location.
|
||||
|
||||
Offset Direction
|
||||
Choose a local axis (not the global axis) to offset the planes. For example, if you choose *X+*, the planes
|
||||
will be placed along the positive direction of the plane's local X axis.
|
||||
|
||||
Distance
|
||||
Set a distance between each plane.
|
@ -48,6 +48,17 @@ It is like a piece of paper lying on a table;
|
||||
it is not a three-dimensional object because it is flat and has no thickness.
|
||||
Objects that can be created with planes include floors, tabletops, or mirrors.
|
||||
|
||||
.. seealso::
|
||||
|
||||
:ref:`Import Images as Planes <bpy.ops.image.import_as_mesh_planes>`
|
||||
adds a mesh plane with materials and texture from an image file.
|
||||
The dimensions of the plane are calculated to match the aspect of the image file.
|
||||
|
||||
.. toctree::
|
||||
:hidden:
|
||||
|
||||
import_images_as_planes.rst
|
||||
|
||||
|
||||
.. _bpy.ops.mesh.primitive_cube_add:
|
||||
|
||||
@ -69,12 +80,9 @@ Vertices
|
||||
Fill Type
|
||||
Set how the circle will be filled.
|
||||
|
||||
Triangle Fan
|
||||
Fill with triangular faces which share a vertex in the middle.
|
||||
N-gon
|
||||
Fill with a single :term:`N-gon`.
|
||||
Nothing
|
||||
Do not fill. Creates only the outer ring of vertices.
|
||||
:Triangle Fan: Fill with triangular faces which share a vertex in the middle.
|
||||
:N-gon: Fill with a single :term:`N-gon`.
|
||||
:Nothing: Do not fill. Creates only the outer ring of vertices.
|
||||
|
||||
|
||||
.. _bpy.ops.mesh.primitive_uv_sphere_add:
|
||||
@ -220,13 +228,14 @@ This is intended as a test mesh, similar to:
|
||||
- `Utah Teapot <https://en.wikipedia.org/wiki/Utah_teapot>`__
|
||||
- `Stanford Bunny <https://en.wikipedia.org/wiki/Stanford_Bunny>`__.
|
||||
|
||||
.. hint:: History
|
||||
.. admonition:: History
|
||||
:class: tip
|
||||
|
||||
This is a gift from old NaN to the community and is seen as a programmer's joke or
|
||||
"Easter Egg". It creates a monkey's head once you press the *Monkey* button.
|
||||
The Monkey's name is "Suzanne" and is Blender's mascot.
|
||||
|
||||
.. note:: Add-ons
|
||||
.. note::
|
||||
|
||||
In addition to the basic geometric primitives can be added via extensions
|
||||
These are available from the :doc:`Preferences </editors/preferences/extensions>`.
|
||||
|
@ -35,13 +35,64 @@ Transform
|
||||
- Shear :kbd:`Shift-Ctrl-Alt-S`
|
||||
|
||||
|
||||
Axis Locking
|
||||
------------
|
||||
.. rubric:: Axis Locking
|
||||
|
||||
Transformations can be locked to an axis by pressing :kbd:`X` or :kbd:`Y` after one of the transform tools.
|
||||
Also, holding the :kbd:`MMB` will constrain movement to the X or Y axis.
|
||||
|
||||
|
||||
Vertex Slide
|
||||
------------
|
||||
|
||||
.. reference::
|
||||
|
||||
:Mode: Edit Mode
|
||||
:Menu: :menuselection:`UV --> Transform --> Vertex Slide`
|
||||
|
||||
Vertex Slide will transform a vertex along one of its adjacent edges.
|
||||
Use :kbd:`Shift-V` to activate tool.
|
||||
The nearest selected vertex to the mouse cursor will be the control one.
|
||||
Move the mouse along the direction of the desired edge to specify the vertex position.
|
||||
Then press :kbd:`LMB` to confirm the transformation.
|
||||
|
||||
Factor
|
||||
Determines the amount of slide performed.
|
||||
Negative values correspond to slides toward one vertex, while positive ones, refer to the other one.
|
||||
Even :kbd:`E`
|
||||
By default, the offset value of the vertices is a percentage of the edges length along which they move.
|
||||
When Even mode is active, the vertices are shifted by an absolute value.
|
||||
Flipped :kbd:`F`
|
||||
When Flipped is active, vertices move the same distance from adjacent vertices,
|
||||
instead of moving from their original position.
|
||||
Clamp :kbd:`Alt` or :kbd:`C`
|
||||
Toggle clamping the slide within the edge extents.
|
||||
|
||||
|
||||
Edge Slide
|
||||
----------
|
||||
|
||||
.. reference::
|
||||
|
||||
:Mode: Edit Mode
|
||||
:Menu: :menuselection:`UV --> Transform --> Edge Slide`
|
||||
|
||||
Slides one or more edges across adjacent faces with a few restrictions involving the selection
|
||||
of edges (i.e. the selection *must* define a valid loop, see below).
|
||||
|
||||
Factor
|
||||
Determines the amount of slide performed.
|
||||
Negative values correspond to slides toward one face, while positive ones, refer to the other one.
|
||||
Even :kbd:`E`
|
||||
Forces the edge loop to match the shape of the adjacent edge loop.
|
||||
You can flip to the opposite vertex using :kbd:`F`.
|
||||
Flipped :kbd:`F`
|
||||
When Even mode is active, this flips between the two adjacent edge loops the active edge loop will match.
|
||||
Clamp :kbd:`Alt` or :kbd:`C`
|
||||
Toggle clamping the slide within the edge extents.
|
||||
Mirror Editing
|
||||
Lets you propagate the operation to the symmetrical elements of the mesh (if present, in local X direction).
|
||||
|
||||
|
||||
Randomize
|
||||
=========
|
||||
|
||||
@ -58,16 +109,12 @@ similar to *Randomize Transform* tool in the 3d view.
|
||||
Random Seed
|
||||
Changes the random :term:`seed` used by the pseudo-random number generator,
|
||||
producing a different transform result for each seed value.
|
||||
|
||||
Location
|
||||
Amount to randomize location.
|
||||
|
||||
Rotation
|
||||
Amount to randomize rotation.
|
||||
|
||||
Scale Even
|
||||
Apply the same scale to the U coordinate and V coordinate.
|
||||
|
||||
Scale
|
||||
Amount to randomize scale in U and V coordinates.
|
||||
|
||||
|
@ -14,7 +14,8 @@ You can add several modifiers to a single object to form `The Modifier Stack`_
|
||||
and *Apply* a modifier if you wish to make its changes permanent.
|
||||
|
||||
They can be added to the active object using the :ref:`bpy.ops.object.modifier_add` operator,
|
||||
the "Add Modifier" button at the top of Modifiers tab in the :doc:`/editors/properties_editor`, or using :kbd:`Shift-A` in the same tab.
|
||||
the "Add Modifier" button at the top of Modifiers tab in the :doc:`/editors/properties_editor`,
|
||||
or using :kbd:`Shift-A` in the same tab.
|
||||
New modifiers are always added at the bottom of the :ref:`stack <modifier-stack>` (i.e. will be applied last).
|
||||
|
||||
There are many built-in modifiers but Blender also allows users
|
||||
|
@ -5,8 +5,6 @@
|
||||
World Settings
|
||||
**************
|
||||
|
||||
.. _bpy.types.WorldMistSettings:
|
||||
|
||||
Mist Pass
|
||||
=========
|
||||
|
||||
@ -24,19 +22,13 @@ Mist can greatly enhance the illusion of depth in your rendering. To create mist
|
||||
Blender generates a render layer with a depth map ranging between 0.0 and 1.0
|
||||
that can be used in the Compositor to generate a mist effect.
|
||||
|
||||
.. _bpy.types.WorldMistSettings.start:
|
||||
|
||||
Start
|
||||
The distance from the camera at which the mist starts to fade in.
|
||||
|
||||
.. _bpy.types.WorldMistSettings.depth:
|
||||
|
||||
Depth
|
||||
The distance from *Start* of the mist, that it fades in over.
|
||||
Objects further from the camera than *Start + Depth* are completely hidden by the mist.
|
||||
|
||||
.. _bpy.types.WorldMistSettings.falloff:
|
||||
|
||||
Falloff
|
||||
The curve function that controls the rate of change of the mist's strength further and further into the distance.
|
||||
|
||||
|
@ -9,7 +9,8 @@ Light probe objects are used by EEVEE as support objects.
|
||||
|
||||
There are three different types of light probes.
|
||||
Each type of light probe records the lighting at a different resolution and frequency.
|
||||
Probes are used together to recover incoming light information when using ray tracing is not possible (either for performance or for technical limitations).
|
||||
Probes are used together to recover incoming light information when using ray tracing is not possible
|
||||
(either for performance or for technical limitations).
|
||||
|
||||
These types of objects are only useful for EEVEE (and by extension, the Material Preview mode).
|
||||
|
||||
|
@ -11,8 +11,8 @@ This type of light probe is suited to smooth planar surfaces.
|
||||
Each visible planar light probe increases the render time as the scene needs to be rendered for
|
||||
each of them.
|
||||
|
||||
Light probe planes only work when the ray tracing method is set to `Screen-Trace`. When enabled, they
|
||||
accelerate the tracing process and complete the missing data from the screen space ray tracing.
|
||||
Light probe planes only work when the ray tracing method is set to ``Screen-Trace``.
|
||||
When enabled, they accelerate the tracing process and complete the missing data from the screen space ray tracing.
|
||||
|
||||
.. note::
|
||||
|
||||
|
@ -74,6 +74,7 @@ Once baked, the data is stored inside the object data-block and can be moved, an
|
||||
between blender files.
|
||||
|
||||
.. note::
|
||||
|
||||
Baking uses the render visibility of the objects in the scene.
|
||||
|
||||
During baking, the scene is converted into a different representation to accelerate light transport.
|
||||
@ -86,7 +87,7 @@ There are a few way to deal with this issue:
|
||||
|
||||
.. tip::
|
||||
|
||||
The internal scene representation can be inspected using the `Debug Value` 3, 4 and 5.
|
||||
The internal scene representation can be inspected using the ``Debug Value`` 3, 4 and 5.
|
||||
|
||||
Resolution
|
||||
----------
|
||||
@ -105,6 +106,7 @@ Surfel Resolution
|
||||
Higher values increase quality, but have a huge impact on memory usage.
|
||||
|
||||
.. tip::
|
||||
|
||||
A good value is twice the maximum *Resolution*.
|
||||
|
||||
|
||||
|
@ -44,7 +44,9 @@ Jitter
|
||||
Has a high performance impact as the shadow map cannot be cached and needs to be updated for each render sample.
|
||||
|
||||
.. note::
|
||||
The effect isn't visible by default in the viewport. See :ref:`render settings <bpy.types.SceneEEVEE.use_shadow_jitter_viewport>`.
|
||||
|
||||
The effect isn't visible by default in the viewport.
|
||||
See :ref:`render settings <bpy.types.SceneEEVEE.use_shadow_jitter_viewport>`.
|
||||
|
||||
.. _bpy.types.Light.shadow_jitter_overblur:
|
||||
|
||||
@ -52,6 +54,7 @@ Overblur
|
||||
Apply shadow tracing to each jittered sample to reduce under-sampling artifacts.
|
||||
|
||||
.. note::
|
||||
|
||||
Any value higher than zero will result in a blurrier shadow and is not physically correct.
|
||||
|
||||
.. _bpy.types.Light.shadow_filter_radius:
|
||||
@ -61,6 +64,7 @@ Filter
|
||||
The effective world scale of the filter depends on the shadow map resolution at the shadowed pixel position.
|
||||
|
||||
.. note::
|
||||
|
||||
Any value bigger than 1px will increase the chances of light leaking artifacts.
|
||||
|
||||
.. _bpy.types.Light.shadow_maximum_resolution:
|
||||
@ -73,32 +77,40 @@ Resolution Limit
|
||||
This property limits the maximum amount of detail that the shadow map can capture.
|
||||
|
||||
.. note::
|
||||
|
||||
Reducing the shadow map resolution will increase the chances of light leaking artifacts.
|
||||
|
||||
.. _bpy.types.Light.use_absolute_resolution:
|
||||
|
||||
Absolute Resolution Limit
|
||||
Limit the resolution at 1 unit from the light origin instead of relative to the shadowed pixel.
|
||||
This makes :ref:`Resolution Limit <bpy.types.Light.shadow_maximum_resolution>` act as a regular shadow map pixel size.
|
||||
This makes :ref:`Resolution Limit <bpy.types.Light.shadow_maximum_resolution>`
|
||||
act as a regular shadow map pixel size.
|
||||
|
||||
.. hint::
|
||||
|
||||
With this option enabled, the following equation can be used to set the *Resolution Limit* with a desired resolution:
|
||||
With this option enabled, the following equation can be used to set the *Resolution Limit*
|
||||
with a desired resolution:
|
||||
|
||||
.. math::
|
||||
|
||||
resolution\_limit = 2 * \sqrt{2} / resolution
|
||||
|
||||
The :math:`2 * \sqrt{2}` refers to the unit cube diagonal and :math:`resolution` refers to the desired resolution (e.g. 1024px).
|
||||
The :math:`2 * \sqrt{2}` refers to the unit cube diagonal and
|
||||
:math:`resolution` refers to the desired resolution (e.g. 1024px).
|
||||
|
||||
.. note::
|
||||
The setting :ref:`Absolute Resolution Limit <bpy.types.Light.use_absolute_resolution>` does not exist for Sun Light.
|
||||
|
||||
The setting :ref:`Absolute Resolution Limit <bpy.types.Light.use_absolute_resolution>`
|
||||
does not exist for Sun Light.
|
||||
|
||||
|
||||
Influence
|
||||
=========
|
||||
|
||||
These parameters modulate the intensity of the light depending on the shader type.
|
||||
These are meant for artistic control, and any value other than 1.0 breaks :abbr:`PBR (Physically Based Rendering)` rules.
|
||||
These are meant for artistic control, and any value other than 1.0 breaks
|
||||
:abbr:`PBR (Physically Based Rendering)` rules.
|
||||
|
||||
.. _bpy.types.Light.diffuse_factor:
|
||||
|
||||
@ -137,6 +149,7 @@ Distance
|
||||
Specifies where light influence will be set to 0.
|
||||
|
||||
.. note::
|
||||
|
||||
The setting :ref:`Custom Distance <bpy.types.Light.use_custom_distance>` does not exist for Sun Light.
|
||||
|
||||
.. seealso::
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
#############
|
||||
Limitations
|
||||
#############
|
||||
###############
|
||||
Limitations
|
||||
###############
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
@ -26,7 +26,8 @@ Lights
|
||||
======
|
||||
|
||||
- Lights can only have one color and do not support light node trees.
|
||||
- Unlike in Cycles, the :ref:`Size <bpy.types.SpotLight.shadow_soft_size>` of spot lights does not change the softness of the cone.
|
||||
- Unlike in Cycles, the :ref:`Size <bpy.types.SpotLight.shadow_soft_size>`
|
||||
of spot lights does not change the softness of the cone.
|
||||
- The area light :ref:`Beam spread <bpy.types.SpotLight.spot_size>` option is not supported.
|
||||
|
||||
|
||||
@ -35,7 +36,8 @@ Light Probes
|
||||
|
||||
- EEVEE supports up to 128 active light probe spheres.
|
||||
- EEVEE supports up to 16 active light probe planes inside the view frustum.
|
||||
- Active light probe volumes must fit inside the :ref:`Light Probes Volume Memory Pool <bpy.types.SceneEEVEE.gi_irradiance_pool_size>`.
|
||||
- Active light probe volumes must fit inside the
|
||||
:ref:`Light Probes Volume Memory Pool <bpy.types.SceneEEVEE.gi_irradiance_pool_size>`.
|
||||
|
||||
Indirect Lighting
|
||||
=================
|
||||
@ -51,7 +53,8 @@ Shadows
|
||||
This can be mitigated by using lower :ref:`step count <bpy.types.SceneEEVEE.shadow_step_count>`, enabling
|
||||
:ref:`jitter <bpy.types.Light.use_shadow_jitter>`, or reducing the light shape size.
|
||||
- Thin objects (e.g. walls without thickness) might have light leaking on the shadowed side.
|
||||
This can be mitigated by making the object have some thickness or lowering :ref:`Resolution Limit<bpy.types.Light.shadow_maximum_resolution>`.
|
||||
This can be mitigated by making the object have some thickness or lowering
|
||||
:ref:`Resolution Limit<bpy.types.Light.shadow_maximum_resolution>`.
|
||||
|
||||
.. _eevee-limitations-volumetrics:
|
||||
|
||||
@ -105,7 +108,8 @@ Raytracing
|
||||
- Blended materials and materials using raytrace refractions will not appear in dithered materials reflections.
|
||||
- Blended materials are not compatible with raytracing.
|
||||
- Only one refraction event is correctly modeled.
|
||||
An approximation of the second refraction event can be achieved using the :ref:`Thickness workflow <bpy.types.Material.thickness>`.
|
||||
An approximation of the second refraction event can be achieved using the
|
||||
:ref:`Thickness workflow <bpy.types.Material.thickness>`.
|
||||
- Only dithered materials *not* using Raytrace Refractions can be refracted.
|
||||
|
||||
|
||||
|
@ -18,7 +18,8 @@ Thickness
|
||||
This feature is used to approximate the inner geometry structure of the object without heavy computation.
|
||||
This is currently used for Subsurface, Translucent BSDF, Refraction BSDF and the nodes containing them.
|
||||
|
||||
If no value is plugged into the output node, a default thickness based on the smallest dimension of the object is computed.
|
||||
If no value is plugged into the output node, a default thickness based on the smallest dimension of the object
|
||||
is computed.
|
||||
If a value is connected it will be used as object space thickness (i.e. scaled by object transform).
|
||||
A value of zero will disable the thickness approximation and treat the object as having only one interface.
|
||||
|
||||
@ -28,7 +29,8 @@ A value of zero will disable the thickness approximation and treat the object as
|
||||
- Shadow casting object will not cast shadow within the thickness distance.
|
||||
|
||||
.. tip::
|
||||
- For large or compound meshes (e.g. vegetation), the thickness should be set to the thickness of individual parts (e.g. leaves, grass blades).
|
||||
- For large or compound meshes (e.g. vegetation),
|
||||
the thickness should be set to the thickness of individual parts (e.g. leaves, grass blades).
|
||||
- Thickness can be baked to textures or custom attributes for more accurate result.
|
||||
|
||||
|
||||
@ -83,11 +85,13 @@ Displacement
|
||||
Vertex position is modified.
|
||||
|
||||
.. note::
|
||||
|
||||
This type of displacement is not precomputed. It has a performance impact multiplied by the
|
||||
render sample count. However, the evaluation is much faster than doing it using geometry
|
||||
nodes or a displacement modifier.
|
||||
|
||||
.. note::
|
||||
|
||||
Displacing flat shaded geometry will split adjacent faces.
|
||||
This can be worked around by passing the vertex normals as a custom attribute.
|
||||
|
||||
@ -128,15 +132,19 @@ Render Method
|
||||
.. admonition:: Sorting Problem
|
||||
:class: important
|
||||
|
||||
When using *Blended* render method, the order in which the color blending happens is important as it
|
||||
can change the final output color. EEVEE does not support per-fragment (pixel) sorting or per-triangle sorting.
|
||||
Only per-object sorting is available and is automatically done on all transparent surfaces based on object origin.
|
||||
Opaque surfaces (i.e. that have no transparency) will still have correct sorting regardless of the render method.
|
||||
When using *Blended* render method, the order in which the color blending
|
||||
happens is important as it can change the final output color.
|
||||
EEVEE does not support per-fragment (pixel) sorting or per-triangle sorting.
|
||||
Only per-object sorting is available and is automatically done on all
|
||||
transparent surfaces based on object origin.
|
||||
Opaque surfaces (i.e. that have no transparency)
|
||||
will still have correct sorting regardless of the render method.
|
||||
|
||||
.. tip::
|
||||
|
||||
Face order can be adjusted in edit mode by using :doc:`sort element </modeling/meshes/editing/mesh/sort_elements>`
|
||||
or using a :doc:`geometry node </modeling/geometry_nodes/geometry/operations/sort_elements>`.
|
||||
Face order can be adjusted in edit mode by using
|
||||
:doc:`sort element </modeling/meshes/editing/mesh/sort_elements>` or using a
|
||||
:doc:`geometry node </modeling/geometry_nodes/geometry/operations/sort_elements>`.
|
||||
|
||||
.. note::
|
||||
|
||||
|
@ -23,7 +23,7 @@ Shadow
|
||||
Light Probes
|
||||
============
|
||||
|
||||
Objects can be set to not be captured by certain :doc:`light probe </render/eevee/light_probes/introduction>`.
|
||||
Objects can be set to not be captured by certain :doc:`light probe </render/eevee/light_probes/index>`.
|
||||
This can be used, for example, to avoid animated object being recorded into static light probes.
|
||||
For instanced objects, visibility is inherited; if the parent object is hidden for some ray types,
|
||||
the children will be hidden for these too.
|
||||
|
@ -26,7 +26,8 @@ Indirect Light
|
||||
|
||||
.. note::
|
||||
|
||||
These options provide a way to limit :term:`Fireflies` and :term:`Aliasing` of highly reflective surfaces and dense volumes.
|
||||
These options provide a way to limit :term:`Fireflies` and :term:`Aliasing`
|
||||
of highly reflective surfaces and dense volumes.
|
||||
However, note that as you clamp out such values, other bright lights will be dimmed as well.
|
||||
|
||||
Care must be taken when using this setting to find a balance between mitigating fireflies and
|
||||
|
@ -20,7 +20,8 @@ Memory
|
||||
.. _bpy.types.SceneEEVEE.shadow_pool_size:
|
||||
|
||||
Shadow Pool Size
|
||||
A bigger pool size allows for more shadows in the scene but might not fit into GPU memory and decreases performance.
|
||||
A bigger pool size allows for more shadows in the scene but might not fit into GPU memory and decreases
|
||||
performance.
|
||||
Increasing it might fix the *Shadow buffer full* error.
|
||||
|
||||
.. seealso::
|
||||
@ -29,7 +30,8 @@ Shadow Pool Size
|
||||
.. _bpy.types.SceneEEVEE.gi_irradiance_pool_size:
|
||||
|
||||
Light Probes Volume Pool Size
|
||||
A bigger pool size allows for more irradiance grids in the scene but might not fit into GPU memory and decreases performance.
|
||||
A bigger pool size allows for more irradiance grids in the scene but might not fit into GPU memory and
|
||||
decreases performance.
|
||||
|
||||
|
||||
Viewport
|
||||
|
@ -15,7 +15,8 @@ This is done by generating ray from each :abbr:`BSDF (Bidirectional Scattering D
|
||||
and finding their intersection with the scene individually.
|
||||
|
||||
When disabled, it is replaced by a faster pipeline that uses pre-filtered light-probes.
|
||||
This fallback mode offers a more visually stable and optimized alternative when visual fidelity is not the primary goal.
|
||||
This fallback mode offers a more visually stable and optimized alternative when visual
|
||||
fidelity is not the primary goal.
|
||||
|
||||
.. seealso::
|
||||
|
||||
@ -85,7 +86,8 @@ Fast GI Approximation is a fallback to the ray-tracing pipeline for
|
||||
:abbr:`BSDF (Bidirectional Scattering Distribution Function)` with high roughness.
|
||||
It produces a less noisy output and captures bounce lighting more efficiently than individually traced rays.
|
||||
|
||||
This is currently implemented as a screen space effect and will inherit all associated :ref:`limitations <eevee-limitations-screenspace>`.
|
||||
This is currently implemented as a screen space effect and will inherit all associated
|
||||
:ref:`limitations <eevee-limitations-screenspace>`.
|
||||
|
||||
Method
|
||||
Determine the method used to compute the fast GI approximation.
|
||||
@ -111,7 +113,8 @@ Steps
|
||||
.. tip::
|
||||
|
||||
With a higher step count, there is less chance to miss other surfaces that could reflect or block the light.
|
||||
This means that the Fast GI *Thickness* parameters can be tweaked to lower values without losing too much light bounce energy.
|
||||
This means that the Fast GI *Thickness* parameters can be tweaked to lower values without losing too much light
|
||||
bounce energy.
|
||||
|
||||
Precision
|
||||
Higher values increase the precision of the scene intersections with the GI rays.
|
||||
@ -123,7 +126,8 @@ Distance
|
||||
Thickness Near
|
||||
Geometric thickness of the surfaces when computing fast GI and ambient occlusion.
|
||||
Reduces light leaking and missing contact occlusion.
|
||||
The effectiveness decreases proportionally to the distance from the shading point, following the inverse square law.
|
||||
The effectiveness decreases proportionally to the distance from the shading point,
|
||||
following the inverse square law.
|
||||
|
||||
Far
|
||||
Angular thickness of the surfaces when computing fast GI and ambient occlusion.
|
||||
|
@ -34,8 +34,10 @@ Custom Range
|
||||
When working with volume objects, EEVEE automatically computes the best depth range where to compute
|
||||
the volume sampling and lighting.
|
||||
In certain situations, this isn't enough and produces sub-optimal sampling which increases noise.
|
||||
This is particularly the case when using a volume shader inside the *World* or when working with large number of volume objects.
|
||||
The custom depth range can be enabled to restrict the computation of volumes to a certain range along the camera depth and thus increase precision.
|
||||
This is particularly the case when using a volume shader inside the *World* or when working with large
|
||||
number of volume objects.
|
||||
The custom depth range can be enabled to restrict the computation of volumes to a certain range along
|
||||
the camera depth and thus increase precision.
|
||||
|
||||
Start
|
||||
Start distance of the volumetric effect.
|
||||
|
@ -6,9 +6,13 @@ World Settings
|
||||
The world environment can emit light, ranging from a single solid color
|
||||
to arbitrary textures.
|
||||
|
||||
In EEVEE, the world lighting contribution is stored into an internal :doc:`Light Probe </render/eevee/light_probes/index>`.
|
||||
In EEVEE, the world lighting contribution is stored into an internal
|
||||
:doc:`Light Probe </render/eevee/light_probes/index>`.
|
||||
This makes the lighting less precise than Cycles.
|
||||
|
||||
|
||||
.. _bpy.types.WorldMistSettings:
|
||||
|
||||
Mist Pass
|
||||
=========
|
||||
|
||||
@ -83,7 +87,8 @@ Resolution
|
||||
Sun
|
||||
---
|
||||
|
||||
EEVEE can separate the light from intense light sources (e.g. a sun from an outdoor :abbr:`HDRI (High Dynamic Range Imaging)`) and
|
||||
EEVEE can separate the light from intense light sources
|
||||
(e.g. a sun from an outdoor :abbr:`HDRI (High Dynamic Range Imaging)`) and
|
||||
replace them with a sun light. This increases the quality of the lighting as the internal light probes
|
||||
alone cannot reproduce this type of lighting with enough precision.
|
||||
|
||||
|
@ -52,9 +52,13 @@ New objects can be created with the *Add* menu in the 3D Viewport's header.
|
||||
Empty objects that display images in the 3D Viewport.
|
||||
These images can be used to aid artists in modeling or animating.
|
||||
|
||||
Image Plane
|
||||
Adds a :ref:`mesh plane <bpy.ops.mesh.primitive_plane_add>` with materials and texture from an image file.
|
||||
The dimensions of the plane are calculated to match the aspect of the image file.
|
||||
|
||||
:doc:`Light </render/lights/light_object>`
|
||||
Empty objects that emit light and are used for lighting the scene in renders.
|
||||
:doc:`Light Probe </render/eevee/light_probes/introduction>`
|
||||
:doc:`Light Probe </render/eevee/light_probes/index>`
|
||||
Used by the EEVEE render engine to record lighting information for indirect lighting.
|
||||
|
||||
:doc:`Camera </render/cameras>`
|
||||
@ -84,17 +88,15 @@ Type
|
||||
You can change the type of some objects after their creation with a selector.
|
||||
Radius/Size
|
||||
Sets the starting size.
|
||||
|
||||
Align
|
||||
Rotates the new object so that it is aligned in one of the following manners:
|
||||
|
||||
World
|
||||
:World:
|
||||
Aligns the object to the global space axes, i.e. the object's front faces the negative Y axis (default).
|
||||
View
|
||||
:View:
|
||||
Aligns the object to the view space axes, i.e. the object's front faces the viewport's point of view.
|
||||
3D Cursor
|
||||
:3D Cursor:
|
||||
Aligns the object to match the rotation of the :doc:`3D Cursor </editors/3dview/3d_cursor>`.
|
||||
|
||||
Location
|
||||
Objects are placed, by default, at the position of the 3D Cursor.
|
||||
These values let you place the object in an other position.
|
||||
|
@ -38,7 +38,7 @@ Background Scene
|
||||
.. _bpy.types.Scene.active_clip:
|
||||
|
||||
Active Clip
|
||||
Selects a :doc:`Movie Clip </movie_clip/introduction>` that can be used by
|
||||
Selects a :doc:`Movie Clip </movie_clip/index>` that can be used by
|
||||
:ref:`constraints-motion-tracking` Constraints or a camera's :ref:`bpy.types.CameraBackgroundImage`.
|
||||
|
||||
|
||||
|
@ -73,8 +73,7 @@ Box Mask
|
||||
:Menu: :menuselection:`Mask --> Box Mask`
|
||||
:Shortcut: :kbd:`B`
|
||||
|
||||
Works like the :doc:`Box Mask </sculpt_paint/sculpting/tools/box_mask>` tool,
|
||||
it creates a rectangular mask region.
|
||||
Works like the :ref:`Box Mask <tool-box-mask>` tool, it creates a rectangular mask region.
|
||||
Hold :kbd:`Shift` or press :kbd:`MMB` to clear the mask of the selected region.
|
||||
|
||||
|
||||
@ -89,8 +88,7 @@ Lasso Mask
|
||||
:Menu: :menuselection:`Mask --> Lasso Mask`
|
||||
:Shortcut: :kbd:`Shift-Ctrl-LMB`
|
||||
|
||||
Can be used to create a free-form mask, similar to the
|
||||
:doc:`Lasso Mask </sculpt_paint/sculpting/tools/box_mask>` tool.
|
||||
Can be used to create a free-form mask, similar to the :ref:`Lasso Mask <tool-lasso-mask>` tool.
|
||||
This is very commonly used.
|
||||
|
||||
.. tip::
|
||||
@ -197,7 +195,7 @@ Fill Holes
|
||||
.. tip::
|
||||
|
||||
If nothing is masked, this operation can be used to just fill all holes.
|
||||
Especially when using :doc:`Trim </sculpt_paint/sculpting/tools/lasso_trim>`
|
||||
Especially when using :doc:`Trim Tools </sculpt_paint/sculpting/tools/trim_tools>`
|
||||
tools and the :doc:`Voxel Remesher </sculpt_paint/sculpting/tool_settings/remesh>`
|
||||
|
||||
..
|
||||
|
@ -83,18 +83,18 @@ sculpting with the :doc:`voxel remesher </sculpt_paint/sculpting/tool_settings/r
|
||||
|
||||
.. _bpy.ops.sculpt.trim_box_gesture:
|
||||
|
||||
:doc:`/sculpt_paint/sculpting/tools/box_trim`
|
||||
:ref:`tool-box-trim`
|
||||
Removes geometry based on a :ref:`box selection <tool-select-box>`.
|
||||
|
||||
.. _bpy.ops.sculpt.trim_lasso_gesture:
|
||||
|
||||
:doc:`/sculpt_paint/sculpting/tools/lasso_trim`
|
||||
:ref:`tool-lasso-trim`
|
||||
Removes geometry based on a :ref:`lasso selection <tool-select-lasso>`.
|
||||
|
||||
:doc:`Box Add </sculpt_paint/sculpting/tools/box_trim>`
|
||||
:ref:`Box Add <tool-box-trim>`
|
||||
Adds geometry based on a :ref:`box selection <tool-select-box>`.
|
||||
|
||||
:doc:`Lasso Add </sculpt_paint/sculpting/tools/lasso_trim>`
|
||||
:ref:`Lasso Add <tool-lasso-trim>`
|
||||
Adds geometry based on a :ref:`lasso selection <tool-select-lasso>`.
|
||||
|
||||
.. _bpy.ops.sculpt.project_line_gesture:
|
||||
|
@ -20,9 +20,8 @@ The inner ring of the brush cursor is used to visualize the strength of the brus
|
||||
:doc:`Scrape </sculpt_paint/sculpting/tools/scrape>` brush.
|
||||
|
||||
The brush is also used for other :doc:`tools </sculpt_paint/sculpting/tools/index>` in the toolbar
|
||||
to better display how that tool works.
|
||||
For example, the :doc:`Box Trim </sculpt_paint/sculpting/tools/box_trim>`
|
||||
and :doc:`Lasso Trim </sculpt_paint/sculpting/tools/lasso_trim>` tools are able to use the current brush radius
|
||||
to better display how that tool works. For example, the :ref:`Box Trim <tool-box-trim>`
|
||||
and :ref:`Lasso Trim <tool-lasso-trim>` tools are able to use the current brush radius
|
||||
for how deep geometry is trimmed or added.
|
||||
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user