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}/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}/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
|
Launching from the Command Line
|
||||||
================================
|
===============================
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:hidden:
|
: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.
|
This page contains tips setting up Blender in such environments.
|
||||||
|
|
||||||
|
|
||||||
Installing Blender
|
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
|
advisable to use a single :abbr:`LTS (Long-Term-Support)` version
|
||||||
of Blender. LTS versions receive bug fixes for two years.
|
of Blender. LTS versions receive bug fixes for two years.
|
||||||
|
|
||||||
|
|
||||||
Working Offline
|
Working Offline
|
||||||
===============
|
===============
|
||||||
|
|
||||||
For security or other reasons, workstation may not have internet access.
|
For security or other reasons, workstation may not have internet access.
|
||||||
|
|
||||||
By default Blender does not access the internet, however this can be
|
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``
|
Working offline can be enforced by running with the ``--offline-mode``
|
||||||
:ref:`command line argument <command-line-args-network-options>`. Users
|
:ref:`command line argument <command-line-args-network-options>`. Users
|
||||||
will then be unable to enable online access in the preferences.
|
will then be unable to enable online access in the preferences.
|
||||||
|
|
||||||
|
|
||||||
.. _deploying-blender-bundling:
|
.. _deploying-blender-bundling:
|
||||||
|
|
||||||
Bundling Extensions
|
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
|
directory of the default System repository and to create multiple
|
||||||
repositories.
|
repositories.
|
||||||
|
|
||||||
|
|
||||||
Bundling Scripts
|
Bundling Scripts
|
||||||
================
|
================
|
||||||
|
|
||||||
@ -79,6 +84,7 @@ These script directories are expected to contain specific directories
|
|||||||
like ``presets``, ``addons`` and ``startup`` for different types of
|
like ``presets``, ``addons`` and ``startup`` for different types of
|
||||||
scripts. See :ref:`blender-directory-path-layout` for a complete list.
|
scripts. See :ref:`blender-directory-path-layout` for a complete list.
|
||||||
|
|
||||||
|
|
||||||
Startup Scripts
|
Startup Scripts
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
@ -103,6 +109,7 @@ For example, a script can enable add-ons for every user.
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
register()
|
register()
|
||||||
|
|
||||||
|
|
||||||
Application Templates
|
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/__init__.py
|
||||||
$BLENDER_SYSTEM_SCRIPTS/startup/bl_app_templates_system/MyTemplate/startup.blend
|
$BLENDER_SYSTEM_SCRIPTS/startup/bl_app_templates_system/MyTemplate/startup.blend
|
||||||
|
|
||||||
|
|
||||||
Legacy Add-ons
|
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
|
which means it is able to run on the same systems as other VFX software
|
||||||
and exchange image, volume and scene files with them.
|
and exchange image, volume and scene files with them.
|
||||||
|
|
||||||
|
|
||||||
Python Version
|
Python Version
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
|
@ -44,10 +44,12 @@ This option is controlled by Preferences, which can be overriding via command-li
|
|||||||
(``--offline-mode`` / ``--online-mode``).
|
(``--offline-mode`` / ``--online-mode``).
|
||||||
|
|
||||||
For better error messages, you can check also for ``bpy.app.online_access_overriden``,
|
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.
|
Blender itself doesn't block internet access based on this setting. It is up to the add-ons to respect it.
|
||||||
|
|
||||||
|
|
||||||
Bundle Dependencies
|
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 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.
|
.. This section is reference for legacy add-on installation.
|
||||||
.. _bpy.ops.preferences.addon_install:
|
.. _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
|
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.
|
features like updating from the extensions platform.
|
||||||
|
|
||||||
|
|
||||||
Converting a Legacy Add-on into an Extension
|
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
|
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.
|
everything is working well. This will get you as close to the final experience as possible.
|
||||||
|
|
||||||
|
|
||||||
Extensions and Namespace
|
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.
|
This has a few implications for preferences and module imports.
|
||||||
|
|
||||||
|
|
||||||
User Preferences and ``__package__``
|
User Preferences and ``__package__``
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ usage::
|
|||||||
blender --command extension install-file [-h] -r REPO [-e] [--no-prefs]
|
blender --command extension install-file [-h] -r REPO [-e] [--no-prefs]
|
||||||
FILE
|
FILE
|
||||||
|
|
||||||
Install a package file into a local repository.
|
Install a package file into a user repository.
|
||||||
|
|
||||||
positional arguments:
|
positional arguments:
|
||||||
:FILE: The packages file.
|
:FILE: The packages file.
|
||||||
@ -238,7 +238,7 @@ usage::
|
|||||||
blender --command extension build [-h] [--source-dir SOURCE_DIR]
|
blender --command extension build [-h] [--source-dir SOURCE_DIR]
|
||||||
[--output-dir OUTPUT_DIR]
|
[--output-dir OUTPUT_DIR]
|
||||||
[--output-filepath OUTPUT_FILEPATH]
|
[--output-filepath OUTPUT_FILEPATH]
|
||||||
[--verbose]
|
[--split-platforms] [--verbose]
|
||||||
|
|
||||||
Build a package in the current directory.
|
Build a package in the current directory.
|
||||||
|
|
||||||
@ -256,6 +256,11 @@ options:
|
|||||||
The package output filepath (should include a ``.zip`` extension).
|
The package output filepath (should include a ``.zip`` extension).
|
||||||
|
|
||||||
Defaults to a name created using the ``id`` from the manifest.
|
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.
|
--verbose Include verbose output.
|
||||||
|
|
||||||
.. _command-line-args-extension-validate:
|
.. _command-line-args-extension-validate:
|
||||||
@ -286,6 +291,8 @@ Subcommand: ``server-generate``
|
|||||||
usage::
|
usage::
|
||||||
|
|
||||||
blender --command extension server-generate [-h] --repo-dir REPO_DIR
|
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.
|
Generate a listing of all packages stored in a directory.
|
||||||
This can be used to host packages which only requires static-file hosting.
|
This can be used to host packages which only requires static-file hosting.
|
||||||
@ -293,3 +300,12 @@ This can be used to host packages which only requires static-file hosting.
|
|||||||
options:
|
options:
|
||||||
-h, --help show this help message and exit
|
-h, --help show this help message and exit
|
||||||
--repo-dir REPO_DIR The remote repository directory.
|
--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.
|
@ -161,7 +161,7 @@ Optional values:
|
|||||||
:permissions:
|
:permissions:
|
||||||
Add-ons can list which resources they require. The available options are
|
Add-ons can list which resources they require. The available options are
|
||||||
*files*, *network*, *clipboard*, *camera*, *microphone*.
|
*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":
|
Optional values for "build":
|
||||||
|
|
||||||
@ -188,6 +188,11 @@ Optional values for "build":
|
|||||||
"*.zip",
|
"*.zip",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
Reserved:
|
||||||
|
These values **must not** be declared in a TOML and are reserved for internal use.
|
||||||
|
|
||||||
|
- ``[build.generated]``
|
||||||
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -237,55 +242,5 @@ See :ref:`validate <command-line-args-extension-validate>` docs.
|
|||||||
Third party extension sites
|
Third party extension sites
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
Third party sites that wish to support extensions in Blender can do so in two ways:
|
If you want to host the extensions yourself,
|
||||||
|
see the :doc:`Creating an Extensions Repository <./creating_repository/index>` docs.
|
||||||
#. 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/>`__.
|
|
@ -25,3 +25,4 @@ Other third party sites can also be supported, as long as they follow the Extens
|
|||||||
Add-ons <addons.rst>
|
Add-ons <addons.rst>
|
||||||
Python Wheels <python_wheels.rst>
|
Python Wheels <python_wheels.rst>
|
||||||
Command Line Arguments <command_line_arguments.rst>
|
Command Line Arguments <command_line_arguments.rst>
|
||||||
|
Creating a Repository <creating_repository/index.rst>
|
||||||
|
@ -80,3 +80,44 @@ Running
|
|||||||
|
|
||||||
import PIL
|
import PIL
|
||||||
print(PIL.__file__)
|
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
|
Bringing It All Together
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
::
|
.. code-block:: python
|
||||||
|
|
||||||
bl_info = {
|
bl_info = {
|
||||||
"name": "Cursor Array",
|
"name": "Cursor Array",
|
||||||
|
@ -5,30 +5,36 @@
|
|||||||
Limit Rotation Constraint
|
Limit Rotation Constraint
|
||||||
*************************
|
*************************
|
||||||
|
|
||||||
An object or bone can be rotated around the X, Y and Z axes.
|
This constraint restricts the rotation of an object or bone to be inside
|
||||||
This constraint restricts the amount of allowed rotations around each axis,
|
specified angular limits. The limits are given as Euler rotation ranges (a min
|
||||||
through lower and upper bounds.
|
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
|
As with all constraints in Blender, this does not (by default) restrict the
|
||||||
rendered rotations of its owner, its owner's data-block still allows (by default)
|
user-set rotation values of the object/bone as seen in the *Transform* panel.
|
||||||
the object or bone to have rotation values outside the minimum and maximum ranges.
|
When the object/bone is rotated outside the limit range, it will be constrained
|
||||||
This can be seen in the *Transform* panel.
|
to that range in its final displayed/rendered position, but the user-set
|
||||||
When an owner is rotated and attempted to be rotated outside the limit boundaries,
|
rotation values will still be outside that range. If the constraint is removed,
|
||||||
it will be constrained to those boundaries visually and when rendered, but internally,
|
the object/bone will then jump back to match those user-set values.
|
||||||
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.
|
|
||||||
|
|
||||||
Similarly, if its owner has an internal rotation that is beyond the limit, rotating it back
|
Something unique about the Limit Rotation constraint (as compared to the Limit
|
||||||
into the limit area will appear to do nothing until the internal rotation values are back
|
Location and Limit Scale constraints) is that rotations loop, and therefore the
|
||||||
within the limit threshold (unless you enabled the *Affect Transform* option, see below).
|
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,
|
What this means for the Limit Rotation constraint is that when the user-set
|
||||||
locks the owner's rotation around that axis... Although this is possible,
|
rotation is outside of the limit range, the final displayed rotation will snap
|
||||||
using the *Transformation Properties* axis locking feature is probably easier.
|
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.
|
Note that this constraint does not constrain the bone if it is manipulated by
|
||||||
For constraining the rotation of a bone for IK purposes,
|
the IK solver. For constraining the rotation of a bone for IK purposes, see
|
||||||
see :doc:`Inverse Kinematics </animation/armatures/posing/bone_constraints/inverse_kinematics/introduction>`.
|
:doc:`Inverse Kinematics
|
||||||
|
</animation/armatures/posing/bone_constraints/inverse_kinematics/introduction>`.
|
||||||
|
|
||||||
|
|
||||||
Options
|
Options
|
||||||
@ -55,13 +61,24 @@ Limit X, Y, Z
|
|||||||
|
|
||||||
Order
|
Order
|
||||||
Allows specifying which :term:`Euler` order to use when applying the limits.
|
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
|
Affect Transform
|
||||||
The constraint is taken into account when the object is manually rotated using
|
The constraint is taken into account when the object is manually rotated using
|
||||||
transformation tools in the editors. This prevents assigning transformation
|
transformation tools in the editors. This prevents assigning transformation
|
||||||
property values (as shown in the *Transform* panel) that exceed the specified limits.
|
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
|
Owner
|
||||||
This constraint allows you to choose in which space evaluate its owner's transform properties.
|
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.
|
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.
|
and tools that move vertices abort with an error if the active shape key is locked.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Operators that always modify all shape keys in exactly the same way, like
|
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.
|
: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
|
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.
|
The *RGB to BW Node* makes a color image black-and-white by outputting its luminance.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
You can directly connect Color sockets to Value sockets in node graphs,
|
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
|
which also converts the image to black-and-white. As such, this node is
|
||||||
not always necessary.
|
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
|
- .. figure:: /images/editors_3dview_navigate_regions_render-border-2.png
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Render regions only apply to the viewport when using Cycles, not when using EEVEE.
|
Render regions only apply to the viewport when using Cycles, not when using EEVEE.
|
||||||
However, they always affect the final render.
|
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.
|
is sampled.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Although the setting is called *Strip Time*, its value is a frame number
|
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
|
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
|
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,
|
You can search the view for data-blocks,
|
||||||
by using Search field in the header of the *Outliner*,
|
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:
|
.. _editors-outliner-interface-filter:
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
interface.rst
|
interface.rst
|
||||||
themes.rst
|
|
||||||
viewport.rst
|
viewport.rst
|
||||||
lights.rst
|
lights.rst
|
||||||
editing.rst
|
editing.rst
|
||||||
@ -26,6 +25,7 @@
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
extensions.rst
|
extensions.rst
|
||||||
|
themes.rst
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
@ -25,11 +25,11 @@ Keymap Presets
|
|||||||
|
|
||||||
.. _bpy.ops.wm.keyconfig_preset_add:
|
.. _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:
|
.. _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:
|
.. _bpy.ops.preferences.keyconfig_import:
|
||||||
|
|
||||||
|
@ -71,6 +71,9 @@ Operating System Settings
|
|||||||
|
|
||||||
Make this installation your default Blender (MS-Windows & Linux only).
|
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
|
Register
|
||||||
Make the currently in use Blender installation the default
|
Make the currently in use Blender installation the default
|
||||||
for generating thumbnails and the default for opening blend-files.
|
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.
|
Register Blender for all users, requires escalated privileges.
|
||||||
|
|
||||||
|
|
||||||
.. note::
|
.. admonition:: Linux Registration
|
||||||
|
:class: note
|
||||||
Linux Registration
|
|
||||||
|
|
||||||
Files are setup files under: ``/usr/local`` for all users, otherwise ``~/.local`` is used.
|
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).
|
- 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:
|
.. _prefs-system-memory-and-limits:
|
||||||
|
|
||||||
Memory & Limits
|
Memory & Limits
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
.. _bpy.ops.preferences.theme_install:
|
|
||||||
.. _bpy.ops.preferences.reset_default_theme:
|
|
||||||
.. _bpy.types.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
|
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.
|
in the *3D Viewport* or the *Graph Editor* can also be changed.
|
||||||
|
|
||||||
Themes use Blender's preset system to save a theme.
|
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
|
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>`.
|
the :doc:`configuration directories </advanced/blender_directory_layout>`.
|
||||||
|
|
||||||
.. figure:: /images/editors_preferences_themes_example.png
|
.. _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.
|
Blender comes bundled with a small selection of themes.
|
||||||
|
|
||||||
|
.. figure:: /images/editors_preferences_themes_example.png
|
||||||
|
|
||||||
This is an example of the theme *Blender Light*.
|
This is an example of the theme *Blender Light*.
|
||||||
|
@ -153,7 +153,12 @@ Playback
|
|||||||
Play In
|
Play In
|
||||||
Which editors to update on each animation frame. If an editor is unchecked,
|
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
|
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:
|
.. _bpy.types.Scene.show_subframe:
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ Cursor
|
|||||||
(works with all tools) or adjust the 2D Cursor Location in :menuselection:`Sidebar --> View`.
|
(works with all tools) or adjust the 2D Cursor Location in :menuselection:`Sidebar --> View`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
By default, the 2D Cursor is only shown while dragging it. To make it permanently
|
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>`.
|
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
|
.. figure:: /images/asset-browser-catalogs.png
|
||||||
:width: 640px
|
: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.
|
Example file system and catalog structures.
|
||||||
|
|
||||||
|
@ -72,6 +72,8 @@ Open Recent
|
|||||||
Displays a list of recently opened blend-files.
|
Displays a list of recently opened blend-files.
|
||||||
Hovering over items will show a preview, and information about the blend-file.
|
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.
|
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
|
Clear Recent Files List
|
||||||
Removes all items from the list.
|
Removes all items from the list.
|
||||||
|
@ -207,7 +207,7 @@ Pack
|
|||||||
- |none|
|
- |none|
|
||||||
- Particle settings.
|
- Particle settings.
|
||||||
Used by particle systems.
|
Used by particle systems.
|
||||||
* - :doc:`Light Probe </render/eevee/light_probes/introduction>`
|
* - :doc:`Light Probe </render/eevee/light_probes/index>`
|
||||||
- |tick|
|
- |tick|
|
||||||
- |none|
|
- |none|
|
||||||
- Help achieve complex real-time lighting in EEVEE.
|
- 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.
|
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.
|
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
|
Collada Exporter
|
||||||
================
|
================
|
||||||
@ -74,15 +78,22 @@ Include Shape Keys
|
|||||||
Global Orientation
|
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
|
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
|
Copy
|
||||||
When you export images either material based image textures,
|
When you export images either material based image textures,
|
||||||
then the exporter creates absolute file references in the export file.
|
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
|
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.
|
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
|
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
|
page to find the minimum requirements and the different versions that are available
|
||||||
for Blender (if you have not done so yet).
|
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
|
Install from DMG
|
||||||
================
|
================
|
||||||
|
@ -9,6 +9,11 @@ for Blender (if you have not done so yet).
|
|||||||
|
|
||||||
Download the zip-file or Windows Installer File.
|
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
|
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,
|
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.
|
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.
|
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.
|
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;
|
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!
|
: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.
|
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
|
.. figure:: /images/modeling_curves_editing_curve_open-closed-cyclic.png
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@ Extrude Curve and Move
|
|||||||
.. reference::
|
.. reference::
|
||||||
|
|
||||||
:Mode: Edit Mode
|
:Mode: Edit Mode
|
||||||
|
:Menu: :menuselection:`Control Points --> Extrude Curve and Move`
|
||||||
:Shortcut: :kbd:`E`
|
:Shortcut: :kbd:`E`
|
||||||
|
|
||||||
Extrudes points by duplicating the selected points, which then can be moved,
|
Extrudes points by duplicating the selected points, which then can be moved,
|
||||||
|
@ -78,7 +78,7 @@ Tangent
|
|||||||
|
|
||||||
.. tip::
|
.. 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
|
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.
|
in a second align node after can align the other rotation axis.
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ Geometry
|
|||||||
Duplicate Index
|
Duplicate Index
|
||||||
An attribute field with a value for every output element describing which
|
An attribute field with a value for every output element describing which
|
||||||
duplicate of the corresponding input. The value for every input element will
|
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
|
Examples
|
||||||
|
@ -67,7 +67,7 @@ Rotation
|
|||||||
:doc:`Distribute Points on Faces </modeling/geometry_nodes/point/distribute_points_on_faces>`
|
: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
|
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>`
|
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
|
Scale
|
||||||
The size of each generated instance.
|
The size of each generated instance.
|
||||||
|
@ -10,7 +10,7 @@ Mesh to Volume Node
|
|||||||
:alt: 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 *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
|
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.
|
and come first in the list.
|
||||||
|
|
||||||
Next, in the point domain, we need to calculate the rotation of each cone.
|
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 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
|
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
|
.. index:: Geometry Nodes; Align Rotation to Vector
|
||||||
.. _bpy.types.FunctionNodeAlignEulerToVector:
|
.. _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
|
: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
|
Inputs
|
@ -6,7 +6,7 @@
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
align_euler_to_vector.rst
|
align_rotation_to_vector.rst
|
||||||
rotate_rotation.rst
|
rotate_rotation.rst
|
||||||
rotate_vector.rst
|
rotate_vector.rst
|
||||||
axis_angle_to_rotation.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.
|
inside the cut gets selected.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The cutting objects must be curves or non-manifold meshes (e.g. flat shapes, loose edges).
|
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>`
|
:ref:`Select Non-Manifold <bpy.ops.mesh.select_non_manifold>`
|
||||||
will highlight the cutting edges of mesh objects.
|
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.
|
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.
|
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:
|
.. _bpy.ops.mesh.primitive_cube_add:
|
||||||
|
|
||||||
@ -69,12 +80,9 @@ Vertices
|
|||||||
Fill Type
|
Fill Type
|
||||||
Set how the circle will be filled.
|
Set how the circle will be filled.
|
||||||
|
|
||||||
Triangle Fan
|
:Triangle Fan: Fill with triangular faces which share a vertex in the middle.
|
||||||
Fill with triangular faces which share a vertex in the middle.
|
:N-gon: Fill with a single :term:`N-gon`.
|
||||||
N-gon
|
:Nothing: Do not fill. Creates only the outer ring of vertices.
|
||||||
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:
|
.. _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>`__
|
- `Utah Teapot <https://en.wikipedia.org/wiki/Utah_teapot>`__
|
||||||
- `Stanford Bunny <https://en.wikipedia.org/wiki/Stanford_Bunny>`__.
|
- `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
|
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.
|
"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.
|
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
|
In addition to the basic geometric primitives can be added via extensions
|
||||||
These are available from the :doc:`Preferences </editors/preferences/extensions>`.
|
These are available from the :doc:`Preferences </editors/preferences/extensions>`.
|
||||||
|
@ -35,13 +35,64 @@ Transform
|
|||||||
- Shear :kbd:`Shift-Ctrl-Alt-S`
|
- 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.
|
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.
|
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
|
Randomize
|
||||||
=========
|
=========
|
||||||
|
|
||||||
@ -58,16 +109,12 @@ similar to *Randomize Transform* tool in the 3d view.
|
|||||||
Random Seed
|
Random Seed
|
||||||
Changes the random :term:`seed` used by the pseudo-random number generator,
|
Changes the random :term:`seed` used by the pseudo-random number generator,
|
||||||
producing a different transform result for each seed value.
|
producing a different transform result for each seed value.
|
||||||
|
|
||||||
Location
|
Location
|
||||||
Amount to randomize location.
|
Amount to randomize location.
|
||||||
|
|
||||||
Rotation
|
Rotation
|
||||||
Amount to randomize rotation.
|
Amount to randomize rotation.
|
||||||
|
|
||||||
Scale Even
|
Scale Even
|
||||||
Apply the same scale to the U coordinate and V coordinate.
|
Apply the same scale to the U coordinate and V coordinate.
|
||||||
|
|
||||||
Scale
|
Scale
|
||||||
Amount to randomize scale in U and V coordinates.
|
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.
|
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,
|
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).
|
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
|
There are many built-in modifiers but Blender also allows users
|
||||||
|
@ -5,8 +5,6 @@
|
|||||||
World Settings
|
World Settings
|
||||||
**************
|
**************
|
||||||
|
|
||||||
.. _bpy.types.WorldMistSettings:
|
|
||||||
|
|
||||||
Mist Pass
|
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
|
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.
|
that can be used in the Compositor to generate a mist effect.
|
||||||
|
|
||||||
.. _bpy.types.WorldMistSettings.start:
|
|
||||||
|
|
||||||
Start
|
Start
|
||||||
The distance from the camera at which the mist starts to fade in.
|
The distance from the camera at which the mist starts to fade in.
|
||||||
|
|
||||||
.. _bpy.types.WorldMistSettings.depth:
|
|
||||||
|
|
||||||
Depth
|
Depth
|
||||||
The distance from *Start* of the mist, that it fades in over.
|
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.
|
Objects further from the camera than *Start + Depth* are completely hidden by the mist.
|
||||||
|
|
||||||
.. _bpy.types.WorldMistSettings.falloff:
|
|
||||||
|
|
||||||
Falloff
|
Falloff
|
||||||
The curve function that controls the rate of change of the mist's strength further and further into the distance.
|
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.
|
There are three different types of light probes.
|
||||||
Each type of light probe records the lighting at a different resolution and frequency.
|
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).
|
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 visible planar light probe increases the render time as the scene needs to be rendered for
|
||||||
each of them.
|
each of them.
|
||||||
|
|
||||||
Light probe planes only work when the ray tracing method is set to `Screen-Trace`. When enabled, they
|
Light probe planes only work when the ray tracing method is set to ``Screen-Trace``.
|
||||||
accelerate the tracing process and complete the missing data from the screen space ray tracing.
|
When enabled, they accelerate the tracing process and complete the missing data from the screen space ray tracing.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
@ -74,6 +74,7 @@ Once baked, the data is stored inside the object data-block and can be moved, an
|
|||||||
between blender files.
|
between blender files.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Baking uses the render visibility of the objects in the scene.
|
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.
|
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::
|
.. 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
|
Resolution
|
||||||
----------
|
----------
|
||||||
@ -105,6 +106,7 @@ Surfel Resolution
|
|||||||
Higher values increase quality, but have a huge impact on memory usage.
|
Higher values increase quality, but have a huge impact on memory usage.
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
|
|
||||||
A good value is twice the maximum *Resolution*.
|
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.
|
Has a high performance impact as the shadow map cannot be cached and needs to be updated for each render sample.
|
||||||
|
|
||||||
.. note::
|
.. 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:
|
.. _bpy.types.Light.shadow_jitter_overblur:
|
||||||
|
|
||||||
@ -52,6 +54,7 @@ Overblur
|
|||||||
Apply shadow tracing to each jittered sample to reduce under-sampling artifacts.
|
Apply shadow tracing to each jittered sample to reduce under-sampling artifacts.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Any value higher than zero will result in a blurrier shadow and is not physically correct.
|
Any value higher than zero will result in a blurrier shadow and is not physically correct.
|
||||||
|
|
||||||
.. _bpy.types.Light.shadow_filter_radius:
|
.. _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.
|
The effective world scale of the filter depends on the shadow map resolution at the shadowed pixel position.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Any value bigger than 1px will increase the chances of light leaking artifacts.
|
Any value bigger than 1px will increase the chances of light leaking artifacts.
|
||||||
|
|
||||||
.. _bpy.types.Light.shadow_maximum_resolution:
|
.. _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.
|
This property limits the maximum amount of detail that the shadow map can capture.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Reducing the shadow map resolution will increase the chances of light leaking artifacts.
|
Reducing the shadow map resolution will increase the chances of light leaking artifacts.
|
||||||
|
|
||||||
.. _bpy.types.Light.use_absolute_resolution:
|
.. _bpy.types.Light.use_absolute_resolution:
|
||||||
|
|
||||||
Absolute Resolution Limit
|
Absolute Resolution Limit
|
||||||
Limit the resolution at 1 unit from the light origin instead of relative to the shadowed pixel.
|
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::
|
.. 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::
|
.. math::
|
||||||
|
|
||||||
resolution\_limit = 2 * \sqrt{2} / resolution
|
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::
|
.. 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
|
Influence
|
||||||
=========
|
=========
|
||||||
|
|
||||||
These parameters modulate the intensity of the light depending on the shader type.
|
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:
|
.. _bpy.types.Light.diffuse_factor:
|
||||||
|
|
||||||
@ -137,6 +149,7 @@ Distance
|
|||||||
Specifies where light influence will be set to 0.
|
Specifies where light influence will be set to 0.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The setting :ref:`Custom Distance <bpy.types.Light.use_custom_distance>` does not exist for Sun Light.
|
The setting :ref:`Custom Distance <bpy.types.Light.use_custom_distance>` does not exist for Sun Light.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
#############
|
###############
|
||||||
Limitations
|
Limitations
|
||||||
#############
|
###############
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
@ -26,7 +26,8 @@ Lights
|
|||||||
======
|
======
|
||||||
|
|
||||||
- Lights can only have one color and do not support light node trees.
|
- 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.
|
- 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 128 active light probe spheres.
|
||||||
- EEVEE supports up to 16 active light probe planes inside the view frustum.
|
- 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
|
Indirect Lighting
|
||||||
=================
|
=================
|
||||||
@ -51,7 +53,8 @@ Shadows
|
|||||||
This can be mitigated by using lower :ref:`step count <bpy.types.SceneEEVEE.shadow_step_count>`, enabling
|
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.
|
: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.
|
- 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:
|
.. _eevee-limitations-volumetrics:
|
||||||
|
|
||||||
@ -105,7 +108,8 @@ Raytracing
|
|||||||
- Blended materials and materials using raytrace refractions will not appear in dithered materials reflections.
|
- Blended materials and materials using raytrace refractions will not appear in dithered materials reflections.
|
||||||
- Blended materials are not compatible with raytracing.
|
- Blended materials are not compatible with raytracing.
|
||||||
- Only one refraction event is correctly modeled.
|
- 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.
|
- 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 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.
|
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).
|
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.
|
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.
|
- Shadow casting object will not cast shadow within the thickness distance.
|
||||||
|
|
||||||
.. tip::
|
.. 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.
|
- Thickness can be baked to textures or custom attributes for more accurate result.
|
||||||
|
|
||||||
|
|
||||||
@ -83,11 +85,13 @@ Displacement
|
|||||||
Vertex position is modified.
|
Vertex position is modified.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
This type of displacement is not precomputed. It has a performance impact multiplied by the
|
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
|
render sample count. However, the evaluation is much faster than doing it using geometry
|
||||||
nodes or a displacement modifier.
|
nodes or a displacement modifier.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Displacing flat shaded geometry will split adjacent faces.
|
Displacing flat shaded geometry will split adjacent faces.
|
||||||
This can be worked around by passing the vertex normals as a custom attribute.
|
This can be worked around by passing the vertex normals as a custom attribute.
|
||||||
|
|
||||||
@ -128,15 +132,19 @@ Render Method
|
|||||||
.. admonition:: Sorting Problem
|
.. admonition:: Sorting Problem
|
||||||
:class: important
|
:class: important
|
||||||
|
|
||||||
When using *Blended* render method, the order in which the color blending happens is important as it
|
When using *Blended* render method, the order in which the color blending
|
||||||
can change the final output color. EEVEE does not support per-fragment (pixel) sorting or per-triangle sorting.
|
happens is important as it can change the final output color.
|
||||||
Only per-object sorting is available and is automatically done on all transparent surfaces based on object origin.
|
EEVEE does not support per-fragment (pixel) sorting or per-triangle sorting.
|
||||||
Opaque surfaces (i.e. that have no transparency) will still have correct sorting regardless of the render method.
|
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::
|
.. tip::
|
||||||
|
|
||||||
Face order can be adjusted in edit mode by using :doc:`sort element </modeling/meshes/editing/mesh/sort_elements>`
|
Face order can be adjusted in edit mode by using
|
||||||
or using a :doc:`geometry node </modeling/geometry_nodes/geometry/operations/sort_elements>`.
|
:doc:`sort element </modeling/meshes/editing/mesh/sort_elements>` or using a
|
||||||
|
:doc:`geometry node </modeling/geometry_nodes/geometry/operations/sort_elements>`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ Shadow
|
|||||||
Light Probes
|
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.
|
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,
|
For instanced objects, visibility is inherited; if the parent object is hidden for some ray types,
|
||||||
the children will be hidden for these too.
|
the children will be hidden for these too.
|
||||||
|
@ -26,7 +26,8 @@ Indirect Light
|
|||||||
|
|
||||||
.. note::
|
.. 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.
|
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
|
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:
|
.. _bpy.types.SceneEEVEE.shadow_pool_size:
|
||||||
|
|
||||||
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.
|
Increasing it might fix the *Shadow buffer full* error.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
@ -29,7 +30,8 @@ Shadow Pool Size
|
|||||||
.. _bpy.types.SceneEEVEE.gi_irradiance_pool_size:
|
.. _bpy.types.SceneEEVEE.gi_irradiance_pool_size:
|
||||||
|
|
||||||
Light Probes Volume 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
|
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.
|
and finding their intersection with the scene individually.
|
||||||
|
|
||||||
When disabled, it is replaced by a faster pipeline that uses pre-filtered light-probes.
|
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::
|
.. 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.
|
: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.
|
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
|
Method
|
||||||
Determine the method used to compute the fast GI approximation.
|
Determine the method used to compute the fast GI approximation.
|
||||||
@ -111,7 +113,8 @@ Steps
|
|||||||
.. tip::
|
.. tip::
|
||||||
|
|
||||||
With a higher step count, there is less chance to miss other surfaces that could reflect or block the light.
|
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
|
Precision
|
||||||
Higher values increase the precision of the scene intersections with the GI rays.
|
Higher values increase the precision of the scene intersections with the GI rays.
|
||||||
@ -123,7 +126,8 @@ Distance
|
|||||||
Thickness Near
|
Thickness Near
|
||||||
Geometric thickness of the surfaces when computing fast GI and ambient occlusion.
|
Geometric thickness of the surfaces when computing fast GI and ambient occlusion.
|
||||||
Reduces light leaking and missing contact 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
|
Far
|
||||||
Angular thickness of the surfaces when computing fast GI and ambient occlusion.
|
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
|
When working with volume objects, EEVEE automatically computes the best depth range where to compute
|
||||||
the volume sampling and lighting.
|
the volume sampling and lighting.
|
||||||
In certain situations, this isn't enough and produces sub-optimal sampling which increases noise.
|
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.
|
This is particularly the case when using a volume shader inside the *World* or when working with large
|
||||||
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.
|
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
|
||||||
Start distance of the volumetric effect.
|
Start distance of the volumetric effect.
|
||||||
|
@ -6,9 +6,13 @@ World Settings
|
|||||||
The world environment can emit light, ranging from a single solid color
|
The world environment can emit light, ranging from a single solid color
|
||||||
to arbitrary textures.
|
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.
|
This makes the lighting less precise than Cycles.
|
||||||
|
|
||||||
|
|
||||||
|
.. _bpy.types.WorldMistSettings:
|
||||||
|
|
||||||
Mist Pass
|
Mist Pass
|
||||||
=========
|
=========
|
||||||
|
|
||||||
@ -83,7 +87,8 @@ Resolution
|
|||||||
Sun
|
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
|
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.
|
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.
|
Empty objects that display images in the 3D Viewport.
|
||||||
These images can be used to aid artists in modeling or animating.
|
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>`
|
:doc:`Light </render/lights/light_object>`
|
||||||
Empty objects that emit light and are used for lighting the scene in renders.
|
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.
|
Used by the EEVEE render engine to record lighting information for indirect lighting.
|
||||||
|
|
||||||
:doc:`Camera </render/cameras>`
|
:doc:`Camera </render/cameras>`
|
||||||
@ -84,17 +88,15 @@ Type
|
|||||||
You can change the type of some objects after their creation with a selector.
|
You can change the type of some objects after their creation with a selector.
|
||||||
Radius/Size
|
Radius/Size
|
||||||
Sets the starting size.
|
Sets the starting size.
|
||||||
|
|
||||||
Align
|
Align
|
||||||
Rotates the new object so that it is aligned in one of the following manners:
|
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).
|
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.
|
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>`.
|
Aligns the object to match the rotation of the :doc:`3D Cursor </editors/3dview/3d_cursor>`.
|
||||||
|
|
||||||
Location
|
Location
|
||||||
Objects are placed, by default, at the position of the 3D Cursor.
|
Objects are placed, by default, at the position of the 3D Cursor.
|
||||||
These values let you place the object in an other position.
|
These values let you place the object in an other position.
|
||||||
|
@ -38,7 +38,7 @@ Background Scene
|
|||||||
.. _bpy.types.Scene.active_clip:
|
.. _bpy.types.Scene.active_clip:
|
||||||
|
|
||||||
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`.
|
:ref:`constraints-motion-tracking` Constraints or a camera's :ref:`bpy.types.CameraBackgroundImage`.
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,8 +73,7 @@ Box Mask
|
|||||||
:Menu: :menuselection:`Mask --> Box Mask`
|
:Menu: :menuselection:`Mask --> Box Mask`
|
||||||
:Shortcut: :kbd:`B`
|
:Shortcut: :kbd:`B`
|
||||||
|
|
||||||
Works like the :doc:`Box Mask </sculpt_paint/sculpting/tools/box_mask>` tool,
|
Works like the :ref:`Box Mask <tool-box-mask>` tool, it creates a rectangular mask region.
|
||||||
it creates a rectangular mask region.
|
|
||||||
Hold :kbd:`Shift` or press :kbd:`MMB` to clear the mask of the selected 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`
|
:Menu: :menuselection:`Mask --> Lasso Mask`
|
||||||
:Shortcut: :kbd:`Shift-Ctrl-LMB`
|
:Shortcut: :kbd:`Shift-Ctrl-LMB`
|
||||||
|
|
||||||
Can be used to create a free-form mask, similar to the
|
Can be used to create a free-form mask, similar to the :ref:`Lasso Mask <tool-lasso-mask>` tool.
|
||||||
:doc:`Lasso Mask </sculpt_paint/sculpting/tools/box_mask>` tool.
|
|
||||||
This is very commonly used.
|
This is very commonly used.
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
@ -197,7 +195,7 @@ Fill Holes
|
|||||||
.. tip::
|
.. tip::
|
||||||
|
|
||||||
If nothing is masked, this operation can be used to just fill all holes.
|
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>`
|
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:
|
.. _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>`.
|
Removes geometry based on a :ref:`box selection <tool-select-box>`.
|
||||||
|
|
||||||
.. _bpy.ops.sculpt.trim_lasso_gesture:
|
.. _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>`.
|
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>`.
|
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>`.
|
Adds geometry based on a :ref:`lasso selection <tool-select-lasso>`.
|
||||||
|
|
||||||
.. _bpy.ops.sculpt.project_line_gesture:
|
.. _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.
|
: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
|
The brush is also used for other :doc:`tools </sculpt_paint/sculpting/tools/index>` in the toolbar
|
||||||
to better display how that tool works.
|
to better display how that tool works. For example, the :ref:`Box Trim <tool-box-trim>`
|
||||||
For example, the :doc:`Box Trim </sculpt_paint/sculpting/tools/box_trim>`
|
and :ref:`Lasso Trim <tool-lasso-trim>` tools are able to use the current brush radius
|
||||||
and :doc:`Lasso Trim </sculpt_paint/sculpting/tools/lasso_trim>` tools are able to use the current brush radius
|
|
||||||
for how deep geometry is trimmed or added.
|
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