WIP: EEVEE-Next: Initial pass blender manual #104615
@ -33,3 +33,12 @@ insert_final_newline = true
|
|||||||
indent_style = tab
|
indent_style = tab
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
max_line_length = 120
|
max_line_length = 120
|
||||||
|
|
||||||
|
# HTML
|
||||||
|
[*.html]
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
max_line_length = 99
|
||||||
|
5
.gitignore
vendored
5
.gitignore
vendored
@ -1,6 +1,10 @@
|
|||||||
# Editors
|
# Editors
|
||||||
.vscode/*
|
.vscode/*
|
||||||
|
|
||||||
|
# Python virtual environment
|
||||||
|
.venv/
|
||||||
|
.python-version
|
||||||
|
|
||||||
# Byte-compiled / optimized / DLL files
|
# Byte-compiled / optimized / DLL files
|
||||||
__pycache__/
|
__pycache__/
|
||||||
*.py[cod]
|
*.py[cod]
|
||||||
@ -9,6 +13,7 @@ __pycache__/
|
|||||||
# Varius extensions
|
# Varius extensions
|
||||||
*.log
|
*.log
|
||||||
*.tmp
|
*.tmp
|
||||||
|
*.DS_Store
|
||||||
|
|
||||||
# Sphinx documentation
|
# Sphinx documentation
|
||||||
build/
|
build/
|
||||||
|
2
LICENSE
2
LICENSE
@ -410,7 +410,7 @@ Section 8 -- Interpretation.
|
|||||||
Creative Commons is not a party to its public
|
Creative Commons is not a party to its public
|
||||||
licenses. Notwithstanding, Creative Commons may elect to apply one of
|
licenses. Notwithstanding, Creative Commons may elect to apply one of
|
||||||
its public licenses to material it publishes and in those instances
|
its public licenses to material it publishes and in those instances
|
||||||
will be considered the “Licensor.” The text of the Creative Commons
|
will be considered the "Licensor." The text of the Creative Commons
|
||||||
public licenses is dedicated to the public domain under the CC0 Public
|
public licenses is dedicated to the public domain under the CC0 Public
|
||||||
Domain Dedication. Except for the limited purpose of indicating that
|
Domain Dedication. Except for the limited purpose of indicating that
|
||||||
material is shared under a Creative Commons public license or as
|
material is shared under a Creative Commons public license or as
|
||||||
|
16
Makefile
16
Makefile
@ -106,29 +106,29 @@ epubpdf: .SPHINXBUILD_EXISTS
|
|||||||
--pdf-page-margin-bottom 50 \
|
--pdf-page-margin-bottom 50 \
|
||||||
|
|
||||||
check_syntax:
|
check_syntax:
|
||||||
@python3 tools_rst/rst_check_syntax.py --long --title --kbd > rst_check_syntax.log
|
@python3 tools/check_source/check_syntax.py --long --title --kbd > rst_check_syntax.log
|
||||||
@echo "Lines:" `cat rst_check_syntax.log | wc -l`
|
@echo "Lines:" `cat rst_check_syntax.log | wc -l`
|
||||||
@python3 tools/open_quickfix_in_editor.py rst_check_syntax.log
|
@python3 tools/utils_ide/open_quickfix_in_editor.py rst_check_syntax.log
|
||||||
@rm rst_check_syntax.log
|
@rm rst_check_syntax.log
|
||||||
|
|
||||||
check_structure:
|
check_structure:
|
||||||
@python3 tools_rst/rst_check_images.py
|
@python3 tools/check_source/check_images.py
|
||||||
|
|
||||||
check_spelling:
|
check_spelling:
|
||||||
@python3 tools_rst/rst_check_spelling.py
|
@python3 tools/check_source/check_spelling.py
|
||||||
|
|
||||||
checkout_locale:
|
checkout_locale:
|
||||||
@python3 ./tools_make/checkout_locale.py
|
@python3 ./build_files/utils/checkout_locale.py
|
||||||
|
|
||||||
update_po:
|
update_po:
|
||||||
@python3 ./tools_maintenance/update_po.py
|
@python3 ./tools/translations/update_po.py
|
||||||
|
|
||||||
report_po_progress:
|
report_po_progress:
|
||||||
@python3 tools_report/report_translation_progress.py --quiet \
|
@python3 tools/translations/report_translation_progress.py --quiet \
|
||||||
`find locale/ -maxdepth 1 -mindepth 1 -type d -not -iwholename '*.git*' -printf 'locale/%f\n' | sort`
|
`find locale/ -maxdepth 1 -mindepth 1 -type d -not -iwholename '*.git*' -printf 'locale/%f\n' | sort`
|
||||||
|
|
||||||
update:
|
update:
|
||||||
@python3 ./tools_make/make_update.py
|
@python3 ./build_files/utils/make_update.py
|
||||||
|
|
||||||
format_py:
|
format_py:
|
||||||
@autopep8 --in-place --recursive .
|
@autopep8 --in-place --recursive .
|
||||||
|
@ -38,6 +38,7 @@ or making patches, you may also submit the modified file as an
|
|||||||
- **Manual Docs**: [Contributing Guide](https://docs.blender.org/manual/en/dev/contribute/index.html) (the process for editing the manual).
|
- **Manual Docs**: [Contributing Guide](https://docs.blender.org/manual/en/dev/contribute/index.html) (the process for editing the manual).
|
||||||
- **Source Files**: [Manual Repository](https://projects.blender.org/blender/blender-manual) (Git repository).
|
- **Source Files**: [Manual Repository](https://projects.blender.org/blender/blender-manual) (Git repository).
|
||||||
- **[Developer forum](https://devtalk.blender.org/c/documentation/12)**
|
- **[Developer forum](https://devtalk.blender.org/c/documentation/12)**
|
||||||
|
- **Chat**: [#docs on blender.chat](https://blender.chat/channel/docs).
|
||||||
- **Administrators**: @blendify @fsiddi
|
- **Administrators**: @blendify @fsiddi
|
||||||
|
|
||||||
|
|
||||||
@ -52,7 +53,7 @@ If you are interested in becoming a contributor, please contact us on the
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
|
|
||||||
For translations, we use Sphinx’s internationalization package.
|
For translations, we use Sphinx's internationalization package.
|
||||||
To get started see the [contribution guide for translations](https://docs.blender.org/manual/en/dev/contribute/index.html#translations).
|
To get started see the [contribution guide for translations](https://docs.blender.org/manual/en/dev/contribute/index.html#translations).
|
||||||
|
|
||||||
|
|
||||||
@ -60,6 +61,7 @@ To get started see the [contribution guide for translations](https://docs.blende
|
|||||||
|
|
||||||
- **Source Files**: [Translation's Repository](https://projects.blender.org/blender/blender-manual-translations) (git repository).
|
- **Source Files**: [Translation's Repository](https://projects.blender.org/blender/blender-manual-translations) (git repository).
|
||||||
- **Forum**: [Documentation category on Developer Talk](https://devtalk.blender.org/c/documentation)
|
- **Forum**: [Documentation category on Developer Talk](https://devtalk.blender.org/c/documentation)
|
||||||
|
- **Chat**: [#translations on blender.chat](https://blender.chat/channel/translations).
|
||||||
- **Administrators**: @blendify , @fsiddi
|
- **Administrators**: @blendify , @fsiddi
|
||||||
|
|
||||||
**Note:*
|
**Note:*
|
||||||
|
@ -234,3 +234,10 @@ RedirectMatch "^/manual/{lang}/{version}/compositing/types/converter/combine_xyz
|
|||||||
RedirectMatch "^/manual/{lang}/{version}/compositing/types/converter/seperate_xyz.html" "^/manual/{lang}/{version}/compositing/types/vector/seperate_xyz.html"
|
RedirectMatch "^/manual/{lang}/{version}/compositing/types/converter/seperate_xyz.html" "^/manual/{lang}/{version}/compositing/types/vector/seperate_xyz.html"
|
||||||
|
|
||||||
RedirectMatch "^/manual/{lang}/{version}/modeling/geometry_nodes/mesh/read/is_shade_smooth.html" "^/manual/{lang}/{version}/modeling/geometry_nodes/mesh/read/is_face_smooth.html"
|
RedirectMatch "^/manual/{lang}/{version}/modeling/geometry_nodes/mesh/read/is_shade_smooth.html" "^/manual/{lang}/{version}/modeling/geometry_nodes/mesh/read/is_face_smooth.html"
|
||||||
|
|
||||||
|
RedirectMatch "^/manual/{lang}/{version}/modeling/geometry_nodes/volume/volume_to_mesh.html" "^/manual/{lang}/{version}/modeling/geometry_nodes/mesh/operations/volume_to_mesh.html"
|
||||||
|
RedirectMatch "^/manual/{lang}/{version}/modeling/geometry_nodes/volume/volume_cube.html" "^/manual/{lang}/{version}/modeling/geometry_nodes/mesh/primatives/volume_cube.html"
|
||||||
|
|
||||||
|
RedirectMatch "^/manual/{lang}/{version}/editors/nla/editing.html" "^/manual/{lang}/{version}/editors/nla/editing/index.html"
|
||||||
|
|
||||||
|
RedirectMatch "^/manual/{lang}/{version}/render/shader_nodes/shader/anisotropic.html" "^/manual/{lang}/{version}/render/shader_nodes/shader/glossy.html"
|
@ -33,7 +33,7 @@ def gen_htaccess(app, lang, version):
|
|||||||
|
|
||||||
def read_htaccess():
|
def read_htaccess():
|
||||||
current_dir = os.path.abspath(os.path.dirname(__file__))
|
current_dir = os.path.abspath(os.path.dirname(__file__))
|
||||||
ht_fn = os.path.normpath(os.path.join(current_dir, "..", "resources", ".htaccess"))
|
ht_fn = os.path.normpath(os.path.join(current_dir, "..", ".htaccess"))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with open(ht_fn, "r", encoding="utf-8") as f:
|
with open(ht_fn, "r", encoding="utf-8") as f:
|
@ -1,32 +1,27 @@
|
|||||||
{%- extends "!layout.html" %}
|
{%- extends "!page.html" %}
|
||||||
{%- set title = _('Not Found (404)') %}
|
{%- set title = _('Not Found (404)') %}
|
||||||
{%- set ROOT = "https://docs.blender.org/manual/" %}
|
{%- set ROOT = "https://docs.blender.org/manual/" %}
|
||||||
{%- block htmltitle %}
|
{%- block htmltitle %}
|
||||||
{{ super() }}
|
{{ super() }}
|
||||||
<base href="{{ ROOT + language + '/' + version + '/' }}" />
|
<base href="{{ ROOT + language + '/' + version + '/' }}" />
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{%- block extrahead %}
|
{% block content %}
|
||||||
<style>
|
|
||||||
.search404 {
|
|
||||||
margin: 15px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search404 input[type="text"] {
|
|
||||||
width: 100%;
|
|
||||||
border-radius: 50px;
|
|
||||||
padding-inline-start: 1em;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
{% endblock %}
|
|
||||||
{%- block body %}
|
|
||||||
<h1>{% trans %}Not Found (404){% endtrans %}</h1>
|
<h1>{% trans %}Not Found (404){% endtrans %}</h1>
|
||||||
<p>{% trans %}It seems the page you are trying to find has been either moved or deleted.{% endtrans %}<br>
|
<p>{% trans %}It seems the page you are trying to find has been either moved or deleted.{% endtrans %}<br>
|
||||||
{% trans %}You can try one of the following things:{% endtrans %}</p>
|
{% trans %}You can try one of the following things:{% endtrans %}</p>
|
||||||
|
|
||||||
<div class="search404 centered">
|
<div class="search404 centered">
|
||||||
{% include "searchbox.html" %}
|
<form class="sidebar-search-container" method="get" action="{{ pathto('search') }}" role="search">
|
||||||
|
<input class="sidebar-search" placeholder="{{ _("Search") }}" name="q" aria-label="{{ _("Search" ) }}">
|
||||||
|
<input type="hidden" name="check_keywords" value="yes">
|
||||||
|
<input type="hidden" name="area" value="default">
|
||||||
|
</form>
|
||||||
|
<div id="searchbox"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{%- endblock %}
|
||||||
|
{%- block scripts -%}
|
||||||
|
|
||||||
<noscript>
|
<noscript>
|
||||||
<a href="{{ ROOT + language + '/' + version + '/index.html' }}" class="btn btn-neutral"
|
<a href="{{ ROOT + language + '/' + version + '/index.html' }}" class="btn btn-neutral"
|
||||||
title="{{ _('Return Home') }}">
|
title="{{ _('Return Home') }}">
|
||||||
@ -36,31 +31,28 @@
|
|||||||
</noscript>
|
</noscript>
|
||||||
<script>
|
<script>
|
||||||
function init() {
|
function init() {
|
||||||
var versions = getVersion();
|
const versions = getVersion();
|
||||||
if (versions !== null) {
|
if (versions !== null) {
|
||||||
replaceSearch(versions);
|
replaceSearch(versions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*get language and version from url*/
|
/*get language and version from url*/
|
||||||
function getVersion() {
|
function getVersion() {
|
||||||
var url = window.location.href;
|
const versions = window.location.pathname.split('/', 4);
|
||||||
var versions = url.match(/\/manual\/([\w\-\.]+)\/(dev|\d\.\d[\w\d\.]*)\//);
|
if (versions && versions[1] === "manual") {
|
||||||
if (versions !== null) {
|
return versions.slice(2);
|
||||||
return [versions[1], versions[2]];
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
/*replace search form url*/
|
/*replace search form url*/
|
||||||
function replaceSearch(version) {
|
function replaceSearch(versions) {
|
||||||
var searchforms = document.getElementsByTagName("FORM");
|
const searchforms = document.getElementsByTagName("FORM");
|
||||||
for (let i = 0; i < searchforms.length; i++) {
|
for (let searchform of searchforms) {
|
||||||
searchforms[i].setAttribute("action", "/manual/" + version[0] + "/" + version[1] + "/search.html");
|
searchform.setAttribute("action", ["", "manual", ...versions, "search.html"].join("/"));
|
||||||
}
|
let searchtext = searchform.querySelector("input[name=\"q\"]");
|
||||||
var searchtexts = document.getElementsByName("q");
|
searchtext.setAttribute("placeholder", "Search Docs (" + versions.join(" ") + ")");
|
||||||
for (let i = 0; i < searchtexts.length; i++) {
|
|
||||||
searchtexts[i].setAttribute("placeholder", "Search Docs (" + version[0] + " " + version[1] + ")");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
window.onload = init();
|
window.onload = init();
|
||||||
</script>
|
</script>
|
||||||
{%- endblock %}
|
{%- endblock %}
|
11
build_files/templates/base.html
Normal file
11
build_files/templates/base.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{%- extends "!base.html" -%}
|
||||||
|
|
||||||
|
{%- block linktags -%}
|
||||||
|
{{ super() }}
|
||||||
|
{%- include "components/linktags.html" -%}
|
||||||
|
{%- endblock -%}
|
||||||
|
|
||||||
|
{%- block theme_scripts -%}
|
||||||
|
{{ super() }}
|
||||||
|
<script defer data-domain="docs.blender.org" src="https://analytics.blender.org/js/script.js"></script>
|
||||||
|
{%- endblock -%}
|
27
build_files/templates/components/footer_contribute.html
Normal file
27
build_files/templates/components/footer_contribute.html
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{%- if not pagename in ("search", "404", "genindex", "advanced/command_line/arguments") and hasdoc(pagename) %}
|
||||||
|
<div class="footer-contribute">
|
||||||
|
<ul>
|
||||||
|
<li>{# Add the `display=source` because GITEA's rendering misses Sphinx's features and shows warnings. #}
|
||||||
|
<a href="https://projects.blender.org/blender/blender-manual/{#
|
||||||
|
#}src/branch/main/manual/{{ pagename }}{{ page_source_suffix }}?display=source"> {{
|
||||||
|
_('View Source') }}</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://translate.blender.org/zen/blender-manual/{#
|
||||||
|
#}manual/{{ language }}/?q=location%3Amanual%2F{{ pagename }}"> {{ _('View Translation') }}</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://projects.blender.org/blender/documentation/issues/new?{#
|
||||||
|
#}template=.gitea/issue_template/bug.yaml&field:{#
|
||||||
|
#}body=%2A%2APage+Information%2A%2A%0D%0A{#
|
||||||
|
#}File%3A+%60manual%2F{{ pagename }}{{ page_source_suffix }}%60%0D%0A{#
|
||||||
|
#}Blender+Version%3A+%60{{ version }}%60%0D%0A{#
|
||||||
|
#}Documentation+Language%3A+%60{{ language }}%60%0D%0A%5B{#
|
||||||
|
#}Permanent+Link%5D%28https%3A%2F%2Fdocs.blender.org%2F{#
|
||||||
|
#}manual%2F{{ language }}%2F{{ version }}%2F{{ pagename }}{{ file_suffix }}%29%0D%0A%0D%0A%2A%2A{#
|
||||||
|
#}Short+description+of+error%2A%2A%0D%0A%5B{#
|
||||||
|
#}Please+fill+out+a+short+description+of+the+error+here%5D%0D%0A"> {{ _('Report issue on this page') }}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{%- endif %}
|
@ -1,5 +1,3 @@
|
|||||||
{%- extends "!layout.html" %}
|
|
||||||
{%- block linktags %}
|
|
||||||
<link rel="alternate" hreflang="en" href="https://docs.blender.org/manual/en/latest/" />
|
<link rel="alternate" hreflang="en" href="https://docs.blender.org/manual/en/latest/" />
|
||||||
<link rel="alternate" hreflang="ar" href="https://docs.blender.org/manual/ar/latest/" />
|
<link rel="alternate" hreflang="ar" href="https://docs.blender.org/manual/ar/latest/" />
|
||||||
<link rel="alternate" hreflang="de" href="https://docs.blender.org/manual/de/latest/" />
|
<link rel="alternate" hreflang="de" href="https://docs.blender.org/manual/de/latest/" />
|
||||||
@ -11,6 +9,7 @@
|
|||||||
<link rel="alternate" hreflang="ja" href="https://docs.blender.org/manual/ja/latest/" />
|
<link rel="alternate" hreflang="ja" href="https://docs.blender.org/manual/ja/latest/" />
|
||||||
<link rel="alternate" hreflang="ko" href="https://docs.blender.org/manual/ko/latest/" />
|
<link rel="alternate" hreflang="ko" href="https://docs.blender.org/manual/ko/latest/" />
|
||||||
<link rel="alternate" hreflang="nb" href="https://docs.blender.org/manual/nb/latest/" />
|
<link rel="alternate" hreflang="nb" href="https://docs.blender.org/manual/nb/latest/" />
|
||||||
|
<link rel="alternate" hreflang="nl" href="https://docs.blender.org/manual/nl/latest/" />
|
||||||
<link rel="alternate" hreflang="pt" href="https://docs.blender.org/manual/pt/latest/" />
|
<link rel="alternate" hreflang="pt" href="https://docs.blender.org/manual/pt/latest/" />
|
||||||
<link rel="alternate" hreflang="ru" href="https://docs.blender.org/manual/ru/latest/" />
|
<link rel="alternate" hreflang="ru" href="https://docs.blender.org/manual/ru/latest/" />
|
||||||
<link rel="alternate" hreflang="sk" href="https://docs.blender.org/manual/sk/latest/" />
|
<link rel="alternate" hreflang="sk" href="https://docs.blender.org/manual/sk/latest/" />
|
||||||
@ -20,6 +19,4 @@
|
|||||||
<link rel="alternate" hreflang="vi" href="https://docs.blender.org/manual/vi/latest/" />
|
<link rel="alternate" hreflang="vi" href="https://docs.blender.org/manual/vi/latest/" />
|
||||||
<link rel="alternate" hreflang="zh-Hans" href="https://docs.blender.org/manual/zh-hans/latest/" />
|
<link rel="alternate" hreflang="zh-Hans" href="https://docs.blender.org/manual/zh-hans/latest/" />
|
||||||
<link rel="alternate" hreflang="zh-Hant" href="https://docs.blender.org/manual/zh-hant/latest/" />
|
<link rel="alternate" hreflang="zh-Hant" href="https://docs.blender.org/manual/zh-hant/latest/" />
|
||||||
<link rel="alternate" hreflang="x-default" href="https://docs.blender.org/manual/en/latest/" />
|
<link rel="alternate" hreflang="x-default" href="https://docs.blender.org/manual/en/latest/" />
|
||||||
{{ super() }}
|
|
||||||
{%- endblock %}
|
|
6
build_files/templates/page.html
Normal file
6
build_files/templates/page.html
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{%- extends "!page.html" -%}
|
||||||
|
|
||||||
|
{%- block footer -%}
|
||||||
|
{{ super() }}
|
||||||
|
{%- include "components/footer_contribute.html" -%}
|
||||||
|
{%- endblock footer -%}
|
41
build_files/templates/sidebar/variant-selector.html
Normal file
41
build_files/templates/sidebar/variant-selector.html
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Document versions">
|
||||||
|
<ul id="versionwrap" role="presentation">
|
||||||
|
<li role="presentation">
|
||||||
|
<button id="version-popover" class="version-btn" tabindex="0" type="button" aria-label="Versions selector"
|
||||||
|
aria-haspopup="true" aria-owns="version-vsnlist" aria-disabled="true">
|
||||||
|
{{ release }}
|
||||||
|
</button>
|
||||||
|
<div class="version-dialog" aria-hidden="true">
|
||||||
|
<div class="version-title" aria-role="heading">Versions</div>
|
||||||
|
<ul id="version-vsnlist" class="version-list" role="menu" aria-labelledby="version-popover" aria-hidden="true">
|
||||||
|
<li role="presentation">Loading...</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li role="presentation">
|
||||||
|
<button id="lang-popover" class="version-btn" tabindex="0" type="button" aria-label="Language selector"
|
||||||
|
aria-haspopup="true" aria-owns="version-langlist">
|
||||||
|
{% if language is not none %} {{ language }} {% else %} en {% endif %}
|
||||||
|
</button>
|
||||||
|
<div class="version-dialog" aria-hidden="true">
|
||||||
|
<div class="version-title" aria-role="heading">Languages</div>
|
||||||
|
<ul id="version-langlist" class="version-list" role="menu" aria-labelledby="lang-popover" aria-hidden="true">
|
||||||
|
<li role="presentation">Loading...</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<template id="version-entry">
|
||||||
|
<li tabindex="-1" role="presentation"><a tabindex="-1" role="menuitem"></a></li>
|
||||||
|
<li class="selected" tabindex="-1" role="presentation"><span tabindex="-1" aria-current="page"></span></li>
|
||||||
|
</template>
|
||||||
|
</ul>
|
||||||
|
<template id="version-warning">
|
||||||
|
<div class="admonition warning">
|
||||||
|
<p class="first admonition-title">Note</p>
|
||||||
|
<p class="last">
|
||||||
|
You are not using the most up to date version of the documentation.
|
||||||
|
<a href="#"></a> is the newest version.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</div>
|
After Width: | Height: | Size: 10 KiB |
@ -20,4 +20,4 @@ h4,
|
|||||||
h5,
|
h5,
|
||||||
h6 {
|
h6 {
|
||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
354
build_files/theme/css/theme_overrides.css
Normal file
354
build_files/theme/css/theme_overrides.css
Normal file
@ -0,0 +1,354 @@
|
|||||||
|
/*
|
||||||
|
* This stylesheet is applied after the theme's default one,
|
||||||
|
* and thus any overrides or additions can be added here.
|
||||||
|
*
|
||||||
|
* More info:
|
||||||
|
* https://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx.application.Sphinx.add_css_file
|
||||||
|
*/
|
||||||
|
|
||||||
|
body {
|
||||||
|
--sidebar-caption-font-size: var(--font-size--normal);
|
||||||
|
--toc-title-font-size: var(--font-size--normal);
|
||||||
|
--toc-font-size: var(--sidebar-item-font-size);
|
||||||
|
--admonition-font-size: var(--font-size--normal);
|
||||||
|
--admonition-title-font-size: var(--font-size--normal);
|
||||||
|
--color-api-name: #e87d0d;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3 {
|
||||||
|
margin-top: 1.75rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 1.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6,
|
||||||
|
.rubric {
|
||||||
|
margin-top: 1.25rem;
|
||||||
|
margin-bottom: 0.75rem;
|
||||||
|
font-size: 1.125em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Reduce the margins on top/bottom of horizontal lines. */
|
||||||
|
hr.docutils {
|
||||||
|
margin: 1rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Slightly decrease text to make the text fit on one line */
|
||||||
|
.sidebar-brand-text {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toctree-checkbox~label .icon svg {
|
||||||
|
transition: transform 0.25s ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-reduced-motion: reduce) {
|
||||||
|
.toctree-checkbox~label .icon svg {
|
||||||
|
transition-duration: 0s !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add more visual weight to definition terms */
|
||||||
|
dl dt {
|
||||||
|
font-weight: bold !important
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fixes to field list, see #104636 */
|
||||||
|
dl.field-list {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: auto minmax(80%, 95%);
|
||||||
|
}
|
||||||
|
|
||||||
|
dl.field-list > dd > p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: calc(67em / 2)) {
|
||||||
|
dl.field-list {
|
||||||
|
grid-template-columns: unset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TABLE & FIGURE */
|
||||||
|
|
||||||
|
/* Cell's vertical align. */
|
||||||
|
/* use "valign" class for middle align */
|
||||||
|
table.docutils:not(.valign) td {
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Decrease whitespace above figure and add it below */
|
||||||
|
figure {
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
figcaption {
|
||||||
|
margin-bottom: 0.5rem !important;
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Allow horizontal lists to collapse on narrow screens */
|
||||||
|
.hlist tr {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: row wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End TABLE & FIGURE. */
|
||||||
|
|
||||||
|
/* Force admonition to span the full width if close to a figure */
|
||||||
|
.admonition {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Use secondary font color for caption text */
|
||||||
|
figcaption,
|
||||||
|
caption {
|
||||||
|
color: var(--color-foreground-secondary);
|
||||||
|
font-size: var(--font-size--small)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* A bit hacky, revert the themes styling of kbd */
|
||||||
|
kbd:not(.compound) {
|
||||||
|
all: revert;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Only style parent kbd elements instead of the individual children */
|
||||||
|
:not(dl.option-list)> :not(kbd):not(kbd)>kbd,
|
||||||
|
.menuselection {
|
||||||
|
background-color: var(--color-background-secondary);
|
||||||
|
border: 1px solid var(--color-foreground-border);
|
||||||
|
border-radius: .2rem;
|
||||||
|
box-shadow: 0 .0625rem 0 rgba(0, 0, 0, .2), inset 0 0 0 .125rem var(--color-background-secondary);
|
||||||
|
color: var(--color-foreground-primary);
|
||||||
|
display: inline-block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 .2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Don't underline any text within code blocks (hurts readability). */
|
||||||
|
.highlight .nc,
|
||||||
|
.highlight .nn,
|
||||||
|
.highlight .gu {
|
||||||
|
text-decoration-line: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.caption .menuselection {
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Break long code references onto a second line */
|
||||||
|
a > code.docutils {
|
||||||
|
overflow-wrap: anywhere;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Quotes for Fig. "link". */
|
||||||
|
a[href^="#fig-"]::before {
|
||||||
|
content: "\201c";
|
||||||
|
}
|
||||||
|
|
||||||
|
a[href^="#fig-"]::after {
|
||||||
|
content: "\201d";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mark external links. */
|
||||||
|
a.external:not(figure > a.external) {
|
||||||
|
filter: brightness(150%);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* List blender.org as internal. */
|
||||||
|
.external[href^="https://www.blender.org"],
|
||||||
|
.external[href^="https://docs.blender.org"],
|
||||||
|
.external[href^="https://projects.blender.org"],
|
||||||
|
.external[href^="https://builder.blender.org"],
|
||||||
|
.external[href^="https://code.blender.org"],
|
||||||
|
.external[href^="https://translate.blender.org"],
|
||||||
|
.external[href^="https://fund.blender.org"],
|
||||||
|
.external[href^="blender_manual_html.zip"],
|
||||||
|
.external[href^="blender_manual_epub.zip"],
|
||||||
|
.external[href^="https://archive.blender.org"] {
|
||||||
|
filter: revert;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ".. container::" lead, block text float around image. */
|
||||||
|
.lead {
|
||||||
|
clear: both;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Start reference admonition. */
|
||||||
|
.admonition.refbox {
|
||||||
|
border-color: rgb(50, 50, 50);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.refbox>.admonition-title {
|
||||||
|
background-color: rgba(50, 50, 50, 0.2);
|
||||||
|
border-color: rgb(50, 50, 50);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.refbox>.admonition-title::before {
|
||||||
|
background-color: var(--color-content-foreground);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 'refbox' field. */
|
||||||
|
.refbox .field-list .field-name,
|
||||||
|
.refbox .field-list .field-body {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.refbox dl dt {
|
||||||
|
font-weight: normal
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End reference admonition. */
|
||||||
|
|
||||||
|
/* Applied on main index:sections. */
|
||||||
|
|
||||||
|
.global-index-toc {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Start section cards. */
|
||||||
|
.toc-cards {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
|
||||||
|
grid-gap: 20px;
|
||||||
|
list-style-type: none;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
border-radius: .3em;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card div.figure,
|
||||||
|
.card figure {
|
||||||
|
margin-bottom: 0;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card img {
|
||||||
|
border-top-left-radius: .3em;
|
||||||
|
border-top-right-radius: .3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card dl {
|
||||||
|
margin-bottom: 10px
|
||||||
|
}
|
||||||
|
|
||||||
|
.card dl dt>a {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card dl dt a em,
|
||||||
|
.card dl dt a span {
|
||||||
|
font-weight: bold;
|
||||||
|
font-style: normal;
|
||||||
|
font-size: 1.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card dl dt {
|
||||||
|
padding: 0 15px 0 !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.card dl dd {
|
||||||
|
padding: 0 15px 5px 15px;
|
||||||
|
font-style: normal;
|
||||||
|
margin: 0;
|
||||||
|
color: var(--color-foreground-secondary);
|
||||||
|
font-size: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
box-shadow: 0 .2rem .5rem rgba(0, 0, 0, .05), 0 0 .0625rem rgba(0, 0, 0, .1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#getting-started .card {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End section cards. */
|
||||||
|
|
||||||
|
/* Start custom toctree. */
|
||||||
|
/* Indent all lines following the first. */
|
||||||
|
.toctree-wrapper * a {
|
||||||
|
display: block;
|
||||||
|
padding-top: 0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toctree-wrapper ul {
|
||||||
|
list-style: none;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Underline provided by nested ul (not li). */
|
||||||
|
.toctree-wrapper * ul {
|
||||||
|
margin-bottom: 1rem !important;
|
||||||
|
border-top: solid var(--color-background-border) 1px;
|
||||||
|
padding-left: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End custom toctree. */
|
||||||
|
|
||||||
|
/* Start footer contribute link */
|
||||||
|
.footer-contribute {
|
||||||
|
display: block;
|
||||||
|
font-size: var(--font-size--small);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-of-page {
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-contribute ul {
|
||||||
|
display: flex;
|
||||||
|
gap: 1.5rem;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
padding-bottom: 1rem
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-contribute li {
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 46em) {
|
||||||
|
.footer-contribute > ul {
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
.footer-contribute {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End footer contribute link */
|
119
build_files/theme/css/version_switch.css
Normal file
119
build_files/theme/css/version_switch.css
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
#versionwrap {
|
||||||
|
margin: 0;
|
||||||
|
display: flex;
|
||||||
|
padding-top: 2px;
|
||||||
|
padding-left: 0;
|
||||||
|
font-size: var(--sidebar-item-font-size);
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
#versionwrap>ul {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#versionwrap>li {
|
||||||
|
display: flex;
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.version-btn {
|
||||||
|
display: inline-block;
|
||||||
|
background-color: var(--color-sidebar-background);
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
padding: 3px 10px;
|
||||||
|
margin: 0 5px 4px;
|
||||||
|
vertical-align: middle;
|
||||||
|
color: var(--color-link);
|
||||||
|
border: solid 1px var(--color-sidebar-background-border);
|
||||||
|
border-radius: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
z-index: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.version-btn-open::after {
|
||||||
|
color: gray;
|
||||||
|
}
|
||||||
|
|
||||||
|
.version-btn:hover,
|
||||||
|
.version-btn:focus {
|
||||||
|
border-color: #525252;
|
||||||
|
}
|
||||||
|
|
||||||
|
.version-btn-open {
|
||||||
|
color: gray;
|
||||||
|
border: solid 1px var(--color-sidebar-background-border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.version-btn.wait {
|
||||||
|
cursor: wait;
|
||||||
|
}
|
||||||
|
|
||||||
|
.version-btn.disabled {
|
||||||
|
cursor: not-allowed;
|
||||||
|
color: dimgray;
|
||||||
|
}
|
||||||
|
|
||||||
|
.version-dialog {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 24px;
|
||||||
|
width: 50%;
|
||||||
|
margin: 0 5px;
|
||||||
|
border-radius: 3px;
|
||||||
|
box-shadow: 0 0 6px #000C;
|
||||||
|
z-index: 999;
|
||||||
|
max-height: calc(100vh - 30px);
|
||||||
|
overflow-x: clip;
|
||||||
|
overflow-y: auto;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.version-title {
|
||||||
|
padding: 5px;
|
||||||
|
color: var(--color-content-foreground);
|
||||||
|
text-align: center;
|
||||||
|
font-size: 102%;
|
||||||
|
font-weight: 700;
|
||||||
|
background-color: var(--color-brand-primary);
|
||||||
|
border-bottom: solid 1.5px var(--color-sidebar-background-border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.version-list {
|
||||||
|
padding-left: 0;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
text-align: center;
|
||||||
|
border: solid 1px var(--color-sidebar-background-border);
|
||||||
|
border-radius: 0 0 3px 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.version-list a,
|
||||||
|
.version-list span,
|
||||||
|
.version-list li {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
font-size: 98%;
|
||||||
|
line-height: 1.15;
|
||||||
|
width: 100%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 4px 0;
|
||||||
|
color: var(--color-sidebar-link-text);
|
||||||
|
}
|
||||||
|
|
||||||
|
.version-list li {
|
||||||
|
background-color: var(--color-sidebar-background);
|
||||||
|
color: var(--color-sidebar-link-text);
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.version-list li:hover,
|
||||||
|
.version-list li a:focus {
|
||||||
|
background-color: var(--color-background-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.version-list li.selected {
|
||||||
|
background: var(--color-sidebar-item-background--current);
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
BIN
build_files/theme/favicon.png
(Stored with Git LFS)
Normal file
BIN
build_files/theme/favicon.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
(function() {//switch: v1.4
|
(function() {//switch: v1.5
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var versionsFileUrl = "https://docs.blender.org/versions.json"
|
var versionsFileUrl = "https://docs.blender.org/versions.json"
|
||||||
@ -9,19 +9,20 @@ var all_langs = {
|
|||||||
"ar": "اَلْعَرَبِيَّةُ",
|
"ar": "اَلْعَرَبِيَّةُ",
|
||||||
"de": "Deutsch",
|
"de": "Deutsch",
|
||||||
"es": "Español",
|
"es": "Español",
|
||||||
"fi": "Suomeksi",
|
"fi": "Suomi",
|
||||||
"fr": "Français",
|
"fr": "Français",
|
||||||
"id": "Bahasa Indonesia",
|
"id": "Bahasa Indonesia",
|
||||||
"it": "Italiano",
|
"it": "Italiano",
|
||||||
"ja": "日本語",
|
"ja": "日本語",
|
||||||
"ko": "한국어",
|
"ko": "한국어",
|
||||||
"nb": "Norsk Bokmål",
|
"nb": "Norsk Bokmål",
|
||||||
|
"nl": "Nederlands",
|
||||||
"pt": "Português",
|
"pt": "Português",
|
||||||
"ru": "Ρусский",
|
"ru": "Ρусский",
|
||||||
"sk": "Slovenčina",
|
"sk": "Slovenčina",
|
||||||
"sl": "Slovenščina",
|
"sl": "Slovenščina",
|
||||||
"sr": "српски",
|
"sr": "српски",
|
||||||
"uk": "Ukraїna",
|
"uk": "Українська",
|
||||||
"vi": "Tiếng Việt",
|
"vi": "Tiếng Việt",
|
||||||
"zh-hans": "中文(简体)",
|
"zh-hans": "中文(简体)",
|
||||||
"zh-hant": "中文(繁體)",
|
"zh-hant": "中文(繁體)",
|
||||||
@ -140,7 +141,14 @@ buildList(v, l) {
|
|||||||
clone = template.firstElementChild.cloneNode(true);
|
clone = template.firstElementChild.cloneNode(true);
|
||||||
const link = clone.querySelector("a");
|
const link = clone.querySelector("a");
|
||||||
link.href = href;
|
link.href = href;
|
||||||
link.innerHTML = title;
|
if (that.type) {
|
||||||
|
link.innerHTML = title;
|
||||||
|
} else {
|
||||||
|
const hint = document.createElement("bdi");
|
||||||
|
hint.innerHTML = title;
|
||||||
|
link.appendChild(hint);
|
||||||
|
}
|
||||||
|
link.setAttribute("lang", !that.type ? ix : "en");
|
||||||
}
|
}
|
||||||
that.list.append(clone);
|
that.list.append(clone);
|
||||||
};
|
};
|
||||||
@ -159,6 +167,7 @@ getNamed(v) {
|
|||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
dialogToggle(speed) {
|
dialogToggle(speed) {
|
||||||
|
speed = window.matchMedia("(prefers-reduced-motion: reduce)").matches ? 0 : speed;
|
||||||
const wasClose = !this.isOpen;
|
const wasClose = !this.isOpen;
|
||||||
const that = this;
|
const that = this;
|
||||||
if(!this.isOpen) {
|
if(!this.isOpen) {
|
@ -1,72 +0,0 @@
|
|||||||
:orphan:
|
|
||||||
|
|
||||||
.. RST versions of the "Get Involved" pages on blender.org related to the documentation project.
|
|
||||||
:: Copy this file into the /manual folder to build it (but watch out not to accidentally committing it).
|
|
||||||
|
|
||||||
################################
|
|
||||||
Documentation -- blender.org
|
|
||||||
################################
|
|
||||||
|
|
||||||
|
|
||||||
.. _Get Involved: https://www.blender.org/get-involved/
|
|
||||||
.. _Documentation: https://www.blender.org/get-involved/documentation/
|
|
||||||
|
|
||||||
***************
|
|
||||||
`Get Involved`_
|
|
||||||
***************
|
|
||||||
|
|
||||||
`Documentation`_
|
|
||||||
================
|
|
||||||
|
|
||||||
A large number of people are helping with the
|
|
||||||
`Blender Manual <https://docs.blender.org/manual/en/dev/>`__
|
|
||||||
to organize and write our complete and freely available end-user documentation.
|
|
||||||
|
|
||||||
Volunteers interested in documentation translations can contact the team as well.
|
|
||||||
|
|
||||||
`Read more » <https://www.blender.org/get-involved/documenters>`__
|
|
||||||
|
|
||||||
|
|
||||||
****************
|
|
||||||
`Documentation`_
|
|
||||||
****************
|
|
||||||
|
|
||||||
About
|
|
||||||
=====
|
|
||||||
|
|
||||||
Blender's official documentation can be found in the online
|
|
||||||
`Blender Manual <https://docs.blender.org/manual/en/dev/>`__.
|
|
||||||
The Blender Manual is written using reStructuredText (RST) and
|
|
||||||
is built with `Sphinx <http://www.sphinx-doc.org/en/stable/>`__.
|
|
||||||
|
|
||||||
This project is run by a small team of volunteers and we would love your contributions!
|
|
||||||
|
|
||||||
|
|
||||||
How to Get Started
|
|
||||||
==================
|
|
||||||
|
|
||||||
#. `Install the manual locally <https://docs.blender.org/manual/en/dev/contribute/install/index.html>`__
|
|
||||||
#. `Build the manual locally <https://docs.blender.org/manual/en/dev/contribute/build/index.html>`__
|
|
||||||
#. Open an issue with your interest in helping
|
|
||||||
|
|
||||||
|
|
||||||
Communication
|
|
||||||
=============
|
|
||||||
|
|
||||||
- `#docs <https://blender.chat/channel/docs>`__ -- Chat with documenters, developers, and users.
|
|
||||||
- `Developer Forum <https://devtalk.blender.org/>`__
|
|
||||||
- `Issue tracker <https://projects.blender.org/blender/documentation>`__ -- Report bugs or
|
|
||||||
find projects you can work on to improve the documentation.
|
|
||||||
|
|
||||||
|
|
||||||
Translations
|
|
||||||
============
|
|
||||||
|
|
||||||
The Blender manual is also being actively translated into a dozen languages.
|
|
||||||
If you would like to help to translate the manual from English to your language follow the above
|
|
||||||
"How to Get Started" guide but simply say you want to help with translations.
|
|
||||||
|
|
||||||
You should also read the following documents:
|
|
||||||
|
|
||||||
- `Translation contributing guide <https://docs.blender.org/manual/en/dev/contribute/translations/contribute.html>`__
|
|
||||||
- `Translation style guide <https://docs.blender.org/manual/en/dev/contribute/translations/style_guide.html>`__
|
|
14
make.bat
14
make.bat
@ -89,38 +89,38 @@ if "%1" == "latexpdf" (
|
|||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "check_syntax" (
|
if "%1" == "check_syntax" (
|
||||||
python tools_rst\rst_check_syntax.py --kbd --long
|
python tools\check_source\check_syntax.py --kbd --long
|
||||||
goto EOF
|
goto EOF
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "checkout_locale" (
|
if "%1" == "checkout_locale" (
|
||||||
python tools_make\checkout_locale.py
|
python build_files\utils\checkout_locale.py
|
||||||
goto EOF
|
goto EOF
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "update_po" (
|
if "%1" == "update_po" (
|
||||||
python tools_maintenance\update_po.py
|
python tools/utils_maintenance\update_po.py
|
||||||
goto EOF
|
goto EOF
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "report_po_progress" (
|
if "%1" == "report_po_progress" (
|
||||||
IF NOT EXIST %cd%\locale GOTO MISSING_LOCALE
|
IF NOT EXIST %cd%\locale GOTO MISSING_LOCALE
|
||||||
python tools_report\report_translation_progress.py locale\%2 --quiet
|
python tools\translations\report_translation_progress.py locale\%2 --quiet
|
||||||
goto EOF
|
goto EOF
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "check_spelling" (
|
if "%1" == "check_spelling" (
|
||||||
python tools_rst\rst_check_spelling.py
|
python tools\check_source\check_spelling.py
|
||||||
goto EOF
|
goto EOF
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "check_structure" (
|
if "%1" == "check_structure" (
|
||||||
python tools_rst\rst_check_images.py
|
python tools\check_source\check_images.py
|
||||||
goto EOF
|
goto EOF
|
||||||
|
|
||||||
if "%1" == "update" (
|
if "%1" == "update" (
|
||||||
python tools_make\make_update.py
|
python build_files\utils\make_update.py
|
||||||
goto EOF
|
goto EOF
|
||||||
|
|
||||||
) else (
|
) else (
|
||||||
|
@ -1,101 +0,0 @@
|
|||||||
|
|
||||||
*************
|
|
||||||
3D Navigation
|
|
||||||
*************
|
|
||||||
|
|
||||||
This custom menu is in part a virtual numpad emulator and a user perspective navigation tool.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click 3D View then 3D Navigation to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Sidebar --> View`.
|
|
||||||
This add-on is split over two panels.
|
|
||||||
|
|
||||||
|
|
||||||
3D Navigation
|
|
||||||
-------------
|
|
||||||
|
|
||||||
.. figure:: /images/addons_3d-view_3d-navigation_panel1.jpg
|
|
||||||
:align: right
|
|
||||||
:width: 220px
|
|
||||||
|
|
||||||
This panel provides some common navigation tools and emulates the numpad shortcuts.
|
|
||||||
|
|
||||||
View Global/Local
|
|
||||||
Switch Global/Local view.
|
|
||||||
View Perspective/Orthographic
|
|
||||||
Switch perspective/orthographic view mode.
|
|
||||||
View Camera
|
|
||||||
View from active camera.
|
|
||||||
|
|
||||||
Align View from
|
|
||||||
Front/Back
|
|
||||||
Align view to front/back.
|
|
||||||
|
|
||||||
Left/Right
|
|
||||||
Align view to left/right.
|
|
||||||
|
|
||||||
Top/Bottom
|
|
||||||
Align view to top/bottom.
|
|
||||||
|
|
||||||
Lock View to Object
|
|
||||||
Select an object to align view, from the list.
|
|
||||||
|
|
||||||
View to Selected
|
|
||||||
Align view on selected object.
|
|
||||||
|
|
||||||
Cursor
|
|
||||||
World Origin
|
|
||||||
Snap cursor to center (scene 0,0,0).
|
|
||||||
View
|
|
||||||
Align view to center (scene 0,0,0).
|
|
||||||
Cursor to Selected
|
|
||||||
Snap cursor to object center (selected).
|
|
||||||
|
|
||||||
|
|
||||||
Pan Orbit Zoom Roll
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
.. figure:: /images/addons_3d-view_3d-navigation_panel2.jpg
|
|
||||||
:align: right
|
|
||||||
:width: 220px
|
|
||||||
|
|
||||||
This panel provides incremental "User Screen View Perspective" navigation in the Sidebar.
|
|
||||||
|
|
||||||
Up
|
|
||||||
Move towards the top of your screen.
|
|
||||||
|
|
||||||
Down
|
|
||||||
Move towards the bottom of your screen.
|
|
||||||
|
|
||||||
Left
|
|
||||||
Move to the users left or left of screen as you view it.
|
|
||||||
|
|
||||||
Right
|
|
||||||
Move to the users right or right of screen as you view it.
|
|
||||||
|
|
||||||
Zoom In/Out
|
|
||||||
Zoom the view in/out.
|
|
||||||
|
|
||||||
Roll Left/Right
|
|
||||||
Roll the view left/right.
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: 3D View
|
|
||||||
:Description: Navigate the 3D Viewport and camera from the Sidebar.
|
|
||||||
:Location: :menuselection:`3D Viewport --> Sidebar --> View tab`
|
|
||||||
:File: space_view3d_3d_navigation.py
|
|
||||||
:Author: Demohero, uriel, meta-androcto
|
|
||||||
:Maintainer: Brendon Murphy (meta-androcto)
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -8,9 +8,4 @@ These add-ons relate to drawing or manipulating the 3D Viewport.
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
3d_navigation.rst
|
|
||||||
math_vis_console.rst
|
|
||||||
measureit.rst
|
|
||||||
precision_drawing_tools/index.rst
|
|
||||||
stored_views.rst
|
|
||||||
vr_scene_inspection.rst
|
vr_scene_inspection.rst
|
||||||
|
@ -1,58 +0,0 @@
|
|||||||
|
|
||||||
****************
|
|
||||||
Math Vis Console
|
|
||||||
****************
|
|
||||||
|
|
||||||
Sometimes when writing Python scripts you stumble on complicated
|
|
||||||
matrix transformations, ray intersections, rotation conversions, mesh modifications, etc.
|
|
||||||
where its useful to view lines, points and matrices in the viewport to better understand the problem.
|
|
||||||
|
|
||||||
Creating mesh data for this purpose isn't difficult but is cumbersome.
|
|
||||||
The purpose of this add-on is to make it as quick and easy as possible.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click 3D View then Math Vis (Console) to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Instructions
|
|
||||||
============
|
|
||||||
|
|
||||||
Math Vis works by displaying Python Console defined mathutils typed variables in the 3D Viewport.
|
|
||||||
|
|
||||||
The following types are supported:
|
|
||||||
|
|
||||||
- Point: ``Vector(...)``
|
|
||||||
- Line: ``[Vector(...), Vector(...), ...]``
|
|
||||||
- Transformation: ``Matrix(...)``
|
|
||||||
- Transformations (without translation): ``Quaternion(...)``/ ``Euler(...)``
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
.. figure:: /images/addons_3d-view_math-vis-console_example.jpg
|
|
||||||
:align: center
|
|
||||||
:width: 680px
|
|
||||||
|
|
||||||
Create a Python Console editor.
|
|
||||||
In the Python Console define a mathutils variable::
|
|
||||||
|
|
||||||
hello_world = Vector((1, 2, 3))
|
|
||||||
|
|
||||||
You should now be able to see this point in the 3D Viewport!
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: 3D View
|
|
||||||
:Description: Display console defined mathutils variables in the 3D Viewport.
|
|
||||||
:Location: :menuselection:`Properties --> Scene --> Python Console Menu`
|
|
||||||
:File: space_view3d_math_vis.py
|
|
||||||
:Author: Campbell Barton
|
|
||||||
:Maintainer: Campbell Barton
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Official
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,67 +0,0 @@
|
|||||||
|
|
||||||
*********
|
|
||||||
MeasureIt
|
|
||||||
*********
|
|
||||||
|
|
||||||
MeasureIt is an add-on designed for displaying measures in the viewport,
|
|
||||||
making the process of design objects with exact measures, easier.
|
|
||||||
These tools are extremely useful for any job that requires exact measurements,
|
|
||||||
including architectural projects, technical design and 3D printing.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click 3D View then MeasureIt to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
.. figure:: /images/addons_3d-view_measureit_example.jpg
|
|
||||||
:align: center
|
|
||||||
:width: 640px
|
|
||||||
|
|
||||||
|
|
||||||
Overview
|
|
||||||
--------
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Sidebar --> View tab`.
|
|
||||||
The MeasureIt Tools panel is described below.
|
|
||||||
|
|
||||||
To view the measures you need to press the *Show* button.
|
|
||||||
Many measure styles appear grayed out in the menu, these are active in Edit Mode.
|
|
||||||
|
|
||||||
- The Mesh Debug sub panel has extra display options.
|
|
||||||
- The Items sub panel appears after adding a measure. This contains the color settings for each measure.
|
|
||||||
- The Configuration sub panel contains the font settings.
|
|
||||||
- The Render sub panel contains the render settings.
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
- Mesh vertex to vertex measure: Length between vertices in the same mesh.
|
|
||||||
- Mesh vertex labeling: Add a label to any mesh vertex.
|
|
||||||
This allows identify easily different areas or objects in the scene.
|
|
||||||
- Object to object: Distance between object origins, vertex to origin or vertex to vertex.
|
|
||||||
- Object to origin: Distance between object origin to scene origin or vertex to scene origin.
|
|
||||||
- Allows work with different scales.
|
|
||||||
- The measures can be used with meshes, empties, lights, and cameras.
|
|
||||||
|
|
||||||
As all measure definitions are saved in the blend-file, you can save the file and
|
|
||||||
the next time you use it, the measures will be ready.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: 3D View
|
|
||||||
:Description: Tools for measuring objects in the 3D Viewport.
|
|
||||||
:Location: :menuselection:`3D Viewport --> Sidebar --> View tab`
|
|
||||||
:File: measureit folder
|
|
||||||
:Author: Antonio Vazquez (antonioya)
|
|
||||||
:Maintainer: Antonio Vazquez (antonioya)
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,100 +0,0 @@
|
|||||||
|
|
||||||
****************
|
|
||||||
Before You Begin
|
|
||||||
****************
|
|
||||||
|
|
||||||
There are a number of principles to be aware of before you begin working with PDT:
|
|
||||||
|
|
||||||
.. _latest-menus: https://github.com/Clockmender/Precision-Drawing-Tools/wiki/98-PDT-Latest-Release-Menus
|
|
||||||
|
|
||||||
Be sure to check out latest-menus_ to see current layouts.
|
|
||||||
|
|
||||||
#. PDT is split into several sections and this list will grow as the add-on develops.
|
|
||||||
#. PDT has a concept of a ``Working Plane`` that applies in all Operations,
|
|
||||||
i.e. those defined in the Design section and some in the Pivot Point section.
|
|
||||||
#. PDT has been designed to work as far as possible in Edit and
|
|
||||||
Object modes with many commands equally applicable to both.
|
|
||||||
#. Certain Operations relating to ``Cursor Placement`` and ``Pivot Point Placement``
|
|
||||||
have been set to work in either Selected, or Relative Modes, these will be explained later.
|
|
||||||
#. PDT can be driven from its own Command Line input for **most** operations.
|
|
||||||
|
|
||||||
The first thing to establish is the ``Working Plane``, here a number of choices are available:
|
|
||||||
|
|
||||||
#. ``Front(X-Z)`` - Uses Global X and Z axes, if you want to work from the Back view,
|
|
||||||
the working plane is also this as the axes remain the same.
|
|
||||||
#. ``Top(X-Y)`` - Uses Global X and Y axes, if you want to work from the Bottom view,
|
|
||||||
the working plane is also this as the axes remain the same.
|
|
||||||
#. ``Right(Y-Z)`` - Uses Global Y and Z axes, if you want to work from the Left view,
|
|
||||||
the working plane is also this as the axes remain the same.
|
|
||||||
#. ``View`` - This uses axes relative to your screen, no matter how the 3D View is rotated,
|
|
||||||
X is always view-horizontal, Y is always view-vertical and Z is always view-depth.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_setup_1.png
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
|
|
||||||
Setting the Working Plane.
|
|
||||||
==========================
|
|
||||||
|
|
||||||
Whatever your ``View`` is set to other than **View**,
|
|
||||||
it does not matter how the view is oriented, inputs are always along global axes.
|
|
||||||
|
|
||||||
The second thing is whether you want Cursor, or Pivot Point locations to be based upon ``Selected``,
|
|
||||||
or ``Current`` values. Set ``Selected`` if you want the Cursor to be placed relative to selected geometry,
|
|
||||||
or ``Current`` if you want it to be placed relative to its current location.
|
|
||||||
For example, moving the cursor in ``Current`` mode by a ``Delta``
|
|
||||||
input of 1,3,2 will move the cursor relative to itself,
|
|
||||||
so it moves this amount every time you activate the command.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_setup_2.png
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
|
|
||||||
Setting the Cursor/Pivot Point Movement Mode.
|
|
||||||
=============================================
|
|
||||||
|
|
||||||
Then you can set the type of Operation you want to undertake,
|
|
||||||
these will be discussed on another page. There are a number of Operations, shown below:
|
|
||||||
|
|
||||||
1) Cursor.
|
|
||||||
2) Pivot Point.
|
|
||||||
3) Move.
|
|
||||||
4) New Vertex.
|
|
||||||
5) Extrude Vertices.
|
|
||||||
6) Split Edges.
|
|
||||||
7) Duplicate Geometry.
|
|
||||||
8) Extrude Geometry.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_setup_3.png
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
|
|
||||||
Setting the Operation Mode.
|
|
||||||
===========================
|
|
||||||
|
|
||||||
Setting the `Operation` mode determines what the buttons below this command actually do,
|
|
||||||
so for example to **move** the ``Cursor`` to ``Absolute`` location, you would select ``Cursor`` operation,
|
|
||||||
set the input values for **X, Y & Z** then click the ``Absolute`` button.
|
|
||||||
|
|
||||||
Below is a table showing which options are available in which Modes, including Edit, or Object Modes in Blender:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_setup_4.png
|
|
||||||
:width: 720px
|
|
||||||
|
|
||||||
Note! Only Edit and Object Modes are supported by PDT at present,
|
|
||||||
Further, only Mesh Objects are supported, not Curves for now.
|
|
||||||
|
|
||||||
Note! From Version 1.1.8, Menu widths will affect how the menus are arranged,
|
|
||||||
with less items per row as the width decreases below a threshold set in the PDT add-on's Preferences.
|
|
||||||
Here are two sample Images:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_op_1.png
|
|
||||||
:width: 250px
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_op_2.png
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
Note! PDT Add-on Preferences now also sets the Parts Library location and Debug mode.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_op_3.png
|
|
||||||
:width: 420px
|
|
@ -1,186 +0,0 @@
|
|||||||
|
|
||||||
****************************************
|
|
||||||
Worked Example - Building A Book Scanner
|
|
||||||
****************************************
|
|
||||||
|
|
||||||
In this page we will show how to make complex parts of this book scanner using PDT.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_1.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
This is considered a typical CAD design and consists of many parts
|
|
||||||
that can be made by extruding a profile to make the 3D mesh.
|
|
||||||
It should be noted that this is a preferred manner to work in the CAD environment,
|
|
||||||
rather than starting with a 3D mesh and carving bits out of it.
|
|
||||||
We will start with a component that has a hole in it so that process is explained properly.
|
|
||||||
|
|
||||||
**Making the End Panels.**
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_2.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
The End Panel in Edit Mode.
|
|
||||||
|
|
||||||
For this we will start with a single vertex object at 0,0,0 (You will need to load the "Extra Objects" Add-on).
|
|
||||||
|
|
||||||
I placed all objects, apart from the wheels at the World Center for ease,
|
|
||||||
so the start point for this component is 0.39,-0.32,-0.3.
|
|
||||||
The first thing to do therefore is move this single vertex in Edit mode to that location.
|
|
||||||
For this there are two choices:
|
|
||||||
|
|
||||||
+ Set Cartesian Coordinates to 0.39,-0.32,-0.3 respectively, set operation to ``Move`` and click ``Delta``.
|
|
||||||
+ **OR** Key gd0.39,-0.32,-0.3 into Command Line.
|
|
||||||
|
|
||||||
Now we need to extrude this vertex 0.64 in Y:
|
|
||||||
|
|
||||||
+ Set Cartesian Coordinates to 0,0.64,0 respectively, set operation to ``Extrude Vertices`` and click ``Delta``.
|
|
||||||
+ **OR** Key vd,0.64, into Command Line.
|
|
||||||
|
|
||||||
Select both vertices and extrude 0.7 in Z:
|
|
||||||
|
|
||||||
+ Set Cartesian Coordinates to 0,0,0.7 respectively, set operation to **Extrude Vertices** and click ``Delta``.
|
|
||||||
+ **OR** Key vd,,0.7 into Command Line.
|
|
||||||
|
|
||||||
Copy leftmost of the new vertices 0,0.065,0.14:
|
|
||||||
|
|
||||||
+ Set Cartesian Coordinates to 0,0.065,0.14 respectively, set operation to ``Duplicate Geometry`` and click ``Delta``.
|
|
||||||
+ **OR** Key dd,0.065,0.14 into Command Line.
|
|
||||||
|
|
||||||
Extrude new vertex -0.04 in Z:
|
|
||||||
|
|
||||||
+ Set Cartesian Coordinates to 0,0,-0.04 respectively, set operation to ``Extrude Vertices`` and click ``Delta``.
|
|
||||||
+ **OR** Key vd,,-0.04 into Command Line.
|
|
||||||
|
|
||||||
You should now have this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_3.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
I have selected two vertices, join these two together with **Join 2 Verts** Tool.
|
|
||||||
|
|
||||||
Select Top Left vertex and extrude it 0.02 in Y:
|
|
||||||
|
|
||||||
+ Set Cartesian Coordinates to 0,0.02,0 respectively, set operation to ``Extrude Vertices`` and click ``Delta``.
|
|
||||||
+ **OR** Key vd,0.02, into Command Line.
|
|
||||||
|
|
||||||
Extrude 0.16 in Z:
|
|
||||||
|
|
||||||
+ Set Cartesian Coordinates to 0,0,0.16 respectively, set operation to ``Extrude Vertices`` and click ``Delta``.
|
|
||||||
+ **OR** Key vd,,0.16 into Command Line.
|
|
||||||
|
|
||||||
You should now have this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_4.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Duplicate the selected vertices to the other side:
|
|
||||||
|
|
||||||
Set 3D Cursor, SHIFT+D, CTRL+M Y - standard Blender commands.
|
|
||||||
|
|
||||||
Join the gaps using ``Join 2 Verts`` and you get this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_5.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Select the vertices shown, they need filleting:
|
|
||||||
|
|
||||||
+ Set ``Radius`` to 0.03, ``Profile`` to 0.5 and ``Segments`` to 6, click ``Fillet``.
|
|
||||||
+ **OR** Key fv0.03,6,0.5 into Command Line.
|
|
||||||
|
|
||||||
This is the result:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_6.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Copy bottom left vertex 0.12 in Y & 0.1 in Z:
|
|
||||||
|
|
||||||
+ Set Cartesian Coordinates to 0,0.12,0.1 respectively, set operation to ``Duplicate Geometry`` and click ``Delta``.
|
|
||||||
+ **OR** Key dd,0.12,0.1 into Command Line.
|
|
||||||
|
|
||||||
Extrude 0.45 in Z:
|
|
||||||
|
|
||||||
+ Set Cartesian Coordinates to 0,0,0.45 respectively, set operation to ``Extrude Geometry`` and click ``Delta``.
|
|
||||||
+ **OR** Key vd,,0.45 into Command Line.
|
|
||||||
|
|
||||||
Extrude 0.15 in Y, 0.31 in Z:
|
|
||||||
|
|
||||||
+ Set Cartesian Coordinates to 0,015,0.31 respectively, set operation to ``Extrude Geometry`` and click ``Delta``.
|
|
||||||
+ **OR** Key vd,0.15,0.31 into Command Line.
|
|
||||||
|
|
||||||
Duplicate these new vertices to the other side:
|
|
||||||
|
|
||||||
Set 3D Cursor, SHIFT+D, CTRL+M Y - standard Blender commands.
|
|
||||||
|
|
||||||
Join the gaps using ``Join 2 Verts`` and you get this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_7.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Select the vertices shown, they need filleting:
|
|
||||||
|
|
||||||
+ Set ``Radius`` to 0.03, ``Profile`` to 0.5 and ``Segments`` to 6, click ``Fillet``.
|
|
||||||
+ **OR** Key fv0.03,6,0.5 into Command Line.
|
|
||||||
|
|
||||||
You should now have this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_8.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Join these two vertices each side using ``Join 2 Verts`` Tool giving this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_9.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Select these vertices and key F - (Blender Face command) to give this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_10.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Switch selection (CTRL+I), select four vertices across joins and make Face again giving this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_11.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Duplicate entire geometry -0.02 in X:
|
|
||||||
|
|
||||||
+ Set Cartesian Coordinates to -0.02,0,0 respectively, set operation to ``Duplicate Geometry`` and click ``Delta``.
|
|
||||||
+ **OR** Key dd-0.02,, into Command Line.
|
|
||||||
|
|
||||||
You should now have this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_12.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Select both outer edge rings and choose ``Edge`` => ``Bridge Edge Loops``,
|
|
||||||
repeat for inner edge loops to get all the faces:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_13.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Shown in Face Mode
|
|
||||||
|
|
||||||
Exit Edit Mode, name object "End-R" and duplicate Object (SHIFT+D), rename this new object "End-L".
|
|
||||||
|
|
||||||
Edit new "End-L" Object and mirror all faces about X Axis.
|
|
||||||
|
|
||||||
+ Set 3D Cursor.
|
|
||||||
+ Select All Geometry.
|
|
||||||
+ Key CTRL+M.
|
|
||||||
+ Key SHIFT+N to normalize faces.
|
|
||||||
|
|
||||||
You should now have two ends like this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_scan_14.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
You should be able to see the advantages of making end profiles,
|
|
||||||
then bridging the edge loops to make an extruded shape.
|
|
||||||
This avoids duplicated geometry and also allows for holes in the object by making faces that split across the hole.
|
|
||||||
I would then add an **Edge Modifier** to the objects to clean up the shading and of course make a suitable material.
|
|
||||||
|
|
||||||
You can also see that we can either use ``PDT Design Functions & Tools``,
|
|
||||||
or use ``PDT Command Line`` to just type in the commands.
|
|
||||||
|
|
||||||
We can use the same principles to make all the other components.
|
|
||||||
|
|
||||||
_To Be Continued..._
|
|
@ -1,198 +0,0 @@
|
|||||||
|
|
||||||
************
|
|
||||||
Command Line
|
|
||||||
************
|
|
||||||
|
|
||||||
This section deals with the PDT Command Line, a system whereby PDT Operations & Tools
|
|
||||||
can be entered as keyed text rather than using the buttons and input boxes.
|
|
||||||
|
|
||||||
The Menu For Command Line
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_command_1.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Here the Cursor has been set with the command **cd-1.5,,**
|
|
||||||
placing the cursor negative 1.5 in X from the selected vertex.
|
|
||||||
|
|
||||||
PDT has a **Command Input**, which activates when you press Return. this takes two letters,
|
|
||||||
followed by numbers separated by commas ",". Valid Primary letters are, can be capitals, or lower case:
|
|
||||||
|
|
||||||
* C = Cursor commands.
|
|
||||||
* D = Duplicate commands
|
|
||||||
* E = Extrude Geometry commands
|
|
||||||
* F = Fillet Commands
|
|
||||||
* G = Grab, or move commands.
|
|
||||||
* N = New Vertex commands.
|
|
||||||
* P = Pivot commands.
|
|
||||||
* S = Split Edges.
|
|
||||||
* V = Extrude Vertices only, not their edges, or faces.
|
|
||||||
|
|
||||||
Valid Secondary letters are, can be capitals, or lower case:
|
|
||||||
|
|
||||||
* A = Absolute, or World coordinates and requires 3 numbers separated by 2 commas,
|
|
||||||
zeros may be omitted, so ***cd2,,1*** is valid.
|
|
||||||
* D = Delta, or incremental coordinates and has the same requirements as A.
|
|
||||||
* I = Direction and requires a distance and an angle, separated by a comma,
|
|
||||||
from View Horizontal, so **ei2,135.6** means extrude geometry 2 units at 135.6 degrees
|
|
||||||
from positive view X axis. Valid Angle range is +-180.
|
|
||||||
* P = Use a percentage value to, for example, split an edge,
|
|
||||||
so **sp30** means split edge at 30% of the way along it.
|
|
||||||
|
|
||||||
|
|
||||||
Principles:
|
|
||||||
===========
|
|
||||||
|
|
||||||
To operate the Command Line, first you must RMB-click in the input box, then type,
|
|
||||||
or amend the command there, then press ``Return`` to activate the command.
|
|
||||||
I will explore ways of capturing commands directly from the keyboard,
|
|
||||||
maybe by using a "trigger" input first.
|
|
||||||
|
|
||||||
For example, key ALT+P first then the command, with a "watcher" routine
|
|
||||||
to send subsequent inputs to the command line, I do not know if this is possible yet.
|
|
||||||
|
|
||||||
|
|
||||||
Operations (First Letter):
|
|
||||||
==========================
|
|
||||||
|
|
||||||
**Cursor** Commands will use the ``Plane`` setting for commands related to distance
|
|
||||||
and angle and also will use the ``Mode`` setting of either Current, or Selected.
|
|
||||||
This setting related to whether incremental cursor changes are relative
|
|
||||||
to the current position of the cursor, or the ``Active`` vertex.
|
|
||||||
|
|
||||||
A command of **cp30** will place the cursor 30% of the way between two selected vertices for example.
|
|
||||||
Error messages will tell you if your command is not a valid option,
|
|
||||||
or if you do not have sufficient vertices/objects selected, or if you do not have sufficient values in your command.
|
|
||||||
For example, **d** options (delta) require three values separated by two commas,
|
|
||||||
**p** options require only one value. Mathematical Expressions are not evaluated in this way.
|
|
||||||
In other cases, all missing values, or invalid values are converted to 0.
|
|
||||||
|
|
||||||
**Pivot Point** Commands, like cursor commands, will use the ``Plane`` setting for commands
|
|
||||||
related to distance and angle and also will use the Mode setting of either Current, or Selected.
|
|
||||||
This setting related to whether incremental cursor changes are relative
|
|
||||||
to the current position of the cursor, or the Active vertex.
|
|
||||||
|
|
||||||
A command of **pi1,135** will place the Pivot Point 1m at 135 degrees from the Active vertex.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_command_6.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
**Grab** commands will move selected objects, or vertices by the values input,
|
|
||||||
so if ``Plane`` is set to ``View`` and the command is **gi1.5,38.75**
|
|
||||||
the selection will be moved a distance of 1.5 at 38.75 degrees to the view's
|
|
||||||
horizontal axis and in line with the views orientation to your screen.
|
|
||||||
|
|
||||||
**New Vertex** commands will place a new vertex as described by the values,
|
|
||||||
so **na1.5,,1.2** will place a new vertex at Absolute (Global if you prefer) X = 1.5, Y = 0 , Z = 1.2.
|
|
||||||
|
|
||||||
**Extrude Vertices** commands will only extrude the selected vertices, not their associated edges, or faces.
|
|
||||||
A command of **vd,3,** will extrude the selected vertices 0 in X, 3 in Y and 0 in Z.
|
|
||||||
|
|
||||||
**Duplicate Geometry** commands will duplicate the selected geometry.
|
|
||||||
A command of **dd,5,** will duplicate the selected geometry 0 in X, 5 in Y and 0 in Z.
|
|
||||||
|
|
||||||
**Extrude Geometry** commands will extrude the selected geometry, edges and faces included.
|
|
||||||
A command of **ed1,3,2** will extrude the selected geometry 1 in X, 3 in Y and 2 in Z.
|
|
||||||
|
|
||||||
**Split** commands can be operated in a number of geometry situations,
|
|
||||||
so for example, if you want to split a Face like this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_command_2.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Image showing the new vertex inserted 25% of the way along the edge using the command **sp25**.
|
|
||||||
|
|
||||||
In this next scenario, we have split an extruded Face, producing an Ngon:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_command_3.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Command was **sd0.2,,** a new edge has been created and topological integrity preserved.
|
|
||||||
|
|
||||||
In all cases the edges are split in two and then new vertex/vertices from these operations
|
|
||||||
are then moved according to the command parameters. If you select such a combination of edges
|
|
||||||
as to make a face, an error message is returned and the operation cancelled as this will,
|
|
||||||
in all likelihood, result in bad topology.
|
|
||||||
|
|
||||||
**Fillet** commands will Fillet, or Bevel a corner, for single vertex corners, as in an edge loops,
|
|
||||||
use the _v_ second letter, for edges, use _e_ second letter. this command requires 3 values;
|
|
||||||
radius, number of segments and profile. Profile should be in range 0 to 1, 0.005 is a _convex_ fillet,
|
|
||||||
0.5 is a _concave_ fillet. So a command of **fv1.5,6,0.5** will fillet vertices to radius 1.5,
|
|
||||||
6 segments, concave fillet.
|
|
||||||
|
|
||||||
|
|
||||||
Note!
|
|
||||||
=====
|
|
||||||
|
|
||||||
Obviously unworkable commands like **da1,3,4** (duplicate geometry to an absolute location,
|
|
||||||
resulting in all duplicate vertices having the same location) will quite reasonably result in an error message.
|
|
||||||
|
|
||||||
|
|
||||||
Maths Mode:
|
|
||||||
===========
|
|
||||||
|
|
||||||
Maths function ("M" primary letter) enable maths calculations to be input into other input boxes in PDT Design,
|
|
||||||
so for example if you want to set the X input to **1.2 * Sine(54)**, that can be done.
|
|
||||||
Additional Second Letters are introduced for this function, namely:
|
|
||||||
|
|
||||||
* X - send output to X Coord.
|
|
||||||
* Y - send output to Y Coord.
|
|
||||||
* Z - send output to Z Coord.
|
|
||||||
* D - send output to Distance.
|
|
||||||
* A - send output to Angle.
|
|
||||||
* P - send output to Percent.
|
|
||||||
* O - Send Output to Maths Out Field.
|
|
||||||
|
|
||||||
So, in the option quoted above, a command of **mx(1.2*sin(radians(54)))**
|
|
||||||
results in the X coord being set to **0.97082**:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_command_4.png
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
Alternatively a command of **md4*sqrt(2)** results in the Distance input being set to **5.65685**:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_command_5.png
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
From Version 1.1.8, Maths Function now can output to the Maths Output field:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_command_7.png
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
Here the command **mosqrt(34)*(2.3**3)** was used, meaning; Maths, Output, Square Root of 34 times 2.3 cubed.
|
|
||||||
This value can be copied by floating your mouse over the field and keying CTRL+C, it can then be pasted anywhere.
|
|
||||||
|
|
||||||
There is also a **Re-Run Last Command** button to submit the last command line input, as shown in the image above.
|
|
||||||
|
|
||||||
|
|
||||||
Command Line Additions for v1.2.0 & above.
|
|
||||||
==========================================
|
|
||||||
|
|
||||||
With the introduction of v1.2.0, more commands have been introduced to the Command Line module, they are:
|
|
||||||
|
|
||||||
**ad2** Does what *Set A/D 2D* button does, ie. measure distance & angle from 2 points.
|
|
||||||
|
|
||||||
**ad3** Does what *Set A/D 3D* button does, ie. measure distance & angle from 3 points.
|
|
||||||
|
|
||||||
**j2V** Does what *Join 2 Verts* button does, i.e. join 2 vertices into an edge.
|
|
||||||
|
|
||||||
**bis** Does what *Bisect* button does, i.e. bisect two intersecting edges.
|
|
||||||
|
|
||||||
**etf** Does what *Edge To Face* button does, i.e. extrude edge to intersecting face.
|
|
||||||
|
|
||||||
**intall** Does what *Intersect All* button does, i.e. break a set of edges where they intersect.
|
|
||||||
|
|
||||||
**tap** Does what *Taper* button does, i.e. taper geometry at a user defined angle and axis set.
|
|
||||||
|
|
||||||
**otc** Does what *Origin To Cursor* button does, i.e. set the object origin to the cursor location.
|
|
||||||
|
|
||||||
Then there are the three special cases of **nml**, **cen** & **int**.
|
|
||||||
These should be preceded by the Operation letter, see Valid First Letters above,
|
|
||||||
so putting the cursor at the intersection of two edges would be done with the command **cint**,
|
|
||||||
creating a new vertex at the normal intersection would be done with the command **vnml**.
|
|
||||||
|
|
||||||
Clicking on any of the buttons in ``PDT Design Operations``, or ``PDT Design Tools``
|
|
||||||
will write the equivalent command line expression into the command line input.
|
|
||||||
So for example, filleting edges at 0.5 radius, 6 segments and 0.05 profile,
|
|
||||||
as set in the inputs & using the *Fillet* button will write **fe0.5,5,0.05** into the command line input.
|
|
||||||
|
|
||||||
Entering a blank expression into the command line will result in **No Action**, i.e. it will be ignored.
|
|
@ -1,251 +0,0 @@
|
|||||||
|
|
||||||
************
|
|
||||||
Design Tools
|
|
||||||
************
|
|
||||||
|
|
||||||
The Menu for PDT Tools:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_7.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
This section of the menu deals with the Tools, which work with their own variables,
|
|
||||||
in some cases, they also use the Working Plane.
|
|
||||||
|
|
||||||
|
|
||||||
Set A/D 2D:
|
|
||||||
===========
|
|
||||||
|
|
||||||
This button is used to measure the angle relative to horizontal in the Working Plane subtended by two vertices,
|
|
||||||
or two objects. You can see a full list of available options in the table on the previous page (Before You Begin)
|
|
||||||
for both Edit and Object modes.. Here the ``Working Plane`` setting is important, because, if set to ``View``,
|
|
||||||
the output will be calculated relative to the views local axes, however the view is oriented,
|
|
||||||
otherwise it works with the global axes for the view.
|
|
||||||
|
|
||||||
Output: Sets the Distance, Angle, X, Y & Z input variables.
|
|
||||||
|
|
||||||
Selection: in Edit Mode select two vertices with your mouse,
|
|
||||||
the Active vertex is considered to be the center of rotation, or fulcrum point.
|
|
||||||
In Object Mode the Active object is similarly considered.
|
|
||||||
|
|
||||||
**Example 1**: Set the Input variables to two vertices in Edit Mode in Front view,
|
|
||||||
set ``Working Plane`` to Front, select the rotational vertex, select the center vertex.
|
|
||||||
The Distance variable is set to the apparent separation fo the two vertices in the front view,
|
|
||||||
the Angle is set to the apparent angle relative to horizontal in the front view, the X, Y & Z
|
|
||||||
inputs are set to the delta offset between the two vertices in the ``view`` axes.
|
|
||||||
|
|
||||||
**Example 2**: Set the Input variables to two objects in Object Mode in Top view,
|
|
||||||
set ``Working Plane`` to Top(X-Y), select the rotational object, select the center object.
|
|
||||||
The Distance variable is set to the apparent separation of the two objects in the top view,
|
|
||||||
the Angle is set to the apparent angle relative to horizontal in the top view, the X, Y & Z
|
|
||||||
inputs are set to the delta offset between the two vertices in the ``view`` axes.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_8.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
Parameters set from two Vertices in Front Working Plane.
|
|
||||||
|
|
||||||
|
|
||||||
Set A/D 3D:
|
|
||||||
===========
|
|
||||||
|
|
||||||
This button is used to measure the angle subtended by three vertices, or three objects.
|
|
||||||
You can see a full list of available options in the table on the previous page (Before You Begin)
|
|
||||||
for both Edit and Object modes. Here the ``Working Plane``
|
|
||||||
setting is irrelevant because the angle is calculated in 3D space.
|
|
||||||
|
|
||||||
Output: Sets the Distance, Angle, X, Y & Z input variables.
|
|
||||||
|
|
||||||
Selection: in Edit Mode select three vertices with your mouse,
|
|
||||||
the Active vertex is considered to be the center of rotation, or fulcrum point.
|
|
||||||
In Object Mode the Active object is similarly considered.
|
|
||||||
|
|
||||||
**Example 1**: Set the Input variables to three vertices in Edit Mode,
|
|
||||||
select the two rotational vertices, select the center vertex.
|
|
||||||
The Distance variable is set to the real separation of the first vertex and center vertex in the front view,
|
|
||||||
the Angle is set to the real angle between the three vertices, X, Y & Z inputs
|
|
||||||
are set to the delta offset between the first and center vertices.
|
|
||||||
|
|
||||||
**Example 2**: Set the Input variables to three objects in Object Mode, select the two rotational objects,
|
|
||||||
select the center object. The Distance variable is set to the real separation of the first vertex
|
|
||||||
and center vertex in the front view, the Angle is set to the real angle between the three vertices,
|
|
||||||
X, Y & Z inputs are set to the delta offset between the first and center objects.
|
|
||||||
|
|
||||||
|
|
||||||
Join 2 Vertices:
|
|
||||||
================
|
|
||||||
|
|
||||||
This button is used to join two disconnected vertices that do not form part of the same face.
|
|
||||||
You can see a full list of available options in the table on the previous page (Before You Begin)
|
|
||||||
for both Edit and Object modes. Here the ``Working Plane`` setting is irrelevant.
|
|
||||||
This Tool works only in Edit Mode.
|
|
||||||
|
|
||||||
Selection: Select two vertices by any method.
|
|
||||||
|
|
||||||
**Example 1**: Join two vertices, select two vertices that do not form part of the same face.
|
|
||||||
If the vertices do form part of the same face you should use the standard Blender ``Join`` command (hotkey j).
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_9.png
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
The two Vertices have been joined to form, in this case, a Closed Loop, Before on the Left, After on the Right.
|
|
||||||
|
|
||||||
|
|
||||||
Origin To Cursor:
|
|
||||||
=================
|
|
||||||
|
|
||||||
This button is used to set the Object Origin to the current Cursor location.
|
|
||||||
You can see a full list of available options in the table on the previous page
|
|
||||||
(Before You Begin) for both Edit and Object modes. Here the ``Working Plane``
|
|
||||||
setting is irrelevant. This Tool works in Edit & Object Modes.
|
|
||||||
|
|
||||||
Selection: None required in Edit Mode, select one object in Object Mode.
|
|
||||||
|
|
||||||
**Example 1**: Set Object Origin to 1,3,2 in Edit Mode, set X, Y & Z inputs to 1,3,2 respectively,
|
|
||||||
set ``Operation`` to Cursor, click ``Absolute`` button to move cursor. Click ``Origin To Cursor`` Tool,
|
|
||||||
Origin is moved, but geometry is not moved from its absolute position in World Space.
|
|
||||||
|
|
||||||
|
|
||||||
Taper:
|
|
||||||
======
|
|
||||||
|
|
||||||
This button is used to set the Object Origin to the current Cursor location.
|
|
||||||
You can see a full list of available options in the table on the previous page
|
|
||||||
(Before You Begin) for both Edit and Object modes. Here the ``Working Plane``
|
|
||||||
setting is irrelevant. This Tool works only in Edit Mode.
|
|
||||||
|
|
||||||
Uses: ``Move/Rot`` Axis Selector.
|
|
||||||
|
|
||||||
Selection: Select vertices to be moved, then select fulcrum vertex with SHIFT+Mouse,
|
|
||||||
active vertex is considered the rotational center.
|
|
||||||
|
|
||||||
**Example 1**: Taper the end of a cube in front view - 25 degrees,
|
|
||||||
set Angle to -25 degrees (25 degrees clockwise), select all vertices to be tapered,
|
|
||||||
SHIFT+Mouse select center of rotation point vertex, set Move/Rot selector to ``RotY,MovX``,
|
|
||||||
set Working Plane to Front(X-Z), click ``Taper``.
|
|
||||||
|
|
||||||
The significance of ``RotY,MovX`` is that the Y axis is used as the rotation axis
|
|
||||||
and vertices will be moved along the X axis, in View ``Working Plane`` Mode,
|
|
||||||
remember these are then ``Local`` axes, not ``Global`` ones.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_10.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
Before, the face is at 90 degrees to horizontal.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_11.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
After the face is now at 65 degrees to horizontal.
|
|
||||||
|
|
||||||
|
|
||||||
Intersect All:
|
|
||||||
==============
|
|
||||||
|
|
||||||
This button is used to cut edges at any point they intersect with other selected edges.
|
|
||||||
You can see a full list of available options in the table on the previous page
|
|
||||||
(Before You Begin) for both Edit and Object modes. Here the ``Working Plane``
|
|
||||||
setting is irrelevant. This Tool works only in Edit Mode.
|
|
||||||
|
|
||||||
Selection: Select a set of Edges by any method.
|
|
||||||
|
|
||||||
**Example 1**: Cut a set of edges at every point where they overlap, or intersect,
|
|
||||||
select required edges, click ``Intersect All`` button.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_12.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
Selected Edges Before.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_13.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
Selected Edges After, some have been removed.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_14.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
Selected Edges After Extrusion.
|
|
||||||
|
|
||||||
|
|
||||||
Bisect:
|
|
||||||
=======
|
|
||||||
|
|
||||||
This button is used to form a Bisecting Edge between two other co-planar edges.
|
|
||||||
You can see a full list of available options in the table on the previous page
|
|
||||||
(Before You Begin) for both Edit and Object modes. Here the ``Working Plane``
|
|
||||||
setting is irrelevant. This Tool works only in Edit Mode.
|
|
||||||
|
|
||||||
Selection: Select two Edges by any method.
|
|
||||||
|
|
||||||
**Example 1**: Bisect two edges, select 2 co-planar edges, click ``Bisector`` button.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_15.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
Bisected Edges, Before on Left, After on Right, you can see both Bisectors have been drawn.
|
|
||||||
|
|
||||||
|
|
||||||
Edge To Face:
|
|
||||||
=============
|
|
||||||
|
|
||||||
This button is used to project an edge to its intersection with a disconnected face.
|
|
||||||
You can see a full list of available options in the table on the previous page
|
|
||||||
(Before You Begin) for both Edit and Object modes. Here the ``Working Plane``
|
|
||||||
setting is irrelevant. This Tool works only in Edit Mode.
|
|
||||||
|
|
||||||
Selection: Select only one edge and one disconnected face.
|
|
||||||
|
|
||||||
The intersection point need to lie within the area of the face.
|
|
||||||
|
|
||||||
**Example 1**: Extend one edge to a disconnected face, select one edge and one face, click ``Edge To Face``.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_16.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
Edge Extended, Before on Left, After on Right.
|
|
||||||
|
|
||||||
|
|
||||||
Fillet:
|
|
||||||
=======
|
|
||||||
|
|
||||||
This button is used to fillet the corners of geometry, either closed edge loops, or edges.
|
|
||||||
You can see a full list of available options in the table on the previous page
|
|
||||||
(Before You Begin) for both Edit and Object modes. Here the ``Working Plane``
|
|
||||||
setting is irrelevant. This Tool works only in Edit Mode.
|
|
||||||
|
|
||||||
Uses: ``Radius``, ``Segments`` & ``Profile`` inputs & ``Use Vertices`` checkbox.
|
|
||||||
|
|
||||||
Selection: Any number of vertices, or edges by any method.
|
|
||||||
|
|
||||||
The Profile settings is the same as for Blender Bevel command, i.e.
|
|
||||||
ranges from 0 to 1, 0.05 is a convex fillet, 0.5 is a concave fillet.
|
|
||||||
|
|
||||||
**Example 1**: Fillet a closed loop of edges at each corner radius 0.5, 6 segments,
|
|
||||||
profile 0.5, select corner vertices to be filleted, set ``Radius`` to 0.5,
|
|
||||||
set ``Segments`` to 6, set Profile to 0.5, check ``Use Vertices``.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_17.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
The image shows two Before and Afters, in the bottom set Use Vertices was checked,
|
|
||||||
in the top set it was not, this is how to fillet edges.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_24.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
Another Before and After, you can see the settings used to produce this.
|
|
||||||
|
|
||||||
Tip! Using an **even** number of segments will result in better topology (no tris)
|
|
||||||
where three bevels meet at 90 degree offsets, for example.
|
|
||||||
|
|
||||||
Note! From version 1.1.8 the Fillet Tool now has an **Intersect** checkbox.
|
|
||||||
When this is activated the toll will accept only two non-connected edges,
|
|
||||||
or four vertices representing two non-connected edges. These two edges and first intersected,
|
|
||||||
then the intersection vertex is filleted. The ``Use Verts``
|
|
||||||
checkbox is ignored in this mode of operation. Should these two edges
|
|
||||||
not intersect in the ``Working Plane``, an error is returned.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_25.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
Two examples of Before on the Left and After on the Right.
|
|
@ -1,60 +0,0 @@
|
|||||||
|
|
||||||
******************
|
|
||||||
Download & Install
|
|
||||||
******************
|
|
||||||
|
|
||||||
Precision Drawing Tools (PDT) now ships with Blender.
|
|
||||||
In this case you need only enable the Add-on in the Add-on Preferences.
|
|
||||||
|
|
||||||
However, the latest releases can be found on our GitHub.
|
|
||||||
|
|
||||||
Downloads should only be taken the from the
|
|
||||||
`official releases page <https://github.com/Clockmender/Precision-Drawing-Tools/releases>`__.
|
|
||||||
|
|
||||||
|
|
||||||
Patches and Commits, that may add new features and/or bug fixes may be downloaded
|
|
||||||
from the Commits to the Master branch, no development code should be used
|
|
||||||
in any Production Environment, unless you accept that it is at your own risk.
|
|
||||||
|
|
||||||
|
|
||||||
Installation
|
|
||||||
============
|
|
||||||
|
|
||||||
Installation should only be carried out in accordance with standard Blender Add-on procedure.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_install.png
|
|
||||||
:width: 420px
|
|
||||||
|
|
||||||
Add-on will be displayed in the "N" (Ui) Panel of the 3D view under its own Tab as shown below:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_ui_menu.png
|
|
||||||
:width: 220px
|
|
||||||
|
|
||||||
Only one PDT menu (Design) is shown as expanded, by default all menus are expanded when the add-on is loaded.
|
|
||||||
|
|
||||||
|
|
||||||
Optional Button Labels, Messages, Descriptions, etc.
|
|
||||||
====================================================
|
|
||||||
|
|
||||||
All Button labels, Input Descriptions & Messages in PDT are stored in the file:
|
|
||||||
``pdt_msg_strings.py`` You may edit this file to reflect any changes you want in button names,
|
|
||||||
etc. but only edit the portion in quotes, do not add any new lines, or delete any lines
|
|
||||||
and do not change any of the ``PDT_`` assignments at the start of each line, for some options,
|
|
||||||
alternatives have been suggested as shown below:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_msg_edit.png
|
|
||||||
:width: 620px
|
|
||||||
|
|
||||||
It is recommended that you save a backup of this file in a safe location
|
|
||||||
on your computer before performing any edits.
|
|
||||||
|
|
||||||
You might also like to translate these into your own language,
|
|
||||||
again only edit the message section in quotes, not the PDT assignments.
|
|
||||||
|
|
||||||
|
|
||||||
Issues
|
|
||||||
======
|
|
||||||
|
|
||||||
Please report any issues, or feature request, etc. using the Issues section of the
|
|
||||||
`PDT Repository <https://github.com/Clockmender/Precision-Drawing-Tools/issues>`__,
|
|
||||||
that way they can be properly tracked, actioned and incorporated into the add-on.
|
|
@ -1,103 +0,0 @@
|
|||||||
|
|
||||||
************
|
|
||||||
PDT Examples
|
|
||||||
************
|
|
||||||
|
|
||||||
Example Models will be shown here, built Exclusively with PDT, Offset Edges and MeasureIt Add-ons.
|
|
||||||
|
|
||||||
This first one may not look too remarkable, except that it is totally accurate to dimensions,
|
|
||||||
not approximately, taken from tracing a reference image.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_examples_1.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
The draft angles on this half-casting are exactly 5 degrees,
|
|
||||||
the length of sides between the radii are exactly to a dimension.
|
|
||||||
All intersect points of faces have been placed accurately using PDT,
|
|
||||||
not guessed from a zoomed in view. All fillets are exactly to a dimension and exactly in the right place.
|
|
||||||
|
|
||||||
Most of the accuracy of this model would be either impossible, or so very complicated,
|
|
||||||
to achieve with Blender on its own. With PDT and Offset Edges,
|
|
||||||
it was quick and easy to achieve this kind of topology, suitable for mechanical models,
|
|
||||||
at a very high level of precision (constrained only by the storage of coordinates in Blender).
|
|
||||||
You can also see the Pivot Point of this model, stored in its Custom Property.
|
|
||||||
|
|
||||||
|
|
||||||
Example 1 Construct a Casting:
|
|
||||||
==============================
|
|
||||||
|
|
||||||
**Stage 1:**
|
|
||||||
|
|
||||||
This example has been executed from the PDT Command Line section.
|
|
||||||
|
|
||||||
* Set Move Mode to ``Selected Entities.``
|
|
||||||
* Place Vertex at 0,0,0 – Command **na,,**
|
|
||||||
* Extrude 20 at 0 degrees – Command **ei20**, Working Plane set to ``Front(X-Z)``
|
|
||||||
* Place Cursor at fillet radius center. – Command **ci22.5,90**
|
|
||||||
* Spin 85 Degrees – Blender Spin -85 degrees
|
|
||||||
* Extrude 50 at 85 degrees – Command **ei50,85**
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_examples_2.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
**Stage 2:**
|
|
||||||
|
|
||||||
* Duplicate first Vertex 150 in X 100 in Z – Command **dd150,,100**
|
|
||||||
* Extrude 100 at 180 degrees – Command **ei100,180**
|
|
||||||
* Intersect Corner – ``Operation`` = ``Move``, All/Active Selected, click ``Intersect``
|
|
||||||
* Extrude 100 in Y – Command – **ei100,90** Working Plane set to ``Top(X-Y)``
|
|
||||||
* Bevel Corner – Blender Command Bevel, 25mm
|
|
||||||
* Offset Edges 2.5 – Offset Edges Extrude Command.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_examples_3.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
**Stage 3:**
|
|
||||||
|
|
||||||
* Spin in Top View – Blender Spin Command, 62.5 degrees
|
|
||||||
* Extrude 47.5 at 27.5 degrees – Command **ei47.5,27.5**
|
|
||||||
* Spin in Top View – Blender Spin Command, 27.5 degrees
|
|
||||||
* Extrude 30 at 0 degrees – Command **ei30**,
|
|
||||||
* Complete highlighted faces using standard Blender techniques to get this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_examples_5.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Then simply extrude the two front face corners level with the cursor
|
|
||||||
in X and then selected vertices to make the faces with F key.
|
|
||||||
|
|
||||||
This model is accurate to dimensions, draft angles and corner radii.
|
|
||||||
All the command line inputs could be replaced by using the ``Operation``
|
|
||||||
options and ``Command`` buttons instead.
|
|
||||||
|
|
||||||
Optionally, to improve topology, one could rationalize the top faces to this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_examples_6.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
It would depend on what we wanted to do ultimately with the top faces, like maybe cut holes in them.
|
|
||||||
|
|
||||||
|
|
||||||
Example 2 - Modify a Hydraulic Cylinder:
|
|
||||||
========================================
|
|
||||||
|
|
||||||
Take this mesh, we have no idea at what angle the mesh lies,
|
|
||||||
since it was drawn to a delta measurement not a directional measurement:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_examples_7.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
We now want to make it longer along the angle at which it lies, by a known amount,
|
|
||||||
so we first use the ``Set A/S 2D`` tool to set the angle:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_examples_8.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
You can see the angle was 9.9935 degrees, we then input the distance we require in the ``Distance`` input box,
|
|
||||||
set ``Operation`` to ``Move`` and click the ``Direction`` command to get this:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_examples_9.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
You can see the selected vertices have been moved exactly 3000mm at exactly 9.9935 degrees.
|
|
||||||
This is one of the main reasons why PDT exists, to do just this type of precise alteration of geometry.
|
|
@ -1,61 +0,0 @@
|
|||||||
|
|
||||||
**************
|
|
||||||
Holes in Faces
|
|
||||||
**************
|
|
||||||
|
|
||||||
This section will look at some alternative ways of dealing with holes in surface.
|
|
||||||
In Blender, holes are generally dealt with by using boolean modifiers,
|
|
||||||
or boolean operations in Edit mode.
|
|
||||||
These result in many quad, or tri faces on what is essentially a flat surface.
|
|
||||||
CAD Designers would traditionally want a flat complex face to be an Ngon,
|
|
||||||
since Sub-Division modifiers would not be used for this type of modeling.
|
|
||||||
|
|
||||||
Alternative methods include using 2D curve surface, where any internal faces are treated as holes.
|
|
||||||
The disadvantage of this system is that to include these in a vertex mesh they must first be converted to meshes,
|
|
||||||
resulting in many tris on the flat face, again causing problems because these cannot be beveled.
|
|
||||||
|
|
||||||
|
|
||||||
PDT Approach to Holes:
|
|
||||||
======================
|
|
||||||
|
|
||||||
In PDT, we have adopted a new approach of cutting the front face into as few Ngons
|
|
||||||
as possible to accommodate holes. This is still not ideal and two other options are being advocated:
|
|
||||||
|
|
||||||
* Allow holes in faces as they are in 2D curve surfaces and CAD software packages.
|
|
||||||
* Introduce "Hybrid" objects that can accommodate 2D curve surfaces and vertex meshes.
|
|
||||||
|
|
||||||
Allowing holes would mean that certain functions, like sculpting would not be possible,
|
|
||||||
so this type of face would be excluded from such functions.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_holes_1.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
You can see the front face is in fact two faces split across the hole.
|
|
||||||
|
|
||||||
The process was to remove the existing front face, draw the hole as a cylinder,
|
|
||||||
then use PDT Join 2 Vertices to make the joining edges between the outer edge and the hole,
|
|
||||||
then making two faces, by selecting edges and using the Blender Face (Hotkey F) command.
|
|
||||||
|
|
||||||
Below is an example of a 2D curve surface, with the settings shown to make it a filled surface:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_holes_2.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
These curve surface can then be placed in front of a mesh object to make a face,
|
|
||||||
but this will require Align tools in awkward rotational angles, something we have not released yet.
|
|
||||||
The proviso on this is that you can never ``Apply`` the rotations used, but that is no hardship.
|
|
||||||
|
|
||||||
Below is what this looks like if converted to a mesh,
|
|
||||||
producing totally unsuitable topology for precision modeling, or even beveling:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_holes_3.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
This object has 146 faces, versus only 3 curves for the donor 2D curve surface.
|
|
||||||
|
|
||||||
Here is another example of a holed surface using PDT techniques:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_holes_4.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
Count the Faces! - 49 holes, 3 faces on the front and 3 on the back.
|
|
@ -1,21 +0,0 @@
|
|||||||
|
|
||||||
*****************************
|
|
||||||
Precision Drawing Tools (PDT)
|
|
||||||
*****************************
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
introduction.rst
|
|
||||||
download.rst
|
|
||||||
begin.rst
|
|
||||||
operations.rst
|
|
||||||
design_tools.rst
|
|
||||||
holes_in_faces.rst
|
|
||||||
view_control.rst
|
|
||||||
command.rst
|
|
||||||
pivot_point.rst
|
|
||||||
library.rst
|
|
||||||
trig_waves.rst
|
|
||||||
examples.rst
|
|
||||||
book_scanner.rst
|
|
@ -1,54 +0,0 @@
|
|||||||
|
|
||||||
************
|
|
||||||
Introduction
|
|
||||||
************
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_main.png
|
|
||||||
:width: 620px
|
|
||||||
|
|
||||||
Objects drawn with PDT and Dimensioned with MeasureIt
|
|
||||||
|
|
||||||
PDT is designed to work with Blender 2.8, and all subsequent builds.
|
|
||||||
There are no versions for earlier versions of Blender.
|
|
||||||
|
|
||||||
The key objective is to make precision modeling easier and more capable
|
|
||||||
in Blender in order to allow Designers of all genres to model accurately.
|
|
||||||
|
|
||||||
|
|
||||||
Interestingly
|
|
||||||
=============
|
|
||||||
|
|
||||||
There is definitely a difference in the way that "CAD Designers" and "Polygon Modelers" work.
|
|
||||||
Polygon Modelers, the traditional Blender users, tend to start off with a basic primitive 3D mesh,
|
|
||||||
like a Cube, or a Cylinder, then start to add Edge Loops to cut it up, to extrude sections to make
|
|
||||||
it more complex, to add "holes" and then work these. They will often use Sub-Division modifiers
|
|
||||||
to make the model more detailed, whereas CAD Designers consider these to largely be unsuitable
|
|
||||||
and reduce accuracy. This means more vertices in the mesh from CAD modeler,
|
|
||||||
but probably about the same after all has been taken into account.
|
|
||||||
|
|
||||||
CAD modelers would virtually never trace off a previous drawing, or photograph to model something,
|
|
||||||
they will always work from quoted dimensions only. To this end think about a drawing
|
|
||||||
at a scale of 50:1 - a line of width 0.5mm is effectively 25mm thick in the real world.
|
|
||||||
Many drawings carry the mantra "Do Not Scale" - this is for a reason,
|
|
||||||
old tradition hand-drawn drawings are not necessarily accurately drawn in the first place!
|
|
||||||
|
|
||||||
Traditional CAD Designers (I am using the term "CAD" for what is considered to be Computer Aided Design,
|
|
||||||
products like SolidWorks, AutoCAD, MicroStation, etc.) tend to make an accurate flat loop,
|
|
||||||
like the front of a bracket, or wall of a building , then extrude, or "loft" this into a 3D mesh.
|
|
||||||
It has long been considered that this approach leads to more accurate models that could,
|
|
||||||
for example, be used in 3D printing.
|
|
||||||
|
|
||||||
PDT aims to introduce this method of working into Blender, for the benefit and inclusion
|
|
||||||
of all genres of CAD Designers and to augment the tools for the Polygon Modeler.
|
|
||||||
It has been developed by a former Mechanical Design Engineer with many years
|
|
||||||
experience in drawing offices, using hand drawing and CAD techniques.
|
|
||||||
|
|
||||||
|
|
||||||
Nomenclature
|
|
||||||
============
|
|
||||||
|
|
||||||
There is also the situation where CAD Designers and Polygon Modelers use different terms,
|
|
||||||
like Absolute versus World coordinates, Delta versus Incremental, Directional versus Polar.
|
|
||||||
Primitives themselves are also named differently, Vertices, Edges & Faces versus Points,
|
|
||||||
Lines & Polygons - PDT takes care of this by providing a file that users can edit
|
|
||||||
to input their own terms, including their own languages.
|
|
@ -1,120 +0,0 @@
|
|||||||
|
|
||||||
*****************
|
|
||||||
PDT Parts Library
|
|
||||||
*****************
|
|
||||||
|
|
||||||
The Menu For Parts library
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_library_1.png
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
This module is in its infancy for releases up to and including 1.1.5 and is an attempt
|
|
||||||
to organize a collection of parts, as objects, in a central repository.
|
|
||||||
This library will consist of Objects, Collections and Materials.
|
|
||||||
For now, these are placed in a holding blend file in Blender's:
|
|
||||||
|
|
||||||
"...../Scripts/Addons/clockworxpdt" folder (the location of the PDT Add-on).
|
|
||||||
|
|
||||||
|
|
||||||
Principles:
|
|
||||||
===========
|
|
||||||
|
|
||||||
The concept is to store parts as either individual objects, or in the case of more complex parts,
|
|
||||||
like an engine assembly for example, as collections. The way Blender handles materials for append,
|
|
||||||
or linked, objects is that if you load an object using Append, it will bring the materials of the object with it.
|
|
||||||
If you append the part many times, you get many copies of the same material – not a situation that is efficient.
|
|
||||||
So the recommendation for this trial system is to leave the materials off the objects and store them
|
|
||||||
either against a "holder" object, or set a **fake user** so the material is always held in the library blend file.
|
|
||||||
Then you can append, or link the material once and assign it to many copies of the appended, or linked object.
|
|
||||||
|
|
||||||
The plan is to expand the system so users can send objects, or collections, or material from their current
|
|
||||||
open blend file to the Library blend file. This will be a further development in a later release,
|
|
||||||
if this is possible. Parts Libraries have been in existence in CAD systems since the 1980’s
|
|
||||||
where they were called "Cells" and had one, or many "Cell Libraries" to store them in, each cell
|
|
||||||
had a user defined origin point that was used to place the part. The process was to put the cursor
|
|
||||||
where you wanted the part, then call it by name and it would be placed with its origin at the cursor location.
|
|
||||||
|
|
||||||
PDT Parts Library uses the same method to store, recall and place parts at the cursor location:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_library_2.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
This shows the Parts Library Menu and some sample parts brought in by either ``Appending``, or ``Linking``.
|
|
||||||
|
|
||||||
|
|
||||||
Parts Library File:
|
|
||||||
===================
|
|
||||||
|
|
||||||
The Parts Libraries can be located wherever you want them on your system. The location of your file,
|
|
||||||
a normal Blender blend file, is set in the PDT Add-on Preference (:menuselection:`Preferences --> Add-ons`):
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_library_4.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
You can either type in the location and name of the file, or click the ``Folder`` icon and use Blender
|
|
||||||
file select tools to navigate to your file. The Selectors in PDT are then automatically updated
|
|
||||||
with your file's objects, collections and materials, subject to any search criteria.
|
|
||||||
this can be changed at any time in your session to access data from another library file.
|
|
||||||
|
|
||||||
|
|
||||||
The Options are:
|
|
||||||
================
|
|
||||||
|
|
||||||
``Append`` – this will append the chosen Object, Collection,
|
|
||||||
or Material from the library into your current blend file.
|
|
||||||
|
|
||||||
``Link`` – this will link the chosen Object, Collection,
|
|
||||||
or Material from the library into your current blend file.
|
|
||||||
|
|
||||||
Whether you are going to work with objects, collections,
|
|
||||||
or materials depends on the setting of the **Selector** next to the Link button.
|
|
||||||
|
|
||||||
The next three **Selectors** will show the ``Objects``, ``Collections`` and ``Materials``
|
|
||||||
in the Library blend file, either all of them, or filtered by the Search input next to each Selector.
|
|
||||||
|
|
||||||
The ``Search`` strings consist of any characters that appear anywhere in the Object’s,
|
|
||||||
Collection’s, or Material’s Name. So searching with ``gear`` in the search box will find,
|
|
||||||
for example, objects named ``25T 20mm gear``, or ``gears – 20mm 25teeth``, etc.
|
|
||||||
|
|
||||||
The principle of operation is therefore:
|
|
||||||
|
|
||||||
* Place the 3D cursor where you want the objects to be located.
|
|
||||||
* Enter any required search criteria, to narrow the list shown in the selector.
|
|
||||||
* Select the type to work with; Objects, Collections, or Materials.
|
|
||||||
* Select the required object, collection, or material.
|
|
||||||
* Click either ``Append``, or ``Link``.
|
|
||||||
|
|
||||||
At the moment, if you bring in a collection, ALL objects in that collection are placed
|
|
||||||
at the cursor location. The purpose of this is to bring in complex models and assume
|
|
||||||
that they will be placed "as one" at the cursor location, this also assumes that
|
|
||||||
they were built as a number of objects with a shared origin in the library.
|
|
||||||
|
|
||||||
The suggestion at this stage that materials can be imported and used on each object
|
|
||||||
to which they are appropriate, it may be that many parts share a common material,
|
|
||||||
in which case, using this approach does not result in many duplicate materials in the blend file.
|
|
||||||
|
|
||||||
The ``Show Library File`` button will show the user in a popup the location of the parts library file,
|
|
||||||
this is also printed to the console, if you are running Blender from a Terminal.
|
|
||||||
This purpose of this is to make it easier to locate the parts library for editing.
|
|
||||||
|
|
||||||
The library file can be opened in Blender and edited like
|
|
||||||
any blend file to add your own objects, collections and materials.
|
|
||||||
|
|
||||||
Here is an example of a series of engines that are used in many different bikes,
|
|
||||||
trikes and three-wheelers, these have been Appended from the library file to
|
|
||||||
a working blend file, then the materials assigned:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_library_3.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Each engine is modeled as a set of individual objects, organized as collections
|
|
||||||
in the library blend file. All individual objects in each collection share a common
|
|
||||||
origin point so they can be placed in the correct relative location.
|
|
||||||
|
|
||||||
An alternative under consideration at this stage would be to store in the parts library,
|
|
||||||
only the unique components of these engines, they share cylinder barrels for example,
|
|
||||||
then append, or link these into a project file and build whichever engine is required.
|
|
||||||
|
|
||||||
The system has been left deliberately fluid at this stage in development,
|
|
||||||
so ideas can be explored and the system refined. it may be obviated
|
|
||||||
by developments in Blender towards better and more capable Asset Management Systems.
|
|
@ -1,124 +0,0 @@
|
|||||||
|
|
||||||
**********
|
|
||||||
Operations
|
|
||||||
**********
|
|
||||||
|
|
||||||
This section will deal with explaining what the various **Operations** do.
|
|
||||||
You can see a full list of available options in the table on the previous page
|
|
||||||
(Before You Begin) for both Edit and Object modes.
|
|
||||||
|
|
||||||
|
|
||||||
Cursor:
|
|
||||||
=======
|
|
||||||
|
|
||||||
This operation is concerned with placing the **Cursor** according to the various operators.
|
|
||||||
it can place the Cursor by ``Absolute`` coordinates, ``Delta`` Coordinates, ``Directional``
|
|
||||||
Coordinates and either relative to its current position or an ``Active`` vertex, or Object.
|
|
||||||
|
|
||||||
|
|
||||||
Pivot Point:
|
|
||||||
============
|
|
||||||
|
|
||||||
This operation is concerned with placing the **Pivot Point** according to the various operators.
|
|
||||||
it can place the Cursor by ``Absolute`` coordinates, ``Delta`` Coordinates, ``Directional``
|
|
||||||
Coordinates and either relative to its current position or an ``Active`` vertex, or Object.
|
|
||||||
|
|
||||||
|
|
||||||
Move:
|
|
||||||
=====
|
|
||||||
|
|
||||||
This operation is concerned with **Moving** Geometry, or Objects according to the various operators.
|
|
||||||
geometry can be moved by ``Absolute`` coordinates, ``Delta`` Coordinates, ``Directional`` Coordinates.
|
|
||||||
in Edit mode, selected geometry is moved, in Object Mode selected Objects are moved.
|
|
||||||
|
|
||||||
**Example 1**: Move selected geometry 0.8 units at 34 degrees in front view, Set Operation to ``Move``,
|
|
||||||
set Working Plane to ``Front(X-Z)``, set Distance to 0.8, set angle to 34, select geometry,
|
|
||||||
click ``Direction`` button.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_18.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
You can see the geometry Before and After the move.
|
|
||||||
|
|
||||||
|
|
||||||
New Vertex:
|
|
||||||
===========
|
|
||||||
|
|
||||||
This operation is concerned with placing a **New Vertex** according to the various operators,
|
|
||||||
the new vertex is set selected so it can then be manipulated.
|
|
||||||
|
|
||||||
**Example 1:** Place a New Vertex and the intersection of two edges, set Operation to ``New Vertex``,
|
|
||||||
set Working Plane to ``Front(X-Z)``, select two edges, click ``Intersect`` button.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_19.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
A new Vertex has been placed at the intersection of the two Edges.
|
|
||||||
|
|
||||||
|
|
||||||
Extrude Vertices:
|
|
||||||
=================
|
|
||||||
|
|
||||||
This operation only **Extrudes** the vertices from selected geometry, so if you select a Face,
|
|
||||||
and use this operation, only the vertices of the face will be extruded.
|
|
||||||
this can also be used to "chase" a single vertex around a path, for example the edge of a complex bracket.
|
|
||||||
|
|
||||||
**Example 1**: Extrude the vertices of a face, set operation to ``Extrude Vertices``,
|
|
||||||
select the face, set some delta offsets, click ``Delta`` button.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_20.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
Only the Vertices from the Face have been extruded as edges.
|
|
||||||
|
|
||||||
|
|
||||||
Split Edges:
|
|
||||||
============
|
|
||||||
|
|
||||||
This operation will **Split** edges according to the operator you use.
|
|
||||||
It will result in the face having one more vertex per operation, so a quad becomes a 5 sided Ngon.
|
|
||||||
This initial split point is halfway along the chosen edge(s). If the system detects that you are
|
|
||||||
going to split connecting edges of a face, which would ruin the topology, an error is given
|
|
||||||
and the operation does not complete.
|
|
||||||
|
|
||||||
**Example 1**: Split the edge of a face at 25% of the way along it, set Operation to ``Split``,
|
|
||||||
set Percent to 25, select one edge, click ``Percent`` button.
|
|
||||||
|
|
||||||
**Example 2**: Split two edges of an extruded prism and move the split 0.8 in X, 0.4 in Z,
|
|
||||||
set Operation to ``Split``, set Working Plane to ``Front(X-Z)``, set X to 0.8 & Z to 0.4,
|
|
||||||
select two edges, click ``Delta`` button.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_21.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
You can see Before and after of the two examples described above.
|
|
||||||
|
|
||||||
|
|
||||||
Duplicate Geometry:
|
|
||||||
===================
|
|
||||||
|
|
||||||
This operation will duplicate geometry according to which operator is chosen.
|
|
||||||
|
|
||||||
**Example 1**: **Duplicate** selected geometry 3 units at 78 degrees in front view,
|
|
||||||
set Operation to ``Duplicate Geometry``, set working plane to ``Front(X-Z)``,
|
|
||||||
set Distance to 3 & Angle to 78, click ``Direction`` button.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_22.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
You can see Before and After states of a Duplication.
|
|
||||||
|
|
||||||
|
|
||||||
Extrude Geometry:
|
|
||||||
=================
|
|
||||||
|
|
||||||
This operation will **Extrude** geometry, not just the vertices
|
|
||||||
as with Extrude Vertex, but faces and edges as well.
|
|
||||||
|
|
||||||
**Example 1**: Extrude selected face 1 in X, 0.5 in Y and 0.6 in Z, set Operation to ``Extrude Geometry``,
|
|
||||||
set Working Plane to ``Front(X-Z)``, set X, Y & Z to 1,0.5,0.6 respectively, click ``Delta`` button.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_design_23.png
|
|
||||||
:width: 400px
|
|
||||||
|
|
||||||
You can see the Top Face has been Extruded in all three axes as one operation.
|
|
@ -1,113 +0,0 @@
|
|||||||
|
|
||||||
***********
|
|
||||||
Pivot Point
|
|
||||||
***********
|
|
||||||
|
|
||||||
The PDT **Pivot Point**, hereafter **PP**, is intended to provide a location
|
|
||||||
for rotating and scaling geometry in Edit Mode Only. It works as an independent
|
|
||||||
location to the 3D Cursor. It can, however, be placed relative to Object Geometry.
|
|
||||||
|
|
||||||
The Menu For Pivot Point
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_pivot_1.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Here the pivot point has been placed relative to the selected vertex.
|
|
||||||
|
|
||||||
|
|
||||||
Operations:
|
|
||||||
===========
|
|
||||||
|
|
||||||
Most operations only work in **Edit** Mode, so these are greyed out if you are in any other mode.
|
|
||||||
|
|
||||||
Starting from the top, the first row is the ``Show Pivot`` button with three inputs alongside.
|
|
||||||
|
|
||||||
To show the PP, click the ``Show`` button, to remove it press ``Hide`` button,
|
|
||||||
Show will change to Hide when PP is displayed.
|
|
||||||
|
|
||||||
You can still use the PP location, whether you can see it, or not.
|
|
||||||
|
|
||||||
The three inputs are; ``Size Factor`` ranging from 0.2 to 2 and will adjust the relative size
|
|
||||||
of the PP, the PP is drawn relative to the 3D View scale. The next is the ``Width`` and this
|
|
||||||
determines how bold the PP arms are ranging from 1 to 5. The last is the ``Alpha``
|
|
||||||
and determines the translucency (Color Alpha) of the PP, values range from 0.2 to 1.
|
|
||||||
|
|
||||||
The next row shows the ``Pivot Location``, values can be entered here,
|
|
||||||
or the boxes may be "scrubbed" and the PP will move as you do so.
|
|
||||||
|
|
||||||
On the next row is ``To Selected``, which locates the PP on a selected set of geometry.
|
|
||||||
The middle button is ``To Cursor``, which locates the PP at the 3D Cursor location.
|
|
||||||
The right button is ``To Origin``, which locates the PP on the selected Object's Origin,
|
|
||||||
you must have a selected Object.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_pivot_2.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Here the PP has been located on the weighted center of the selected face.
|
|
||||||
|
|
||||||
The next row has **Rotate** and **Angle**, To rotate selected geometry about the PP,
|
|
||||||
first set the ``Angle`` and click ``Rotate``. Geometry is rotated about the View Plane
|
|
||||||
(an axis normal to your screen).
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_pivot_3.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Here the selected geometry has been rotated 30 degrees about the PP.
|
|
||||||
|
|
||||||
The next row has ``Scale`` on the left, this button is used to scale the selected geometry
|
|
||||||
about the PP. this uses factors as set in the last row showing X, Y and Z values.
|
|
||||||
the scaling is performed about the ``Global`` Axes. There are many ways in Blender
|
|
||||||
to Scale about different axes, so it was decided not to replicate all this,
|
|
||||||
this is the function I use the most for scaling.
|
|
||||||
|
|
||||||
The button on the right is ``Cursor To Pivot``, it will locate the 3D Cursor to the PP,
|
|
||||||
this is useful if you want to use other Blender techniques for rotating, scaling, etc.
|
|
||||||
but want to use the PP location.
|
|
||||||
|
|
||||||
The PP cannot be used to move geometry, it was decided that there are already
|
|
||||||
sufficient methods of doing this in Blender.
|
|
||||||
|
|
||||||
|
|
||||||
Setting Scales by Two Measures:
|
|
||||||
===============================
|
|
||||||
|
|
||||||
Underneath you will see the ``Scale Distance`` & ``System Distance`` Inputs,
|
|
||||||
``System Distance`` is merely a copy of ``Distance`` from the ``PDT Design`` Section.
|
|
||||||
This can be set by a variety of methods, one of which is to select two vertices
|
|
||||||
and then use the Set A/D 2D Tool, found in PDT Design, or you can just type a value in.
|
|
||||||
|
|
||||||
There are circumstances where you know that a dimension in the model,
|
|
||||||
lets say two vertices measure 14.3 units and that is wrong.
|
|
||||||
You know that either a section, or the whole mesh needs scaling
|
|
||||||
so this dimension becomes 16.2. Instead of you having to work out
|
|
||||||
the scale factor yourself, you can merely type 16.2 into ``Scale Distance``,
|
|
||||||
having set ``System Distance`` to 14.3 and the system will calculate the scales for you,
|
|
||||||
in this case; **1.14085**. Should you only want to scale in one axis, set the other two to 1.
|
|
||||||
|
|
||||||
You would then select the required geometry, set the position of the PP
|
|
||||||
and use the PP ``Scale`` button.
|
|
||||||
|
|
||||||
|
|
||||||
Read & Write PP to Object:
|
|
||||||
==========================
|
|
||||||
|
|
||||||
You can write the PP location to the **Object** using the ``PP Write`` button,
|
|
||||||
these are stored in the form a ``Custom Property``, you will be required to confirm this,
|
|
||||||
clicking OK on the popup accepts this operation, moving your cursor off the confirm dialogue
|
|
||||||
cancels the operation. This facility allows you to store a PP location, easily readable,
|
|
||||||
against each object, this could be, for example, the rotational center of a hydraulic cylinder for example,
|
|
||||||
where you do not want this location to also be the object origin point.
|
|
||||||
|
|
||||||
You can then read back this information to place the PP using the ``PP Read`` button.
|
|
||||||
If the custom property are not there, either because it hasn’t been written,
|
|
||||||
or because you have deleted it, an error is displayed.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_pivot_4.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Confirmation is Required for the Write Operation.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_pivot_5.png
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
This is the custom property stored against the Object.
|
|
@ -1,50 +0,0 @@
|
|||||||
|
|
||||||
*************************
|
|
||||||
PDT Trigonometrical Waves
|
|
||||||
*************************
|
|
||||||
|
|
||||||
The Menu for Trigonometrical Waves
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_trig_1.png
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
This section of PDT is used to generate Trigonometrical Waves in a selected Object.
|
|
||||||
In order to enable the ``Generate`` button, the use must first select
|
|
||||||
an object using the ``Object Selector`` box.
|
|
||||||
|
|
||||||
There are then a number of parameters that need to be set:
|
|
||||||
|
|
||||||
* The ``Working Plane`` - this is just a duplicate display of the main PDT ``Working Plane``.
|
|
||||||
* The ``Wave Form`` - Sine Cosine, or Tangent.
|
|
||||||
* The number of ``Cycles`` - each cycle is 180 degrees, NOT a full circle,
|
|
||||||
so a value of 1 will result in one peak with a sine wave for example.
|
|
||||||
* The ``Cycle Length`` - the length in blend file units of one cycle.
|
|
||||||
* The ``Amplitude`` - the height of the wave.
|
|
||||||
* Whether to ``Empty`` the target object, set to true this will delete all vertices in the target object.
|
|
||||||
* The ``Resolution`` - the number of vertices on one cycle.
|
|
||||||
* If you are generating a ``Tangent`` wave, the maximum amplitude of the wave.
|
|
||||||
Tangent functions range from 0 to infinity over a 90 degree wave,
|
|
||||||
so this limits the extent to which the tangent wave will extend.
|
|
||||||
* The ``Start Location`` - the point at which the first vertex will appear in Global Coordinates.
|
|
||||||
* Whether ``Absolute`` values are required.
|
|
||||||
In this context Absolute means greater than 0, so all peaks will be positive.
|
|
||||||
|
|
||||||
Here is a "Before" image:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_trig_2.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
And here is an "After" image:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_trig_3.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
Here is an example of "Absolute" values using a Sine Wave:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_trig_4.png
|
|
||||||
:width: 450px
|
|
||||||
|
|
||||||
And finally an example of a Tangent Wave limited to a maximum value of 5:
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_trig_5.png
|
|
||||||
:width: 450px
|
|
@ -1,73 +0,0 @@
|
|||||||
|
|
||||||
************
|
|
||||||
View Control
|
|
||||||
************
|
|
||||||
|
|
||||||
The Menu for View Control.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_view_1.png
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
This section deals with the View Control section of PDT, this menu uses its own variables.
|
|
||||||
|
|
||||||
|
|
||||||
Rotate Absolute:
|
|
||||||
================
|
|
||||||
|
|
||||||
This button will rotate the view using absolute rotational values as set in the three inputs underneath.
|
|
||||||
These are X, Y & Z rotations and should be entered as degrees, not radians.
|
|
||||||
A rotation of 0,0,0 is the same as Blender ``Top`` view.
|
|
||||||
|
|
||||||
Uses: ``X Rot``, ``Y Rot`` & ``Z Rot``.
|
|
||||||
|
|
||||||
**Example 1**: Rotate view 25 in X, 17 in Y and 90 in Z, set X Rot,
|
|
||||||
Y Rot & Z Rot to 25, 17 & 90 respectively, click ``Rotate Abs`` button.
|
|
||||||
|
|
||||||
The next row of icons Orbit the view about its horizontal & vertical screen axes,
|
|
||||||
or Roll the view about its normal axis to your screen.
|
|
||||||
All of these 5 options use the ``Angle`` input from this menu.
|
|
||||||
|
|
||||||
|
|
||||||
Orbit Left:
|
|
||||||
===========
|
|
||||||
|
|
||||||
Set Angle, click ``Orbit Left`` icon (Left Arrow), view rotates about its vertical axis.
|
|
||||||
|
|
||||||
|
|
||||||
Orbit Right:
|
|
||||||
============
|
|
||||||
|
|
||||||
Set Angle, click ``Orbit Right`` icon (Right Arrow), view rotates about its vertical axis.
|
|
||||||
|
|
||||||
|
|
||||||
Orbit Up:
|
|
||||||
=========
|
|
||||||
|
|
||||||
Set Angle, click ``Orbit Up`` icon (Up Arrow), view rotates about its horizontal axis.
|
|
||||||
|
|
||||||
|
|
||||||
Orbit Down:
|
|
||||||
===========
|
|
||||||
|
|
||||||
Set Angle, click ``Orbit Down`` icon (Down Arrow), view rotates about its horizontal axis.
|
|
||||||
|
|
||||||
|
|
||||||
Roll View:
|
|
||||||
==========
|
|
||||||
|
|
||||||
Set angle, click ``Roll View`` icon (Roll), view rotates about its normal axis to your screen.
|
|
||||||
|
|
||||||
|
|
||||||
Isometric View:
|
|
||||||
===============
|
|
||||||
|
|
||||||
This button sets the view orientation to what a Draftsman understands as a true Isometric view.
|
|
||||||
This is achieved by rotating a ``Front`` view 45 degrees about its vertical axis, then 35.2644
|
|
||||||
degrees about its horizontal axis. In the system this is achieved using an Absolute View Rotation of:
|
|
||||||
|
|
||||||
**Quaternion(0.8205, 0.4247, -0.1759, -0.3399)**
|
|
||||||
|
|
||||||
.. figure:: /images/addons_pdt_view_2.png
|
|
||||||
:width: 500px
|
|
||||||
|
|
||||||
The Top Plane Axes Appear to be at 30 degrees to the View's Horizontal Axis.
|
|
@ -1,78 +0,0 @@
|
|||||||
|
|
||||||
************
|
|
||||||
Stored Views
|
|
||||||
************
|
|
||||||
|
|
||||||
Stored Views has three modes of operation, depending on which the following are saved or restored.
|
|
||||||
Save stored views to your blend-file to easily have access to saved views later.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click 3D View then Stored Views to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Sidebar --> View tab`.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_3d-view_stored-views_ui.jpg
|
|
||||||
:align: right
|
|
||||||
:width: 220px
|
|
||||||
|
|
||||||
View
|
|
||||||
Save multiple view locations for easy navigation between views.
|
|
||||||
POV
|
|
||||||
Save Point of View --> Perspective and Local modes.
|
|
||||||
|
|
||||||
Camera to View
|
|
||||||
Move the selected camera to current view.
|
|
||||||
New Camera to View
|
|
||||||
Create a new camera to current view.
|
|
||||||
Save Current
|
|
||||||
Save the View or :abbr:`POV (Point Of View)`.
|
|
||||||
|
|
||||||
Camera Selector
|
|
||||||
Tools for camera selection and management.
|
|
||||||
|
|
||||||
Camera
|
|
||||||
Make the camera active.
|
|
||||||
Preview Camera
|
|
||||||
Make the camera active, selected and *Camera to View* in one button.
|
|
||||||
Add Camera Marker
|
|
||||||
Add a camera marker to help animating between cameras.
|
|
||||||
|
|
||||||
|
|
||||||
Instructions
|
|
||||||
============
|
|
||||||
|
|
||||||
- First activate the user interface and storage by pressing *Initialize*.
|
|
||||||
- With the *View* button active, Zoom, move or rotate the camera into a position you like.
|
|
||||||
(Useful setting up camera locations and modeling specific areas of a mesh.)
|
|
||||||
- Or with the *POV* button active, change the user perspective or local views.
|
|
||||||
- Press *Save Current* to create a list of each stored view or point of view.
|
|
||||||
- You can move selected camera or create a new camera to the stored view.
|
|
||||||
(Useful for setting up camera shots to different views.)
|
|
||||||
- The camera selector works in a similar way. Each camera is listed and
|
|
||||||
you can make a camera active by pressing the camera icon.
|
|
||||||
- You can view each camera pressing the screen icon and also add camera markers using the arrow icon.
|
|
||||||
(Useful for setting up camera switching during animations.)
|
|
||||||
|
|
||||||
As all stored definitions are saved in the blend-file, you can save the file and
|
|
||||||
the next time you use it, the stored views or point of view will be ready.
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: 3D View
|
|
||||||
:Description: Save and restore user defined views, :abbr:`POV (Point Of View)` and camera locations.
|
|
||||||
:Location: :menuselection:`3D Viewport --> Sidebar --> View tab`
|
|
||||||
:File: space_view3d_stored_views.py
|
|
||||||
:Author: nfloyd, Francesco Siddi
|
|
||||||
:Maintainer: Brendon Murphy (meta-androcto)
|
|
||||||
:Contributors: ramboblender
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,73 +0,0 @@
|
|||||||
|
|
||||||
*****************
|
|
||||||
Assign Shape Keys
|
|
||||||
*****************
|
|
||||||
|
|
||||||
This add-on lets you assign one or more Bézier curve(s) as shape keys to other curve.
|
|
||||||
Useful for morphing curves and curve based text objects.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Add Curve then Assign Shape Keys to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Edit tab`.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_add-curve_assign-shape-keys_ui.jpg
|
|
||||||
:align: right
|
|
||||||
:width: 220px
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
#. Select the target and shape key Bézier curve objects.
|
|
||||||
#. Make sure the target is the active object; you can do this by
|
|
||||||
:kbd:`Shift-RMB`-clicking the target curve after the other selections are made.
|
|
||||||
#. Go to the *Curve Shape Keys* tab and click *Assign Shape Keys* button.
|
|
||||||
#. Now a copy of the active object curve will be created, which will have the other selected curves as its target.
|
|
||||||
|
|
||||||
If the *Remove Shape Key Objects* option is checked, the selected curve objects will be deleted
|
|
||||||
and only the target is kept.
|
|
||||||
|
|
||||||
There are some options to align the closed (cyclic spline) target and the shape-key curves.
|
|
||||||
Also it's possible to match individual parts from a multipart (multiple splines) of target
|
|
||||||
and shape key curves (e.g. a text object converted into a curve) based on various criteria.
|
|
||||||
|
|
||||||
For smoother transition, you can subdivide the segments of one of the curves in the selection group.
|
|
||||||
|
|
||||||
|
|
||||||
Manual Alignment of Starting Vertices
|
|
||||||
-------------------------------------
|
|
||||||
|
|
||||||
In Edit Mode the *Assign Shape Keys* panel shows a single button -- *Mark Starting Vertices*.
|
|
||||||
When clicked, all the starting vertices of the closed splines (disconnected parts) of
|
|
||||||
the selected curves are indicated by a marking point. Now if you select any vertex,
|
|
||||||
the marker moves to this selected vertex, indicating the new starting vertex.
|
|
||||||
You need to confirm the new positions by pressing :kbd:`Return`.
|
|
||||||
Pressing :kbd:`Esc`, reverts the positions to the earlier order.
|
|
||||||
|
|
||||||
|
|
||||||
Tutorial
|
|
||||||
========
|
|
||||||
|
|
||||||
See this `tutorial video <https://www.youtube.com/watch?v=Ly64vezt0Go>`__
|
|
||||||
on how to activate the add-on along with basic usage.
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Add Curve
|
|
||||||
:Description: Assigns one or more Bézier curves as a shape key for another Bézier curve.
|
|
||||||
:Location: :menuselection:`Sidebar --> Edit tab`
|
|
||||||
:File: curve_assign_shapekey.py
|
|
||||||
:Author: Shrinivas Kulkarni
|
|
||||||
:Maintainer: Shrinivas Kulkarni
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,80 +0,0 @@
|
|||||||
|
|
||||||
*******
|
|
||||||
BTracer
|
|
||||||
*******
|
|
||||||
|
|
||||||
The purpose of this script is to add tools that are similar to C4D Tracer.
|
|
||||||
Btrace provides several ways to trace objects and particles and animate the resulting curve.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Add Curve then BTracer to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Edit tab`.
|
|
||||||
|
|
||||||
The default setting in the interface is Choose Tool, here you pick what trace methods and functions.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_add-curve_btracer_ui.jpg
|
|
||||||
:align: right
|
|
||||||
:width: 220px
|
|
||||||
|
|
||||||
|
|
||||||
Information
|
|
||||||
===========
|
|
||||||
|
|
||||||
The five main tools (Object Trace, Object Connect, Mesh Follow, Particle Trace, Particle Connect)
|
|
||||||
all share common settings for the most part. Each tool creates a curve as the end result.
|
|
||||||
The settings for the curve created can be setup under the *Curves Settings* button.
|
|
||||||
|
|
||||||
The tools have access to a few other features. All of them have access to
|
|
||||||
the grow curve animation tool which animates the curve radius.
|
|
||||||
As well as the Color Blender tool.
|
|
||||||
|
|
||||||
Object Trace
|
|
||||||
Creates a curve by joining points of a mesh in a continuous manner or by all edges.
|
|
||||||
Options to modulate the curves radius or add distortion to mesh before converting.
|
|
||||||
|
|
||||||
Objects Connect
|
|
||||||
Join selected objects with a curve and add hooks to each node.
|
|
||||||
|
|
||||||
Particle Trace
|
|
||||||
Creates a curve from each particle of a system. Keeping particle amount under 250 will make this run faster.
|
|
||||||
|
|
||||||
Particle Connect
|
|
||||||
Connects each particle of a system with a continuous curve.
|
|
||||||
|
|
||||||
Mesh Follow
|
|
||||||
Creates curve from animated mesh object. Following the path of
|
|
||||||
either the vertices, edges or faces, and also the option to follow the object's origin.
|
|
||||||
|
|
||||||
Grow Curve Animation
|
|
||||||
Animate the radius of a curve over time. Can be run alone on a curve object, or run with the tools above.
|
|
||||||
|
|
||||||
F-Curve Noise
|
|
||||||
Quick link to add an F-Curve modifier to an object.
|
|
||||||
|
|
||||||
Color Blender
|
|
||||||
Assign colors, create color palettes and randomize colors.
|
|
||||||
|
|
||||||
Each script has a number of different options which can be used to create some very interesting effects.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Add Curve
|
|
||||||
:Description: Tools for converting/animating objects/particles into curves.
|
|
||||||
:Location: :menuselection:`Sidebar --> Create tab`
|
|
||||||
:File: btrace folder
|
|
||||||
:Author: liero, crazycourier
|
|
||||||
:Contributors: Atom, MacKracken, meta-androcto
|
|
||||||
:Maintainer: Brendon Murphy (meta-androcto)
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,188 +0,0 @@
|
|||||||
|
|
||||||
***********
|
|
||||||
Curve Tools
|
|
||||||
***********
|
|
||||||
|
|
||||||
This add-on provides an extensive set of tools for the manipulating
|
|
||||||
and editing of curves. Several :abbr:`CAD (Computer-Aided Design)` style curve tools are included.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Add Curve then Curve Tools to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
This add-on is split into sub panels with each panel having it's own specific set of tools.
|
|
||||||
|
|
||||||
|
|
||||||
Curve Info
|
|
||||||
----------
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: All Modes
|
|
||||||
:Tool: :menuselection:`Sidebar --> Edit --> Curve Info`
|
|
||||||
|
|
||||||
Curve
|
|
||||||
Print splines, segments and empty splines information to the Info header and Info editor.
|
|
||||||
Spline
|
|
||||||
Print splines information to the Info header and Info editor.
|
|
||||||
Segment
|
|
||||||
Print segments information to the Info header and Info editor.
|
|
||||||
Length
|
|
||||||
Calculate the length of the curve and show in the add-on's panel.
|
|
||||||
|
|
||||||
|
|
||||||
Curve Edit
|
|
||||||
----------
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: All Modes
|
|
||||||
:Tool: :menuselection:`Sidebar --> Edit --> Curve Edit`
|
|
||||||
|
|
||||||
Fillet/Chamfer
|
|
||||||
Round or chamfer Bézier point fillets.
|
|
||||||
Outline
|
|
||||||
Create an outline around a selected curve object.
|
|
||||||
Recursive Offset
|
|
||||||
Create an offset array.
|
|
||||||
Separate Offset/Selected
|
|
||||||
Separate the outline mesh from the original.
|
|
||||||
|
|
||||||
Subdivide
|
|
||||||
Subdivide selection or filleted corners.
|
|
||||||
Multi Subdivide
|
|
||||||
Subdivide with level of details.
|
|
||||||
Split at Vertex
|
|
||||||
Cuts the selected points creating openings.
|
|
||||||
Discretize Curve
|
|
||||||
Disconnect the selected points.
|
|
||||||
Array Splines
|
|
||||||
Create an array of the selected curves in Edit Mode.
|
|
||||||
|
|
||||||
|
|
||||||
Intersect
|
|
||||||
---------
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: All Modes
|
|
||||||
:Tool: :menuselection:`Sidebar --> Edit --> Intersect`
|
|
||||||
|
|
||||||
2D Curve Boolean
|
|
||||||
Boolean selected curves on a 2D plane.
|
|
||||||
Intersect Curves
|
|
||||||
Create an intersection between flat curves on the same plane.
|
|
||||||
|
|
||||||
|
|
||||||
Surfaces
|
|
||||||
--------
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: All Modes
|
|
||||||
:Tool: :menuselection:`Sidebar --> Edit --> Surfaces`
|
|
||||||
|
|
||||||
Birail
|
|
||||||
It creates a surface from a profile and two paths.
|
|
||||||
The order in which you select the curves and its direction is important to make this function properly.
|
|
||||||
Convert Bézier to Surface
|
|
||||||
Convert the selected curve to a NURBS surface.
|
|
||||||
Convert Faces to Bézier
|
|
||||||
Select faces and convert them to Bézier curves.
|
|
||||||
|
|
||||||
|
|
||||||
Loft
|
|
||||||
^^^^
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: All Modes
|
|
||||||
:Tool: :menuselection:`Sidebar --> Edit --> Surfaces --> Loft`
|
|
||||||
|
|
||||||
Loft
|
|
||||||
Loft a mesh object between two Bézier curves.
|
|
||||||
Auto Loft
|
|
||||||
Turn on to store the loft data if you move or edit the curves.
|
|
||||||
Update Auto Loft
|
|
||||||
Press this button to update the new loft mesh position after moving or editing parent curves.
|
|
||||||
|
|
||||||
|
|
||||||
Sanitize
|
|
||||||
--------
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: All Modes
|
|
||||||
:Tool: :menuselection:`Sidebar --> Edit --> Sanitize`
|
|
||||||
|
|
||||||
Set Origin to Spline Start
|
|
||||||
Move the origin of the curve to the first point.
|
|
||||||
Reset Scale
|
|
||||||
Reset the objects scale to (1, 1, 1).
|
|
||||||
|
|
||||||
|
|
||||||
.. rubric:: Cleanup:
|
|
||||||
|
|
||||||
Remove Doubles
|
|
||||||
Remove doubled points.
|
|
||||||
Short Splines
|
|
||||||
Remove selected splines based on a threshold.
|
|
||||||
|
|
||||||
|
|
||||||
.. rubric:: Join Splines:
|
|
||||||
|
|
||||||
Join Neighboring Splines
|
|
||||||
Join selected splines based on a threshold.
|
|
||||||
|
|
||||||
|
|
||||||
Utilities
|
|
||||||
---------
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: All Modes
|
|
||||||
:Tool: :menuselection:`Sidebar --> Edit --> Utilities`
|
|
||||||
|
|
||||||
|
|
||||||
.. rubric:: Curve Resolution:
|
|
||||||
|
|
||||||
Show [ESC]
|
|
||||||
Display the resolution in the interface with a colored overlay.
|
|
||||||
|
|
||||||
|
|
||||||
.. rubric:: Spline Order:
|
|
||||||
|
|
||||||
Show [ESC]
|
|
||||||
Display and arrange the sequence.
|
|
||||||
|
|
||||||
|
|
||||||
Path Finder
|
|
||||||
^^^^^^^^^^^
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: All Modes
|
|
||||||
:Tool: :menuselection:`Sidebar --> Edit --> Utilities --> Path Finder`
|
|
||||||
|
|
||||||
Tools for paths.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Add Curve
|
|
||||||
:Description: Adds functionality for Bézier/NURBS curve/surface modeling.
|
|
||||||
:Location: :menuselection:`Sidebar --> Edit tab`
|
|
||||||
:File: curve_tools folder
|
|
||||||
:Authors: MacKracken, cwolf3d, Alexander Meißner (Lichtso)
|
|
||||||
:Contributors: guy lateur, Alexander Meißner (Lichtso), Dealga McArdle (zeffii), Marvin K. Breuer (MKB)
|
|
||||||
:Maintainer: Vladimir Spivak (cwolf3d)
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,63 +0,0 @@
|
|||||||
|
|
||||||
***********************
|
|
||||||
Add Curve Extra Objects
|
|
||||||
***********************
|
|
||||||
|
|
||||||
This add-on groups many curve object creation add-ons into a single one.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_add-curve_extra-objects_torus.jpg
|
|
||||||
:align: center
|
|
||||||
:width: 640px
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Add Curve then Extra Objects to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Add --> Curve`.
|
|
||||||
|
|
||||||
|
|
||||||
Information
|
|
||||||
===========
|
|
||||||
|
|
||||||
Included curve object add-ons:
|
|
||||||
|
|
||||||
Curve Profiles (Curveaceous Galore) by Jimmy Hazevoet, testscreenings
|
|
||||||
Arc, Arrow, Cogwheel, Cycloid, Flower, Helix, Noise, N-sided, Profile, Rectangle, Splat and Star types.
|
|
||||||
Braid by Jared Forsyth
|
|
||||||
Adds a Braided Knot type curve.
|
|
||||||
Celtic Knot by Adam Newgas
|
|
||||||
Wrap a mesh object in a knotted curve.
|
|
||||||
Curly Curve by Cmomoney
|
|
||||||
Adds a "Flourish" type curve.
|
|
||||||
Simple Curve by Vladimir Spivak (cwolf3d)
|
|
||||||
Point, Line, Distance, Angle, Ellipse, Arc, Sector, Segment,
|
|
||||||
Rectangle, Rhombus, Polygon, Polygon ab, Trapezoid curve types.
|
|
||||||
Spirals by Alejandro Omar Chocano Vasquez
|
|
||||||
Archimedean, Logarithmic, Spherical, Torus curve types.
|
|
||||||
SpiroFit, BounceSpline and Catenary by Antonio Osprite, Liero, Atom, Jimmy Hazevoet
|
|
||||||
Spiral fit curve to mesh, Bounce Spline inside a mesh, Catenary curve between two mesh objects.
|
|
||||||
Torus Knots, by Marius Giurgi (DolphinDream), testscreenings
|
|
||||||
Adds many types of (torus) knots including ten presets.
|
|
||||||
Bevel/Taper Curve, by Cmomoney
|
|
||||||
Adds bevel and/or taper curve to active curve.
|
|
||||||
Surface Objects, by Folkert de Vries
|
|
||||||
Adds a NURBS surface Plane, Cone, Star, Wedge.
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Add Curve
|
|
||||||
:Description: Add multiple extra curve object types.
|
|
||||||
:Location: :menuselection:`3D Viewport --> Add --> Curve`
|
|
||||||
:File: add_curve_extra_objects folder
|
|
||||||
:Author: Multiple Authors
|
|
||||||
:Maintainer: Vladimir Spivak (cwolf3d)
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,17 +0,0 @@
|
|||||||
|
|
||||||
#############
|
|
||||||
Add Curve
|
|
||||||
#############
|
|
||||||
|
|
||||||
These add-ons relate to curve object creation and curve based tools.
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
assign_shape_keys.rst
|
|
||||||
btracer.rst
|
|
||||||
curve_tools.rst
|
|
||||||
extra_objects.rst
|
|
||||||
ivy_gen.rst
|
|
||||||
sapling.rst
|
|
||||||
simplify_curves.rst
|
|
@ -1,63 +0,0 @@
|
|||||||
|
|
||||||
*******
|
|
||||||
Ivy Gen
|
|
||||||
*******
|
|
||||||
|
|
||||||
Based on the wonderful code by Thomas Luft and
|
|
||||||
his original `IvyGen program <http://graphics.uni-konstanz.de/~luft/ivy_generator/>`__.
|
|
||||||
|
|
||||||
Original Blender port by testscreenings, further advances by PKHG and TrumanBlending.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_add-curve_ivy-gen_example.jpg
|
|
||||||
:align: center
|
|
||||||
:width: 640px
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Add Curve then Ivy Gen to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
.. figure:: /images/addons_add-curve_ivy-gen_ui.jpg
|
|
||||||
:align: right
|
|
||||||
:width: 220px
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Create tab`.
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Operator`.
|
|
||||||
|
|
||||||
The Update Ivy operator is separate from the main menu and appears in the 3D Viewport.
|
|
||||||
You can adjust settings in the panel and press the *Update* button to update parameters.
|
|
||||||
|
|
||||||
|
|
||||||
Instructions
|
|
||||||
============
|
|
||||||
|
|
||||||
#. Select the object you want to grow ivy on.
|
|
||||||
#. Enter Edit Mode and select a vertex that you want the ivy to spawn from.
|
|
||||||
#. Snap the cursor to the selected vertex.
|
|
||||||
#. Enter Object Mode and with the object selected:
|
|
||||||
:menuselection:`Sidebar --> Create --> Ivy Generator panel` adjust settings and choose *Add New Ivy*.
|
|
||||||
|
|
||||||
The *Add Default Ivy* operator will use the default parameters during creation.
|
|
||||||
This will generate your initial Ivy Curve and Leaves.
|
|
||||||
From here you can access the *Ivy* menu in the Sidebar.
|
|
||||||
I suggest to make small changes and then press *Update Ivy* in the 3D Viewport operator.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Add Curve
|
|
||||||
:Description: Adds generated ivy to a mesh object starting at the 3D Cursor.
|
|
||||||
:Location: :menuselection:`Sidebar --> Create tab`
|
|
||||||
:File: add_curve_ivygen.py
|
|
||||||
:Author: testscreenings, PKHG, TrumanBlending
|
|
||||||
:Maintainer: Vladimir Spivak (cwolf3d)
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,170 +0,0 @@
|
|||||||
|
|
||||||
****************
|
|
||||||
Sapling Tree Gen
|
|
||||||
****************
|
|
||||||
|
|
||||||
This add-on creates trees. There are many preset tree types to choose from or create your own.
|
|
||||||
The method is presented by Jason Weber & Joseph Penn in their paper "Creation and Rendering of Realistic Trees".
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Add Curve then Sapling Tree Gen to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
.. figure:: /images/addons_add-curve_sapling_example.jpg
|
|
||||||
:align: center
|
|
||||||
:width: 640px
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Add --> Curve` menu.
|
|
||||||
|
|
||||||
|
|
||||||
Instructions
|
|
||||||
============
|
|
||||||
|
|
||||||
Once the tree is created there are eight settings to build your tree.
|
|
||||||
When creating your tree it's often best to use the settings in order until your familiar with them.
|
|
||||||
|
|
||||||
|
|
||||||
Geometry
|
|
||||||
--------
|
|
||||||
|
|
||||||
Bevel
|
|
||||||
This determines whether the curve should be shown with its full thickness or only the underlying curve.
|
|
||||||
Disabled by default to permit rapid feedback on parameter changes.
|
|
||||||
Bevel Resolution
|
|
||||||
Determines how smooth the outline of the beveled curve is.
|
|
||||||
The lower this value, the smaller the number of vertices but
|
|
||||||
the resulting geometry will be coarser.
|
|
||||||
Curve Resolution
|
|
||||||
Changes the smoothness of the curve along its length. This is only relevant if *Handle Type* is set to Auto.
|
|
||||||
|
|
||||||
Handle Type
|
|
||||||
Determines the method of interpolation of the curve between Bézier points.
|
|
||||||
Vector type results in fewer vertices but straight segments.
|
|
||||||
Auto type smooths the segments but requires more expensive geometry.
|
|
||||||
Shape
|
|
||||||
Governs the distribution of branches in order to effect the overall shape of the tree.
|
|
||||||
|
|
||||||
Custom Shape
|
|
||||||
Customize the branch shape along the branch length.
|
|
||||||
|
|
||||||
Secondary Splits
|
|
||||||
Change the style of secondary branches.
|
|
||||||
Branch Distribution
|
|
||||||
Adjust branch distribution towards the top or bottom of the tree.
|
|
||||||
Branch Rings
|
|
||||||
Grow the Branches in Rings.
|
|
||||||
Random Seed
|
|
||||||
Sets the basis on which all random values for the tree are generated.
|
|
||||||
This can be changed to allow different trees with the same basic parameters to be generated.
|
|
||||||
|
|
||||||
Tree Scale:
|
|
||||||
Scale
|
|
||||||
The underlying size of the tree in Blender units.
|
|
||||||
Scale Variation
|
|
||||||
The maximum amount that the scale of the tree can vary (up or down) from the value of *Scale*.
|
|
||||||
Radius Scale
|
|
||||||
The scale of the radius at the base of the tree.
|
|
||||||
Radius Variation
|
|
||||||
The maximum amount that the radius scale of the tree can vary (up or down) from the value of *Radius Scale*.
|
|
||||||
|
|
||||||
Preset:
|
|
||||||
Preset Name
|
|
||||||
The name of the preset to be exported. This will export all current properties of the tree to
|
|
||||||
the Sapling preset folder as a py-file.
|
|
||||||
Export Preset
|
|
||||||
Export all current properties.
|
|
||||||
Load Preset
|
|
||||||
Any presets found in the Sapling preset directory may be imported when selected here.
|
|
||||||
Limit Import
|
|
||||||
This can be used to restrict what geometry is created when a preset is imported.
|
|
||||||
If selected, only two levels of branches and no leaves will be generated.
|
|
||||||
|
|
||||||
|
|
||||||
Branch Radius
|
|
||||||
-------------
|
|
||||||
|
|
||||||
This sub menu contains the settings for the branch radius.
|
|
||||||
You can adjust the bevel and taper of the branches here.
|
|
||||||
|
|
||||||
|
|
||||||
Branch Splitting
|
|
||||||
----------------
|
|
||||||
|
|
||||||
This sub menu contains the settings for branch splitting.
|
|
||||||
You can adjust how the branches form and split here.
|
|
||||||
Settings include levels, height and angle of the split.
|
|
||||||
|
|
||||||
|
|
||||||
Branch Growth
|
|
||||||
-------------
|
|
||||||
|
|
||||||
This sub menu contains the settings for branch growth.
|
|
||||||
You can adjust how the branches grow here.
|
|
||||||
Settings include length, angle and curvature.
|
|
||||||
|
|
||||||
|
|
||||||
Pruning
|
|
||||||
-------
|
|
||||||
|
|
||||||
This sub menu contains the settings for pruning the branches.
|
|
||||||
|
|
||||||
#. Press the *Prune* checkbox and you will see the prune object next to the tree.
|
|
||||||
#. Change the settings to adjust the prune objects shape to form your tree.
|
|
||||||
|
|
||||||
|
|
||||||
Leaves
|
|
||||||
------
|
|
||||||
|
|
||||||
This sub menu contains the settings for leaves.
|
|
||||||
|
|
||||||
#. Press the *Show Leaves* checkbox and you will see leaves on the tree.
|
|
||||||
#. Press the *Make mesh* checkbox if you want to convert the curve to a mesh.
|
|
||||||
|
|
||||||
Settings include shape, object type, rotations and scale.
|
|
||||||
|
|
||||||
|
|
||||||
Armature
|
|
||||||
--------
|
|
||||||
|
|
||||||
This sub menu contains the settings to add an armature to your tree.
|
|
||||||
It's not recommended to use this function on highly complex trees as it may take time to compute.
|
|
||||||
|
|
||||||
#. Turn off leaves and prune if you have them on.
|
|
||||||
#. Press the *Use Armature* checkbox to add the armature to the tree.
|
|
||||||
#. Adjust the armature levels and bone length to your liking.
|
|
||||||
#. Do not pose the bones until you have finished the tree.
|
|
||||||
#. you are now ready to use the next sub menu *Animation*.
|
|
||||||
|
|
||||||
|
|
||||||
Animation
|
|
||||||
---------
|
|
||||||
|
|
||||||
This sub menu contains the settings to animate your tree.
|
|
||||||
It's recommended to finalize all your settings now.
|
|
||||||
|
|
||||||
#. You will need to have an armature already created above.
|
|
||||||
#. Press the *Armature Animation* checkbox to add the animation to the tree.
|
|
||||||
#. Press the *Leaf Animation* checkbox to add the animation to the leaves if you have them.
|
|
||||||
#. Press the *Fast Preview* checkbox to hide the leaves and bevel for fast animation playback in the viewport.
|
|
||||||
|
|
||||||
Settings include speed, wind strength and leaf animation.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Add Curve
|
|
||||||
:Description: Adds a parametric tree.
|
|
||||||
:Location: :menuselection:`3D Viewport --> Add --> Curve --> Sapling Tree Gen`
|
|
||||||
:File: add_curve_sapling folder
|
|
||||||
:Author: Andrew Hale (TrumanBlending), Aaron Butcher, CansecoGPC
|
|
||||||
:Maintainer: To Do
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,47 +0,0 @@
|
|||||||
|
|
||||||
***************
|
|
||||||
Simplify Curves
|
|
||||||
***************
|
|
||||||
|
|
||||||
The Simplify Curves tool works on a single selected curve object.
|
|
||||||
It generates a new curve based on the original one.
|
|
||||||
The higher the *Distance Error* threshold is set the more control points are removed.
|
|
||||||
|
|
||||||
The Simplify F-Curves tool works the same way, but on selected F-Curves.
|
|
||||||
|
|
||||||
*Merge by Distance* tool glues nearby points on a single Bézier curve.
|
|
||||||
In fact it is an analog of the usual *Merge by Distance* on a mesh, but for curves.
|
|
||||||
Unlike the mesh one, it does not connect the points from different parts of the curves,
|
|
||||||
even if they are on the ends of the two curves.
|
|
||||||
To glue such points, you must first connect them with *Make Segment*.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Add Curve then Simplify Curves to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
The *Merge By Distance* and *Curve Simplify* buttons are located in
|
|
||||||
the :menuselection:`3D Viewport --> Curve Context Menu` in curve Edit Mode.
|
|
||||||
|
|
||||||
The *Simplify F-Curves* tool can be accessed by enabling :ref:`Developer Extras <prefs-interface-dev-extras>`
|
|
||||||
and using the :ref:`bpy.ops.wm.search_menu` to search for "Simplify F-Curves" in the Dope Sheet or Graph Editor.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Add Curve
|
|
||||||
:Description: Simplify curves in the 3D Viewport, and Dope Sheet, merge by distance in 3D Viewport.
|
|
||||||
:Location: :menuselection:`3D Viewport --> Add --> Curve --> Curve Simplify`,
|
|
||||||
:menuselection:`Dope Sheet and Graph editors --> Channel --> Simplify F-Curves`
|
|
||||||
:File: curve_simplify.py
|
|
||||||
:Author: testscreenings, Michael Soluyanov
|
|
||||||
:Maintainer: To Do
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,98 +0,0 @@
|
|||||||
|
|
||||||
*************
|
|
||||||
ANT Landscape
|
|
||||||
*************
|
|
||||||
|
|
||||||
This add-on creates landscapes and planets using various noise types. A.N.T. stands for Another Noise Tool.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Add Mesh then A.N.T. Landscape to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
.. figure:: /images/addons_add-mesh_ant-landscape_ui.jpg
|
|
||||||
:align: right
|
|
||||||
:width: 220px
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Add --> Mesh` menu.
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Create` tab.
|
|
||||||
|
|
||||||
|
|
||||||
Instructions
|
|
||||||
============
|
|
||||||
|
|
||||||
After creating your landscape mesh there are three main areas in
|
|
||||||
the :ref:`bpy.ops.screen.redo_last` panel to design your mesh.
|
|
||||||
|
|
||||||
- Main Settings: Object and mesh related settings like size and subdivisions.
|
|
||||||
- Noise Settings: Noise related settings that give shape to your terrain.
|
|
||||||
- Displace Settings: Settings for terrain height and edge falloff.
|
|
||||||
|
|
||||||
|
|
||||||
Landscape Panel
|
|
||||||
---------------
|
|
||||||
|
|
||||||
Landscape
|
|
||||||
Landscape will create the mesh and add several panels and tools to the Sidebar.
|
|
||||||
|
|
||||||
|
|
||||||
Landscape Tools
|
|
||||||
---------------
|
|
||||||
|
|
||||||
Mesh Displace
|
|
||||||
Displace selected mesh vertices along normal or X, Y, Z direction.
|
|
||||||
Weight from Slope
|
|
||||||
Generates a weighted vertex group slope map based on the Z normal value.
|
|
||||||
Landscape Eroder
|
|
||||||
Apply various kinds of erosion to an A.N.T. Landscape grid,
|
|
||||||
also available in the *Weights* menu in Weight Paint Mode.
|
|
||||||
|
|
||||||
|
|
||||||
Landscape Main
|
|
||||||
--------------
|
|
||||||
|
|
||||||
Here we can adjust the main settings and regenerate the mesh.
|
|
||||||
|
|
||||||
Smooth the mesh, Triangulate the mesh, Rename and add materials that you have in your blend-file.
|
|
||||||
|
|
||||||
|
|
||||||
Landscape Noise
|
|
||||||
---------------
|
|
||||||
|
|
||||||
Here we can adjust the noise settings and refresh only those settings.
|
|
||||||
|
|
||||||
There are many settings and noise types that allow you to customize your landscape.
|
|
||||||
|
|
||||||
|
|
||||||
Landscape Displace
|
|
||||||
------------------
|
|
||||||
|
|
||||||
Here we can adjust the displacement settings and refresh only those settings.
|
|
||||||
|
|
||||||
Adjust Height, Falloff and Strata in this section.
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
To Do
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Add Mesh
|
|
||||||
:Description: Another Noise Tool: Landscape, erosion and displace.
|
|
||||||
:Location: :menuselection:`Sidebar --> Create tab`
|
|
||||||
:File: ant_landscape folder
|
|
||||||
:Author: Jimmy Hazevoet
|
|
||||||
:Maintainer: To Do
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,50 +0,0 @@
|
|||||||
|
|
||||||
*********
|
|
||||||
Archimesh
|
|
||||||
*********
|
|
||||||
|
|
||||||
This tool is specially designed to generate architecture elements, like:
|
|
||||||
|
|
||||||
- Rooms
|
|
||||||
- Doors
|
|
||||||
- Windows
|
|
||||||
- Kitchen cabinets
|
|
||||||
- Shelves
|
|
||||||
- Columns
|
|
||||||
- Stairs
|
|
||||||
- Tile roofs
|
|
||||||
- Books
|
|
||||||
- Lamps
|
|
||||||
- Venetian blinds
|
|
||||||
- Roller curtain
|
|
||||||
- Japanese curtains
|
|
||||||
|
|
||||||
The original video documentation can be found here:
|
|
||||||
`Video Playlist <https://www.youtube.com/playlist?list=PLQAfj95MdhTJ7zifNb5ab-n-TI0GmKwWQ>`__.
|
|
||||||
Note that the videos were created for Blender 2.7 series but are still a valid resource.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Add Mesh then Archimesh to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Create` tab.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Add Mesh
|
|
||||||
:Description: Generate rooms, doors, windows and architecture objects.
|
|
||||||
:Location: :menuselection:`Sidebar --> Create tab`
|
|
||||||
:File: archimesh folder
|
|
||||||
:Author: Antonio Vazquez (antonioya)
|
|
||||||
:Maintainer: Antonio Vazquez (antonioya)
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,42 +0,0 @@
|
|||||||
|
|
||||||
************
|
|
||||||
Bolt Factory
|
|
||||||
************
|
|
||||||
|
|
||||||
This add-on creates bolts and nuts with options for bolt/nut, bit type and head type.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_add-mesh_boltfactory_example.jpg
|
|
||||||
:align: center
|
|
||||||
:width: 640px
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Add Mesh then BoltFactory to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Add --> Mesh` menu.
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
To Do
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Add Mesh
|
|
||||||
:Description: Add a bolt or nut.
|
|
||||||
:Location: :menuselection:`3D Viewport --> Add --> Bolt`
|
|
||||||
:File: add_mesh_BoltFactory folder
|
|
||||||
:Author: Aaron Keith
|
|
||||||
:Maintainer: To Do
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,99 +0,0 @@
|
|||||||
|
|
||||||
***************
|
|
||||||
Discombobulator
|
|
||||||
***************
|
|
||||||
|
|
||||||
This add-on creates a greeble object based on selected faces.
|
|
||||||
It quickly creates science fiction style panels across your mesh.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Add Mesh then Discombobulator to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
.. figure:: /images/addons_add-mesh_discombobulator_ui.jpg
|
|
||||||
:align: right
|
|
||||||
:width: 310px
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Add --> Mesh` menu.
|
|
||||||
|
|
||||||
Discombobulator works in mesh Object Mode and mesh Edit Mode.
|
|
||||||
|
|
||||||
|
|
||||||
Instructions
|
|
||||||
============
|
|
||||||
|
|
||||||
#. Select the quad faces you want to add greebles to.
|
|
||||||
#. :menuselection:`3D Viewport --> Add --> Mesh --> Discombobulator`.
|
|
||||||
#. Now you will see the interface but nothing happens to the mesh.
|
|
||||||
#. It's useful at this point to read the *Usage Information* at the top of the panel.
|
|
||||||
#. With the default settings press *OK* and you will see a new mesh object created that has raised areas.
|
|
||||||
#. Let's look at the settings below.
|
|
||||||
|
|
||||||
|
|
||||||
Protrusions Settings
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
Make Protrusions
|
|
||||||
This checkbox turns on the functions for protrusions.
|
|
||||||
If you turn it off, nothing will happen when you run the script.
|
|
||||||
You may want to turn Protrusions off if you are using only the Doodads function described further below.
|
|
||||||
|
|
||||||
Min/Max Height
|
|
||||||
Adjust the height of the protrusions, you can use negative and positive values.
|
|
||||||
The negative values will create the protrusions on the opposite side of the selected face(s).
|
|
||||||
|
|
||||||
Min/Max Taper
|
|
||||||
Adjust the taper of the protrusions. This will affect the pointiness of the protrusions.
|
|
||||||
|
|
||||||
1, 2, 3, 4
|
|
||||||
These checkboxes provide options for the subdivision of the faces or the amount of protrusions per face.
|
|
||||||
Based on random, if you have all selected, each face will have either 1, 2, 3 or 4 protrusions.
|
|
||||||
Use only one or any combination and the faces will only have your selected value(s).
|
|
||||||
|
|
||||||
Repeat Protrusions
|
|
||||||
This button creates extra levels of protrusions built on top of the first set of protrusions.
|
|
||||||
It's important not to set this too high as it may take time to compute.
|
|
||||||
Note also that repeating protrusions is based on face normals and
|
|
||||||
will create protrusions on all faces created in the previous iteration.
|
|
||||||
|
|
||||||
|
|
||||||
Doodads Settings
|
|
||||||
----------------
|
|
||||||
|
|
||||||
This checkbox allows you to use your own mesh object and have it applied on top of the protrusions.
|
|
||||||
|
|
||||||
Doodads can be a little tricky to set up:
|
|
||||||
|
|
||||||
#. Select the object(s) you want to use as a doodad.
|
|
||||||
#. Run Discombobulator and press *Pick Doodad*.
|
|
||||||
#. Select your mesh to scatter doodads on and run Discombobulator.
|
|
||||||
|
|
||||||
|
|
||||||
Materials Settings
|
|
||||||
------------------
|
|
||||||
|
|
||||||
These settings allow you to add materials to the sides and tops of the protrusions.
|
|
||||||
|
|
||||||
#. It's best to set up your materials first. Add two different materials to your mesh (two materials slots).
|
|
||||||
#. Number 0 will be the first slot in your materials, number 1 will be the second slot.
|
|
||||||
#. Run Discombobulator and you can pick the material for the top or sides.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Add Mesh
|
|
||||||
:Description: Add Greeble type effect to a mesh.
|
|
||||||
:Location: :menuselection:`3D Viewport --> Add --> Mesh`
|
|
||||||
:File: add_mesh_discombobulator folder
|
|
||||||
:Author: Evan J. Rosky (syrux)
|
|
||||||
:Maintainer: To Do
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,165 +0,0 @@
|
|||||||
|
|
||||||
**************
|
|
||||||
Geodesic Domes
|
|
||||||
**************
|
|
||||||
|
|
||||||
Original introduction from Andy Houston (Blender 2.4 series)
|
|
||||||
|
|
||||||
- Geodesic spheres based on icosahedrons, octahedrons and tetrahedrons.
|
|
||||||
- Triangular, hexagonal and hex/tri combo face options.
|
|
||||||
- A function that turns the current shape into its geometric dual (sort of).
|
|
||||||
- Grid, Cylinder, Parabola, Torus and Ball primitives.
|
|
||||||
- Hubs and Struts. Fill out those edges and vertices with your custom, decorative meshes.
|
|
||||||
- Superformula deforming. Create rounded triangles, wobbly shapes, etc.
|
|
||||||
|
|
||||||
Introduction by Brendon Murphy (Blender 2.6/7 series)
|
|
||||||
|
|
||||||
- This script can be used to create geodesic objects, not limited to domes or spheres.
|
|
||||||
- Each mesh type created has it's own set of editable parameters.
|
|
||||||
- By editing the parameters, you can create many simple or complex mesh shapes.
|
|
||||||
- Create an equal-sided pyramid, a soccer ball, a wine glass and more.
|
|
||||||
- Limited only by your imagination (and some cool math limitations).
|
|
||||||
- Create complex mesh deformations with the superformula parameters.
|
|
||||||
- In the next section we will cover the menu types and how to use the parameters to "design" your mesh.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Add Mesh then Geodesic Domes to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Instructions
|
|
||||||
============
|
|
||||||
|
|
||||||
Main
|
|
||||||
The *Main* menu is where you will do most of your work.
|
|
||||||
The geodesic default triangle will be shown in the 3D Viewport and
|
|
||||||
the Object Creation parameters can be accessed here.
|
|
||||||
Please note: I find it's easier to use the Object Creation parameters first before moving on to
|
|
||||||
Faces, Struts and Hubs, these will be explained in the sections below.
|
|
||||||
|
|
||||||
For now, let's look at the Object Types and their parameters:
|
|
||||||
|
|
||||||
Objects
|
|
||||||
There are six Object types you can create by default.
|
|
||||||
Using the parameters you can build upon these objects to create more object types.
|
|
||||||
Object Types have unique parameter sets and share the Superformula parameters (described below).
|
|
||||||
|
|
||||||
|
|
||||||
Geodesic Object Class Types
|
|
||||||
===========================
|
|
||||||
|
|
||||||
Geodesic
|
|
||||||
Please note, the *Frequency* parameters have a high impact on object creation.
|
|
||||||
To create a Geodesic Dome you must increase the *Frequency* or the default Triangle.
|
|
||||||
|
|
||||||
Subdivide Basic/Triacon
|
|
||||||
Class 1 is the "equilateral triangle".
|
|
||||||
Class 2 is the "cube".
|
|
||||||
|
|
||||||
Hedron
|
|
||||||
Choose between Tetrahedron, Octahedron, Icosahedron.
|
|
||||||
|
|
||||||
Point
|
|
||||||
Point (vertex), edge or face pointing upwards.
|
|
||||||
|
|
||||||
Shape
|
|
||||||
Choose between tri, hex or star face types.
|
|
||||||
|
|
||||||
Round
|
|
||||||
Choose between spherical or flat. (May not work for all object types.)
|
|
||||||
|
|
||||||
|
|
||||||
Geodesic Object Parameters
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
Frequency
|
|
||||||
Subdivide base triangles.
|
|
||||||
|
|
||||||
Radius
|
|
||||||
Overall radius.
|
|
||||||
|
|
||||||
Eccentricity
|
|
||||||
Scaling on the X/Y axis.
|
|
||||||
|
|
||||||
Squish
|
|
||||||
Scaling on the Z axis.
|
|
||||||
|
|
||||||
Square (X/Y)
|
|
||||||
Superellipse action in X/Y.
|
|
||||||
|
|
||||||
Square (Z)
|
|
||||||
Superellipse action in Z.
|
|
||||||
|
|
||||||
Rotate (X/Y)
|
|
||||||
Rotate superellipse action in X/Y.
|
|
||||||
|
|
||||||
Rotate (Z)
|
|
||||||
Rotate superellipse action in Z.
|
|
||||||
|
|
||||||
Dual
|
|
||||||
Faces become vertices, vertices become faces, edges flip.
|
|
||||||
|
|
||||||
|
|
||||||
Geodesic Object Types
|
|
||||||
=====================
|
|
||||||
|
|
||||||
There are six Object types you can create.
|
|
||||||
Each type has it's own set of parameters.
|
|
||||||
As you can see most menu items are self explanatory.
|
|
||||||
The tooltips will give you further information on individual parameters.
|
|
||||||
|
|
||||||
Gap
|
|
||||||
Shrink faces in direction.
|
|
||||||
Add or remove rows of faces based on height (Z) or (X/Y).
|
|
||||||
|
|
||||||
Phase
|
|
||||||
Rotate around a pivot.
|
|
||||||
Useful for rotating deformation or use with *Gap*.
|
|
||||||
|
|
||||||
|
|
||||||
Import Your Mesh
|
|
||||||
================
|
|
||||||
|
|
||||||
You can import your own mesh into Geodesic Domes for use within the script.
|
|
||||||
This is limited to the Faces, Struts and Hubs menus.
|
|
||||||
|
|
||||||
|
|
||||||
Faces
|
|
||||||
=====
|
|
||||||
|
|
||||||
This Section adds extrusions and edits face structures on a mesh.
|
|
||||||
|
|
||||||
|
|
||||||
Struts
|
|
||||||
======
|
|
||||||
|
|
||||||
This section allows you to extrude an object along the edges of a mesh.
|
|
||||||
|
|
||||||
|
|
||||||
Hubs
|
|
||||||
====
|
|
||||||
|
|
||||||
This section allows you to place an object at the vertex on a mesh.
|
|
||||||
|
|
||||||
|
|
||||||
Superformula Menu
|
|
||||||
=================
|
|
||||||
|
|
||||||
The superformula settings add a variety of settings such as pinching, twisting, inflate and
|
|
||||||
more complex edit types.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Add Mesh
|
|
||||||
:Description: Create Geodesic object types.
|
|
||||||
:Location: :menuselection:`3D Viewport --> Add --> Mesh`
|
|
||||||
:File: add_mesh_geodesic_domes folder
|
|
||||||
:Author: Andy Housten
|
|
||||||
:Maintainer: To Do
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,16 +0,0 @@
|
|||||||
|
|
||||||
############
|
|
||||||
Add Mesh
|
|
||||||
############
|
|
||||||
|
|
||||||
These add-ons relate to Mesh object creation.
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
ant_landscape.rst
|
|
||||||
archimesh.rst
|
|
||||||
boltfactory.rst
|
|
||||||
discombobulator.rst
|
|
||||||
geodesic_domes.rst
|
|
||||||
mesh_extra_objects.rst
|
|
@ -1,77 +0,0 @@
|
|||||||
|
|
||||||
**********************
|
|
||||||
Add Mesh Extra Objects
|
|
||||||
**********************
|
|
||||||
|
|
||||||
This add-on groups many mesh object creation add-ons into a single one.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Add Mesh then Extra Objects to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Add --> Mesh menu`.
|
|
||||||
|
|
||||||
|
|
||||||
Information
|
|
||||||
===========
|
|
||||||
|
|
||||||
Included mesh object add-ons:
|
|
||||||
|
|
||||||
Parent to Empty by Liero
|
|
||||||
Parent the selected mesh to an empty object type.
|
|
||||||
3D Function Surface by Buerbaum Martin (Pontiac), Elod Csirmaz
|
|
||||||
Create objects with XYZ math functions. Includes several presets by elfnor.
|
|
||||||
Beam Builder by revolt_randy, Jambay
|
|
||||||
Create five types of beams.
|
|
||||||
Gears by Michel J. Anders (varkenvarken)
|
|
||||||
Create gear and worm type mesh.
|
|
||||||
Gemstones by Pontiac, Fourmadmen, Dreampainter, Dominic Kroper, (dommetysk)
|
|
||||||
Create three types of diamond shapes.
|
|
||||||
Honeycomb by Kayo Phoenix
|
|
||||||
Create a honeycomb patterned mesh.
|
|
||||||
Menger Sponge by sugiany
|
|
||||||
Create iterated Menger sponges.
|
|
||||||
Pipe Joints by Buerbaum Martin (Pontiac)
|
|
||||||
Create angled and crossed pipes.
|
|
||||||
Step Pyramid by Phil Cote (cotejrp1)
|
|
||||||
Create a step pyramid with variable settings.
|
|
||||||
Round Cube by Alain Ducharme (phymec)
|
|
||||||
Create a quad mesh sphere with several presets.
|
|
||||||
Regular Solid by DreamPainter
|
|
||||||
Create polyhedron based objects.
|
|
||||||
Star by Fourmadmen
|
|
||||||
Create a simple star shape.
|
|
||||||
Supertoroid by DreamPainter
|
|
||||||
Create a torus object with new parameters for boxed shape and more.
|
|
||||||
Teapot by Anthony D'Agostino
|
|
||||||
Traditional style mesh teapot and a secondary spoon object.
|
|
||||||
Torus Knot by Anthony D'Agostino
|
|
||||||
A simple mesh torus knot with three types.
|
|
||||||
Triangles by Sjaak-de-Draak
|
|
||||||
Create math based triangles.
|
|
||||||
Twisted Torus by Paulo_Gomes
|
|
||||||
Standard torus object with a variable twisted mesh.
|
|
||||||
Add Vertex by meta-androcto, Pablo Vazquez, Liero, Richard Wilks
|
|
||||||
Add a single vertex object or object origin as a fast start to mesh editing.
|
|
||||||
Wall Factory by dudecon, jambay
|
|
||||||
Add castle type walls with settings for openings.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Add Mesh
|
|
||||||
:Description: Create many extra object types.
|
|
||||||
:Location: :menuselection:`3D Viewport --> Add --> Mesh`
|
|
||||||
:File: add_mesh_extra_objects folder
|
|
||||||
:Author: Multiple Authors
|
|
||||||
:Maintainer: Vladimir Spivak (cwolf3d)
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,38 +0,0 @@
|
|||||||
|
|
||||||
*******
|
|
||||||
Animall
|
|
||||||
*******
|
|
||||||
|
|
||||||
Allows animation of mesh, lattice, curve and surface data.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Animation then AnimAll to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Animate tab`.
|
|
||||||
|
|
||||||
|
|
||||||
Tutorial
|
|
||||||
========
|
|
||||||
|
|
||||||
See this `tutorial video <https://www.youtube.com/watch?v=xlJ71XChDuY>`__
|
|
||||||
on how to activate the add-on along with basic usage.
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Animation
|
|
||||||
:Description: Allows animation of mesh, lattice, curve and surface data.
|
|
||||||
:Location: :menuselection:`Sidebar --> Animation tab`
|
|
||||||
:File: animation_animall.py
|
|
||||||
:Author: Daniel Salazar (zanqdo)
|
|
||||||
:Maintainer: Damien Picard (pioverfour)
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,48 +0,0 @@
|
|||||||
|
|
||||||
*******************
|
|
||||||
Bone Selection Sets
|
|
||||||
*******************
|
|
||||||
|
|
||||||
This add-on allows the creation, deletion and editing of selection sets.
|
|
||||||
|
|
||||||
Selection Sets are a feature that allows the definition of sets of bones for easy selection while animating.
|
|
||||||
The sets can be created in local and linked armature overrides.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Animation then Bone Selection Sets to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`Properties --> Armature --> Selection Sets`.
|
|
||||||
|
|
||||||
|
|
||||||
Description
|
|
||||||
===========
|
|
||||||
|
|
||||||
The *Select* and *Deselect* buttons are used to manipulate the current selection of bones,
|
|
||||||
while the *Assign* and *Remove* buttons serve to add or remove
|
|
||||||
the currently selected bones to the currently selected set.
|
|
||||||
A bone can belong to more than one selection set.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
|
|
||||||
:doc:`/animation/armatures/properties/bone_collections` for a way to organise groups of bones.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Animation
|
|
||||||
:Description: List of Bone sets for easy selection while animating.
|
|
||||||
:Location: :menuselection:`Properties --> Armature --> Selection Sets`
|
|
||||||
:File: bone_selection_sets.py
|
|
||||||
:Author: Inês Almeida, Sybren A. Stüvel, Antony Riakiotakis, Dan Eicher
|
|
||||||
:Maintainer: to do
|
|
||||||
:License: GPL 2+
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
BIN
manual/addons/animation/copy_global_transform-fix_to_camera.webp
(Stored with Git LFS)
Normal file
BIN
manual/addons/animation/copy_global_transform-fix_to_camera.webp
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/addons/animation/copy_global_transform-main.webp
(Stored with Git LFS)
Normal file
BIN
manual/addons/animation/copy_global_transform-main.webp
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/addons/animation/copy_global_transform-mirror_options.webp
(Stored with Git LFS)
Normal file
BIN
manual/addons/animation/copy_global_transform-mirror_options.webp
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
manual/addons/animation/copy_global_transform-relative.webp
(Stored with Git LFS)
Normal file
BIN
manual/addons/animation/copy_global_transform-relative.webp
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -23,11 +23,14 @@ Activation
|
|||||||
Interface
|
Interface
|
||||||
=========
|
=========
|
||||||
|
|
||||||
Located in :menuselection:`3D Viewport --> N-panel --> Animation tab`.
|
.. figure:: copy_global_transform-main.webp
|
||||||
|
|
||||||
.. figure:: /images/addons_animation_copy-global-transform.png
|
|
||||||
:align: right
|
:align: right
|
||||||
|
|
||||||
|
Located in :menuselection:`3D Viewport --> N-panel --> Animation tab`.
|
||||||
|
|
||||||
|
The figure on the right shows the main functionality of the Copy Global
|
||||||
|
Transform panel. The collapsed panels are described each in their own section
|
||||||
|
below.
|
||||||
|
|
||||||
Description
|
Description
|
||||||
===========
|
===========
|
||||||
@ -59,7 +62,10 @@ Paste and Bake
|
|||||||
.. _copy-global-transform-mirror-options:
|
.. _copy-global-transform-mirror-options:
|
||||||
|
|
||||||
Mirror Options
|
Mirror Options
|
||||||
==============
|
++++++++++++++
|
||||||
|
|
||||||
|
.. figure:: copy_global_transform-mirror_options.webp
|
||||||
|
:align: right
|
||||||
|
|
||||||
The copied transform can be mirrored relative to an object or a :term:`Bone`.
|
The copied transform can be mirrored relative to an object or a :term:`Bone`.
|
||||||
This requires choosing that object or bone first.
|
This requires choosing that object or bone first.
|
||||||
@ -80,6 +86,61 @@ After pasting with 'Paste Mirrored', the mirror axes can be chosen in the
|
|||||||
:ref:`redo panel <bpy.ops.screen.redo_last>`.
|
:ref:`redo panel <bpy.ops.screen.redo_last>`.
|
||||||
|
|
||||||
|
|
||||||
|
.. _copy-global-transform-fix-to-camera:
|
||||||
|
|
||||||
|
Fix to Camera
|
||||||
|
+++++++++++++
|
||||||
|
|
||||||
|
.. figure:: copy_global_transform-fix_to_camera.webp
|
||||||
|
:align: right
|
||||||
|
|
||||||
|
Also known as "bake to camera", this operator will ensure selected objects/bones
|
||||||
|
remain static (relative to the camera) on unkeyed frames.
|
||||||
|
|
||||||
|
This is done by generating new keys. These keys will be of :ref:`type
|
||||||
|
'Generated' <keyframe-type>` so that it remains clear which keys were manually
|
||||||
|
created, and which were generated. This way the tool can be re-run to
|
||||||
|
re-generate the keys.
|
||||||
|
|
||||||
|
1. Ensure your animation is keyed using constant interpolation. If this is not
|
||||||
|
the case yet, bake your animation (at least the transform channels). This
|
||||||
|
tool does _not_ work with the :ref:`"Stepped" F-Curve modifier <bpy.types.FModifierStepped>`
|
||||||
|
2. Choose which of the Location/Rotation/Scale channels you want to fix to the
|
||||||
|
camera. When unsure, make sure they are all checked.
|
||||||
|
3. Press the "Fix to Camera" button.
|
||||||
|
|
||||||
|
To undo the effect of the "Fix to Camera" operator, click on the trash bin
|
||||||
|
button. That will remove all the generated keys in either the scene range or the
|
||||||
|
frame range.
|
||||||
|
|
||||||
|
The tool operates on the scene frame range, or on the preview range if that is
|
||||||
|
active. Keys outside that range are ignored, both when fixing to the camera and
|
||||||
|
when removing generated keys.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
This tool assumes that *all* keys with type 'Generated' are equal. It will
|
||||||
|
overwrite them (or remove them, depending on which button you press).
|
||||||
|
|
||||||
|
|
||||||
|
Relative Copy-Paste
|
||||||
|
+++++++++++++++++++
|
||||||
|
|
||||||
|
.. figure:: copy_global_transform-relative.webp
|
||||||
|
:align: right
|
||||||
|
|
||||||
|
The "Relative" panel has copy/paste buttons that work relative to a chosen
|
||||||
|
object. When copying, the world-space transform is determined, and then adjusted
|
||||||
|
to become relative to the world-space transform of the chosen object. When
|
||||||
|
pasting, this happens in reverse.
|
||||||
|
|
||||||
|
If no object is chosen, the copy/paste will happen relative to the active scene
|
||||||
|
camera. What is the active scene camera is determined for every action, so when
|
||||||
|
you paste it can be different from when you copied. This can help to keep an
|
||||||
|
object visually in the same place when switching cameras, or when switching
|
||||||
|
between scenes.
|
||||||
|
|
||||||
|
|
||||||
Limitations
|
Limitations
|
||||||
===========
|
===========
|
||||||
|
|
||||||
|
@ -1,61 +0,0 @@
|
|||||||
|
|
||||||
*********************
|
|
||||||
Corrective Shape Keys
|
|
||||||
*********************
|
|
||||||
|
|
||||||
From the Author(s):
|
|
||||||
|
|
||||||
I merged and converted two old scripts, to let you make corrective shape keys.
|
|
||||||
The first `script <http://www.apexbow.com/randd.html>`__ was created by Tal Trachtman in 2007 and
|
|
||||||
the second one I believe was done by Brecht. That one works with any combination of modifiers,
|
|
||||||
but it is very slow (like three minutes for a mesh with 4,000 points).
|
|
||||||
The other one works only with objects that have no more than one armature.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Animation then Corrective Shape Keys to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`Properties --> Object Data --> Shape Keys Specials`.
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
#. Select a posed character object and click on *Create duplicate for editing* in the shape keys panel.
|
|
||||||
This will create a copy of the mesh that you can edit/sculpt.
|
|
||||||
#. Select your sculpted copy and then the character object.
|
|
||||||
Click on the little black arrow in the shape keys panel and choose one of the options shown in the image.
|
|
||||||
If your object has only Armature modifiers, choose the faster method.
|
|
||||||
If other (more complex?) modifiers are involved, or you want to incorporate dual quaternion skinning
|
|
||||||
(now called *Preserve Volume* in the UI) you will have to use the slower method.
|
|
||||||
|
|
||||||
If all went right, your character or object should have the new shape key for your pose.
|
|
||||||
If not, double check that your mesh and armature object have no translation or rotation and try again.
|
|
||||||
|
|
||||||
|
|
||||||
Known Limitations
|
|
||||||
=================
|
|
||||||
|
|
||||||
- Target mesh may not have any transformation at object level, it will be set to zero.
|
|
||||||
- Fast/Armature method does not work with Bone envelopes or dual quaternions,
|
|
||||||
both settings will be disabled in the modifier.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Animation
|
|
||||||
:Description: Creates a corrective shape key for the current pose.
|
|
||||||
:Location: :menuselection:`Properties --> Object Data --> Shape Keys Specials`
|
|
||||||
:File: animation_corrective_shape_key.py
|
|
||||||
:Author: Ivo Grigull (loolarge), Tal Trachtman, Tokikake
|
|
||||||
:Maintainer: to do
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -8,8 +8,4 @@ These add-ons relate to helper tools for the animation process and animation.
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
animall.rst
|
|
||||||
bone_selection_sets.rst
|
|
||||||
copy_global_transform.rst
|
copy_global_transform.rst
|
||||||
corrective_shape_keys.rst
|
|
||||||
turnaround_camera.rst
|
|
||||||
|
@ -1,43 +0,0 @@
|
|||||||
|
|
||||||
*****************
|
|
||||||
Turnaround Camera
|
|
||||||
*****************
|
|
||||||
|
|
||||||
This add-on creates an animated camera turn around an object,
|
|
||||||
suitable for product visualizations and character turnarounds.
|
|
||||||
Executing the script creates an empty object linked to the camera at
|
|
||||||
the selected object position or cursor position if chosen.
|
|
||||||
The rotation can be defined by revolutions in X, Y, or Z axis.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Animation then Turnaround Camera to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Sidebar --> View tab`.
|
|
||||||
|
|
||||||
|
|
||||||
Tutorial
|
|
||||||
========
|
|
||||||
|
|
||||||
See this `tutorial video <https://www.youtube.com/watch?v=sgjx0ycmTAo>`__
|
|
||||||
on how to activate the add-on along with basic usage.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Animation
|
|
||||||
:Description: Add a camera rotation around selected object.
|
|
||||||
:Location: :menuselection:`Sidebar --> View tab --> Turnaround Camera`
|
|
||||||
:File: camera_turnaround.py
|
|
||||||
:Author: Antonio Vazquez (antonioya)
|
|
||||||
:Maintainer: to do
|
|
||||||
:License: GPL 2+
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,11 +0,0 @@
|
|||||||
|
|
||||||
##########
|
|
||||||
Baking
|
|
||||||
##########
|
|
||||||
|
|
||||||
These add-ons add UI elements for faster baking access.
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
vdm_brush_baker.rst
|
|
@ -1,42 +0,0 @@
|
|||||||
|
|
||||||
***************
|
|
||||||
VDM Brush Baker
|
|
||||||
***************
|
|
||||||
|
|
||||||
This is a small add-on that makes it easy to create vector displacement map (aka VDM) brushes in Blender.
|
|
||||||
Sculpting setups and the brushes can be created with one click.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Switch the category to "Baking"
|
|
||||||
- Enable the "VDM Brush Baker" addon.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`3D Viewport --> Sidebar --> Tools`.
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
Use the "Create Sculpting Plane" button for an optimal starting setup for sculpting your own VDM brush.
|
|
||||||
|
|
||||||
Use the "Render and Create VDM Brush" button to convert bake the plane into a new brush.
|
|
||||||
The brush will be added with all relevant options and a vector displacement map
|
|
||||||
is saved near the blender file as an Open EXR file (or a 'tmp' folder if the blender file wasn't saved).
|
|
||||||
New brushes can be found as Draw brushes in sculpt mode.
|
|
||||||
The add-on won't create any preview images for these brushes.
|
|
||||||
|
|
||||||
|
|
||||||
Tips
|
|
||||||
----
|
|
||||||
|
|
||||||
- While Sculpting make sure to mask the borders of the plane for a better result.
|
|
||||||
- If your VDM brush gets cut off at the corners,
|
|
||||||
you can increase the size inside the texture panel of the brush settings to 1.1 or 1.2 for each axis.
|
|
||||||
- A vdm-resolution of 512 px or lower is usually enough. Unless you have extremely detailed sculptings.
|
|
@ -1,197 +0,0 @@
|
|||||||
|
|
||||||
***************
|
|
||||||
Add Camera Rigs
|
|
||||||
***************
|
|
||||||
|
|
||||||
.. figure:: /images/addons_camera_camera-rigs_ui.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
This add-on extends the functionality of a camera by creating control rigs with widgets
|
|
||||||
and adds a panel to quickly access the camera's settings from the 3D Viewport.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Camera then Add Camera Rigs to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Description
|
|
||||||
===========
|
|
||||||
|
|
||||||
After activating the add-on, it will place three menu items in the :menuselection:`Add --> Camera` menu.
|
|
||||||
They are Dolly Rig, Crane Rig and 2D Camera Rig.
|
|
||||||
|
|
||||||
The first two rigs are very similar except the "Crane Rig" has two extra adjustable bones (Arm Height and Arm Length)
|
|
||||||
to make it easier to achieve a cinematic crane shot.
|
|
||||||
|
|
||||||
The 2D Camera Rig is mostly useful for 2D shots, when the camera is static and
|
|
||||||
the action happens in front of it (like a theater stage).
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
Add a :menuselection:`Add --> Camera --> Dolly Camera Rig, Crane Camera Rig or 2D Camera Rig`.
|
|
||||||
This will build the rig at the cursor location, add a new camera, making it the new active scene camera.
|
|
||||||
|
|
||||||
When the Rig is selected, the camera properties will be displayed in the Sidebar.
|
|
||||||
|
|
||||||
|
|
||||||
3D Rigs (Dolly & Crane)
|
|
||||||
=======================
|
|
||||||
|
|
||||||
Root Bone
|
|
||||||
This is the parent of the entire rig.
|
|
||||||
Control Bone
|
|
||||||
This is the bone (named ``Camera``) that will translate the camera around. By default it will track to the aim
|
|
||||||
bone.
|
|
||||||
Aim Bone
|
|
||||||
The camera will point at this bone (named ``Aim``).
|
|
||||||
You can also tilt the camera by rotating the aim on the Y axis.
|
|
||||||
|
|
||||||
|
|
||||||
2D Rig
|
|
||||||
======
|
|
||||||
|
|
||||||
This rig is designed to provide fine controls over the framing while aiming at one direction. With it, you can
|
|
||||||
frame the action by moving two of the corners of the camera, instead of moving and rotating it. It produces smooth
|
|
||||||
movements that would be hard to achieve without it, by using complex drivers to calculate the appropriate camera
|
|
||||||
settings.
|
|
||||||
|
|
||||||
Root Bone
|
|
||||||
This is the parent of the entire rig.
|
|
||||||
It is the only bone that you should rotate to aim approximately at the action.
|
|
||||||
Left_corner and Right_corner Bones
|
|
||||||
These are the most important bones in this rig.
|
|
||||||
You can move them to quickly set and animate a framing.
|
|
||||||
The camera will adjust its parameters to adapt to this framing (focal length, rotation / shift).
|
|
||||||
They should always be at the same height (Y axis in the camera's coordinate system).
|
|
||||||
Camera Bone
|
|
||||||
You can move the camera around, and it will compensate its settings to frame the two corners.
|
|
||||||
For instance, if you leave the corners fixed on both sides of the subject and move the camera forward,
|
|
||||||
you will achieve an efficient dolly zoom effect.
|
|
||||||
|
|
||||||
|
|
||||||
Modes
|
|
||||||
-----
|
|
||||||
|
|
||||||
There are two modes of operation for the 2D rig: Rotation and Shift.
|
|
||||||
You can switch between the two modes in the add-on's Interface_.
|
|
||||||
|
|
||||||
Rotation is the default mode, and will rotate the camera to aim at and keep the corners in its frame.
|
|
||||||
Shift mode, on the other hand, uses the Shift properties on the Camera to achieve a cropping effect instead of a pan.
|
|
||||||
|
|
||||||
|
|
||||||
Limitations
|
|
||||||
-----------
|
|
||||||
|
|
||||||
- When moving the corners too far to the side in rotation mode, perspective makes the rig much less accurate.
|
|
||||||
- Rotation mode is unsupported for orthographic cameras.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Widgets
|
|
||||||
-------
|
|
||||||
|
|
||||||
When a rig is built, the add-on will create a collection for all the custom bone shapes
|
|
||||||
(named ``Widgets``). When the custom shapes (widgets) are built
|
|
||||||
they will use the prefix ``WGT-``. If you have more than one rig in the scene,
|
|
||||||
it will use the same widgets in the same collection rather than duplicating them.
|
|
||||||
The default collection name and the widget prefix can be set in the preferences of the add-on.
|
|
||||||
(This will not change the name of any existing widgets or collection,
|
|
||||||
only ones that are created after you change the setting.)
|
|
||||||
|
|
||||||
.. figure:: /images/addons_camera_camera-rigs_prefs.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
|
|
||||||
Panel
|
|
||||||
-----
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Mode: All Modes
|
|
||||||
:Panel: :menuselection:`3D Viewport --> Sidebar --> Item --> Camera Rig`
|
|
||||||
|
|
||||||
The panel will display the most used camera settings.
|
|
||||||
Only the added features will be explain here, for more information refer to the :doc:`/render/cameras` section.
|
|
||||||
|
|
||||||
Set DOF Bone
|
|
||||||
The *Set DOF Bone* button will automatically set up the camera so that it uses the camera rig’s Aim bone as a
|
|
||||||
target for the depth of field (DOF).
|
|
||||||
|
|
||||||
Focal Distance/F-Stop/Focal Length
|
|
||||||
These are custom properties on the camera bone that drive the equivalent setting on the actual camera.
|
|
||||||
This makes it animatable inside the armature object rather than having to animate the armature and the camera.
|
|
||||||
|
|
||||||
Show in Front
|
|
||||||
Will make the rig object visible through all other geometry.
|
|
||||||
(Useful if you have a fly through scene or if other meshes are in the way.)
|
|
||||||
|
|
||||||
Lock Camera Select
|
|
||||||
The *Lock Camera Select* is a toggle button to make the camera unselectable (so you can't accidentally delete it).
|
|
||||||
Tracking (Aim Lock)
|
|
||||||
This slider controls the Track To constraint on the control bone.
|
|
||||||
Turn it off and the bone will not point to the aim bone anymore.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_camera_camera-rigs_crane-arm.png
|
|
||||||
:align: center
|
|
||||||
:width: 240px
|
|
||||||
|
|
||||||
Crane Rig Height, Arm Length
|
|
||||||
The *Arm Height* and *Arm Length* sliders at the bottom of the UI show the Y axis scale of the relevant bone.
|
|
||||||
By default, both the height and the arm length are at 1 unit in size.
|
|
||||||
These values only show in the interface when a crane rig is selected, they are also animatable.
|
|
||||||
|
|
||||||
Rotation/Shift
|
|
||||||
The Rotation/Shift slider lets you switch between Rotation and Shift Modes_ for the 2D Camera rig.
|
|
||||||
You can also choose an intermediate value to have a bit of both.
|
|
||||||
|
|
||||||
|
|
||||||
Multiple Cameras
|
|
||||||
================
|
|
||||||
|
|
||||||
It is possible to add as many rigs as your scene needs.
|
|
||||||
The *Make Camera Active* will appear if the camera attached to the selected rig is **not** the active camera.
|
|
||||||
By pressing this, it will make this camera the active one.
|
|
||||||
|
|
||||||
|
|
||||||
Camera Switching
|
|
||||||
----------------
|
|
||||||
|
|
||||||
If you wish to switch cameras during an animation, you can do this with the *Add Marker and Bind* button.
|
|
||||||
This uses Blender's built-in camera binding tool to a Timeline marker.
|
|
||||||
When pressed, it will add a marker to the Timeline and bind it to the camera controlled by the selected rig.
|
|
||||||
Go to another frame, select a different camera rig and press it again.
|
|
||||||
Now you have two markers and when you scrub the Timeline you will see the active camera switch accordingly.
|
|
||||||
(Repeat this process as many times as needed).
|
|
||||||
These markers can then also be dragged around in the Timeline to change the frame at which they will switch.
|
|
||||||
|
|
||||||
|
|
||||||
Troubleshooting
|
|
||||||
===============
|
|
||||||
|
|
||||||
If the Aim tracking or 2D rig are not functioning, check that you have "Auto Run Python Scripts"
|
|
||||||
enabled in the Preferences :menuselection:`Preferences --> Save & Load --> Auto Run Python Scripts`.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
|
|
||||||
- The `author's Github repository <https://github.com/waylow/add_camera_rigs>`__.
|
|
||||||
- A `blog post <https://lacuisine.tech/2d-camera-rig/>`__ explaining the 2D rig by its authors.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Camera
|
|
||||||
:Description: Adds a camera rig with a UI.
|
|
||||||
:Location: :menuselection:`3D Viewport --> Add --> Camera`
|
|
||||||
:File: add_camera_rigs folder
|
|
||||||
:Author: Wayne Dixon, Brian Raschko, Kris Wittig, Damien Picard, Flavio Perez
|
|
||||||
:Maintainer: to do
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,11 +0,0 @@
|
|||||||
|
|
||||||
##########
|
|
||||||
Camera
|
|
||||||
##########
|
|
||||||
|
|
||||||
These add-ons relate to camera objects and tools.
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
camera_rigs.rst
|
|
@ -1,26 +0,0 @@
|
|||||||
|
|
||||||
**********************
|
|
||||||
Dependency Graph Debug
|
|
||||||
**********************
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Development
|
|
||||||
:Description: Various dependency graph debugging tools.
|
|
||||||
:Location: :menuselection:`Properties --> View Layers`
|
|
||||||
:File: depsgraph_debug.py
|
|
||||||
:Author: Sergey Sharybin
|
|
||||||
|
|
||||||
|
|
||||||
Installation
|
|
||||||
============
|
|
||||||
|
|
||||||
- This add-on is bundled with Blender.
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Development then Dependency Graph Debug to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Description
|
|
||||||
===========
|
|
||||||
|
|
||||||
- To Do
|
|
@ -1,46 +0,0 @@
|
|||||||
|
|
||||||
********************
|
|
||||||
Edit Operator Source
|
|
||||||
********************
|
|
||||||
|
|
||||||
This add-on allows searching for operator names (``bl_idname``) and opens source files containing them.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Development then Edit Operator Source to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Description
|
|
||||||
===========
|
|
||||||
|
|
||||||
In the :menuselection:`Text Editor --> Sidebar` on the left find the Edit Operator panel and
|
|
||||||
press the *Edit Operator* button. A searchable menu will show up. Scroll down until the operator is found.
|
|
||||||
Enter the keywords in the search field to narrow down the available options.
|
|
||||||
The source file containing the operator will open pointing to it's line.
|
|
||||||
|
|
||||||
To access the previously opened text files, select them from the header data-block menu.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Similar to the *Operator Cheat Sheet*, the script will produce a small memory leak (~0.03mb)
|
|
||||||
when enabled by accessing the Operator attributes from Python.
|
|
||||||
It is a conscious trade-off made by Blender developers, as the needed setting/call
|
|
||||||
in the source C code for this purpose, would increase the size of every Python instance by 4 bytes.
|
|
||||||
In case of complex scenes, the increased memory footprint would be nontrivial compared to
|
|
||||||
the few usage cases where it is currently needed.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Development
|
|
||||||
:Description: Opens source file of chosen operator or call locations, if source not available.
|
|
||||||
:Location: :menuselection:`Text Editor --> Sidebar --> Edit Operator`
|
|
||||||
:File: development_edit_operator.py
|
|
||||||
:Author: scorpion81
|
|
||||||
:Maintainer: scorpion81
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,46 +0,0 @@
|
|||||||
|
|
||||||
***********
|
|
||||||
Icon Viewer
|
|
||||||
***********
|
|
||||||
|
|
||||||
An add-on that will help you to find an icon for your script and copy its name to the clipboard.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_development_icon-viewer_ui.jpg
|
|
||||||
:align: center
|
|
||||||
:width: 700px
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Development then Icon Viewer to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Interface
|
|
||||||
=========
|
|
||||||
|
|
||||||
Located in the :menuselection:`Text Editor --> Sidebar --> Icon Viewer`.
|
|
||||||
|
|
||||||
Located in the :menuselection:`Python Console --> Header --> Icon Viewer`.
|
|
||||||
|
|
||||||
|
|
||||||
Instructions
|
|
||||||
============
|
|
||||||
|
|
||||||
#. Use the search field to filter the icons displayed by name.
|
|
||||||
#. Click on an icon in the display and it's name will be copied to the clipboard.
|
|
||||||
#. Paste the name into the text editor of choice to use it in your add-on.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Development
|
|
||||||
:Description: Click an icon to copy its name to the clipboard.
|
|
||||||
:Location: :menuselection:`Text Editor --> Dev Tab --> Icon Viewer`
|
|
||||||
:File: development_icon_get.py
|
|
||||||
:Author: roaoao
|
|
||||||
:Maintainer: Blender Foundation
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,14 +0,0 @@
|
|||||||
|
|
||||||
###############
|
|
||||||
Development
|
|
||||||
###############
|
|
||||||
|
|
||||||
These add-ons relate to Development tools.
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
dependency_graph.rst
|
|
||||||
edit_operator.rst
|
|
||||||
icon_viewer.rst
|
|
||||||
is_key_free.rst
|
|
@ -1,41 +0,0 @@
|
|||||||
|
|
||||||
***********
|
|
||||||
Is Key Free
|
|
||||||
***********
|
|
||||||
|
|
||||||
Primarily used to check the availability of shortcuts and the editor types they are associated with.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Development then Is key Free to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Instructions
|
|
||||||
============
|
|
||||||
|
|
||||||
Search
|
|
||||||
All the registered keys associated with the pattern entered in the *Key* field and
|
|
||||||
selected modifier shortcuts will be displayed. Click the Search icon to list the associated keys.
|
|
||||||
|
|
||||||
Quick Type
|
|
||||||
Alternatively, a list with free shortcuts is available for quick access of keys from
|
|
||||||
the *Quick Type* selector.
|
|
||||||
|
|
||||||
List All Shortcuts
|
|
||||||
Print a list of all used shortcuts to the Text editor.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Development
|
|
||||||
:Description: Find free shortcuts, inform about used and print a key list.
|
|
||||||
:Location: :menuselection:`Text Editor --> Sidebar --> Dev tab`
|
|
||||||
:File: development_iskeyfree.py
|
|
||||||
:Author: Antonio Vazquez (antonioya)
|
|
||||||
:Maintainer: Blender Foundation
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,61 +0,0 @@
|
|||||||
|
|
||||||
****************
|
|
||||||
Camera Animation
|
|
||||||
****************
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Import-Export
|
|
||||||
:Menu: :menuselection:`File --> Export --> Cameras & Markers (.py)`
|
|
||||||
|
|
||||||
Exports a .py file containing information about the animation of cameras in the scene.
|
|
||||||
This file can be used to 'import' these cameras and their animation to another .blend file.
|
|
||||||
|
|
||||||
|
|
||||||
Exported Data
|
|
||||||
=============
|
|
||||||
|
|
||||||
This is the type of data associated with the camera that get included in the .py file.
|
|
||||||
|
|
||||||
|
|
||||||
Static Data
|
|
||||||
-----------
|
|
||||||
|
|
||||||
- Shift X
|
|
||||||
- Shift Y
|
|
||||||
- Depth of Field Focus Distance
|
|
||||||
- Clip Start
|
|
||||||
- Clip End
|
|
||||||
- Viewport Display Size
|
|
||||||
- Render Visibility
|
|
||||||
|
|
||||||
|
|
||||||
Animated Data
|
|
||||||
-------------
|
|
||||||
|
|
||||||
- Focal Length
|
|
||||||
- Location
|
|
||||||
- Rotation
|
|
||||||
- Scale
|
|
||||||
|
|
||||||
|
|
||||||
Properties
|
|
||||||
==========
|
|
||||||
|
|
||||||
Export
|
|
||||||
------
|
|
||||||
|
|
||||||
Transform
|
|
||||||
^^^^^^^^^
|
|
||||||
|
|
||||||
Start / End
|
|
||||||
Sets the range of animation frames to export to the .py file.
|
|
||||||
Only Selected
|
|
||||||
Toggle between exporting only selected cameras or all cameras in the scene.
|
|
||||||
|
|
||||||
|
|
||||||
Import
|
|
||||||
------
|
|
||||||
|
|
||||||
To import the .py file, go to Blender's Text Editor.
|
|
||||||
:menuselection:`Text --> Open --> YourExportedFile (.py)`
|
|
@ -1,58 +0,0 @@
|
|||||||
|
|
||||||
*********************
|
|
||||||
Nuke Animation (chan)
|
|
||||||
*********************
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Import-Export
|
|
||||||
:Menu: :menuselection:`File --> Import/Export --> Nuke (.chan)`
|
|
||||||
|
|
||||||
The chan format is used to store camera animations, including location, rotation and optionally field of view.
|
|
||||||
This add-on can import and export chan files using the active object's animation.
|
|
||||||
|
|
||||||
A chan file is an ASCII file with parameter values saved in columns, one column per parameter, one line per frame.
|
|
||||||
The properties saved and read by this script are:
|
|
||||||
|
|
||||||
.. code-block:: none
|
|
||||||
|
|
||||||
frame location.x location.y location.z rotation_euler.x rotation_euler.y rotation_euler.z angle_y
|
|
||||||
|
|
||||||
The file format itself is as simple as can be, but its simplicity is its greatest advantage.
|
|
||||||
It is being used by applications like Nuke and Houdini, and since it is so simple
|
|
||||||
to write an import or export script for it is both fast and easy.
|
|
||||||
|
|
||||||
``angle_y`` stands for vertical field of view. It is used for calculation of the camera lens,
|
|
||||||
and only applies to camera animations, while importing/exporting object animation this parameter is skipped.
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
The add-on gets the currently active object (works in Object Mode only) and
|
|
||||||
saves/loads its transformations from or to a simple ASCII file, through the whole animation range
|
|
||||||
(set either in the Timeline or in the render settings). All you need to do is to select an object
|
|
||||||
and run the add-on in :menuselection:`File --> Import/Export --> Nuke (.chan)`.
|
|
||||||
|
|
||||||
Note that Chan saves only the raw property values (``rotation_x``, ``rotation_y``, ``rotation_z``, etc.),
|
|
||||||
so you have to mind the rotation order. In other words --
|
|
||||||
the rotation orders during export and import must be the same
|
|
||||||
(both are being set in the File Browser while importing/exporting).
|
|
||||||
|
|
||||||
Another thing is the camera sensor size and its influence on camera lens.
|
|
||||||
You can set the sensor size so you can fit a real life cameras (default in Blender is 32 × 18),
|
|
||||||
the best practice in this case is using horizontal fit for the camera (Nuke is using this as a default).
|
|
||||||
While importing the camera from a chan file you have to remember to set the same sensor size as
|
|
||||||
you had in Nuke (or other software that this camera has been exported).
|
|
||||||
|
|
||||||
.. tip:: File names
|
|
||||||
|
|
||||||
It is a good practice to save the chan files with it's rotations order and sensor size stored in a file name
|
|
||||||
(i.e. ``camera_for_shot_ZXY_36x24.chan``) so you don't have to look for those values in old files.
|
|
||||||
|
|
||||||
.. tip:: Exporting Geometry to Other Software
|
|
||||||
|
|
||||||
If you want to export the objects movement to other software via the OBJ format,
|
|
||||||
you have to save it with the Z up, Y forward setting.
|
|
||||||
After loading it to the other software it will be rotated 90 degrees,
|
|
||||||
but when you apply the chan file it'll jump into its place.
|
|
@ -1,12 +0,0 @@
|
|||||||
|
|
||||||
***************
|
|
||||||
3D-Coat Applink
|
|
||||||
***************
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Import-Export
|
|
||||||
:Panel: :menuselection:`Properties --> Scene --> 3D-Coat Settings`
|
|
||||||
|
|
||||||
3D-Coat is a sculpting/painting program. With this 3D-Coat/Blender applink add-on you can exchange
|
|
||||||
objects and textures between these two programs.
|
|
@ -1,207 +0,0 @@
|
|||||||
|
|
||||||
****************
|
|
||||||
Images as Planes
|
|
||||||
****************
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Import-Export
|
|
||||||
:Menu: :menuselection:`File --> Import --> Images as Planes`,
|
|
||||||
:menuselection:`3D Viewport --> Add --> Image --> Images as Planes`
|
|
||||||
|
|
||||||
.. figure:: /images/addons_import-export_images-as-planes_panel.png
|
|
||||||
:align: right
|
|
||||||
:width: 200px
|
|
||||||
|
|
||||||
Properties panel.
|
|
||||||
|
|
||||||
This add-on 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>`.
|
|
||||||
|
|
||||||
|
|
||||||
Import 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.
|
|
||||||
|
|
||||||
|
|
||||||
Compositing Nodes
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
Setup Corner Pin
|
|
||||||
Add a compositing setup of the Image Texture, Scale, and
|
|
||||||
:doc:`Corner Pin </compositing/types/transform/corner_pin>` nodes to inject a warped view of the image into the
|
|
||||||
compositor output. The add-on adds drivers to the corner values of the Corner Pin node so that transforms of the
|
|
||||||
plane and camera drive them. Make sure to have an active camera in the scene before the import.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
You may want to disable the plane object from the final render to prevent it from overlapping the image in
|
|
||||||
the composite.
|
|
||||||
|
|
||||||
|
|
||||||
Material Settings
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
Images as Planes sets up a material to display the image. You can set the type of material and related settings
|
|
||||||
before the import.
|
|
||||||
|
|
||||||
Material Type
|
|
||||||
: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/materials/settings>`.
|
|
||||||
|
|
||||||
Blend Mode
|
|
||||||
Set the alpha blend mode of the material.
|
|
||||||
|
|
||||||
Show Backface
|
|
||||||
Show backside of the transparent part.
|
|
||||||
|
|
||||||
Shadow Mode
|
|
||||||
Set the shadow mode of the material.
|
|
||||||
|
|
||||||
Backface Culling
|
|
||||||
Hide backside of the plane.
|
|
||||||
|
|
||||||
Overwrite Material
|
|
||||||
The add-on sets 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 Settings
|
|
||||||
----------------
|
|
||||||
|
|
||||||
.. 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.
|
|
||||||
|
|
||||||
Use Alpha
|
|
||||||
Use the alpha channel of the image for transparency.
|
|
||||||
|
|
||||||
Auto Refresh
|
|
||||||
Automatically refresh the images in the viewport on frame changes.
|
|
||||||
|
|
||||||
|
|
||||||
Position
|
|
||||||
--------
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Offset Planes
|
|
||||||
Place multiple planes with an offset. If disabled, all planes will be created at the same location.
|
|
||||||
|
|
||||||
Local Axis
|
|
||||||
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.
|
|
||||||
|
|
||||||
Offset
|
|
||||||
Set a distance between each plane.
|
|
||||||
|
|
||||||
|
|
||||||
Plane Dimensions
|
|
||||||
----------------
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
Orientation
|
|
||||||
-----------
|
|
||||||
|
|
||||||
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.
|
|
@ -3,30 +3,12 @@
|
|||||||
Import-Export
|
Import-Export
|
||||||
#################
|
#################
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
node_shaders_info.rst
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
:name: addons-io
|
:name: addons-io
|
||||||
|
|
||||||
coat3D.rst
|
|
||||||
mesh_atomic.rst
|
|
||||||
anim_bvh.rst
|
anim_bvh.rst
|
||||||
scene_dxf.rst
|
|
||||||
scene_3ds.rst
|
|
||||||
anim_camera.rst
|
|
||||||
paper_model.rst
|
|
||||||
pc2.rst
|
|
||||||
scene_fbx
|
scene_fbx
|
||||||
images_as_planes.rst
|
|
||||||
palettes.rst
|
|
||||||
shape_mdd.rst
|
|
||||||
anim_nuke_chan.rst
|
|
||||||
mesh_stl.rst
|
|
||||||
curve_svg.rst
|
curve_svg.rst
|
||||||
mesh_uv_layout.rst
|
mesh_uv_layout.rst
|
||||||
scene_x3d.rst
|
|
||||||
scene_gltf2.rst
|
scene_gltf2.rst
|
||||||
|
@ -1,424 +0,0 @@
|
|||||||
|
|
||||||
************************
|
|
||||||
Atomic Blender (PDB/XYZ)
|
|
||||||
************************
|
|
||||||
|
|
||||||
The Atomic Blender (PDB/XYZ) add-on imports atomic structures
|
|
||||||
(molecules, crystals, clusters, particles, surfaces, etc.), which are described in
|
|
||||||
PDB (``.pdb``) and XYZ files (``.xyz``) (`Import PDB/XYZ`_). The add-on reads the coordinates of
|
|
||||||
all atoms in the PDB/XYZ file and represents the atoms as balls in the Blender world.
|
|
||||||
Also the sticks, which are described in PDB files only,
|
|
||||||
are shown if the sticks are *explicitly* listed in the PDB file.
|
|
||||||
The :doc:`Principled BSDF shader </render/shader_nodes/shader/principled>`
|
|
||||||
is used to describe the material properties of the atoms.
|
|
||||||
|
|
||||||
For the import, many options can be chosen, which allow representing the atoms and sticks in different ways.
|
|
||||||
With help of several tools in the `Atomic Blender Utilities panel`_, the atomic structures can be modified
|
|
||||||
after the import.
|
|
||||||
|
|
||||||
Note that the coordinates of selected atomic structures in the Blender 3D world
|
|
||||||
can also be *exported* into PDB/XYZ files.
|
|
||||||
|
|
||||||
|
|
||||||
**General motivation:** Atomic Blender (PDB/XYZ) is interesting for scientists, who want to
|
|
||||||
visualize with Blender their atomic structures described in PDB or XYZ files.
|
|
||||||
Thanks to Blender, fancy graphics of molecules, crystal structures, surfaces,
|
|
||||||
nanoparticles, clusters and complex atomic arrangements can be obtained.
|
|
||||||
Such graphics meet the standards of top-level journals, which have a high impact factor.
|
|
||||||
See `Examples`_ at the end of this page.
|
|
||||||
|
|
||||||
.. seealso:: **Info about PDB and XYZ**
|
|
||||||
|
|
||||||
- Description of the PDB file format:
|
|
||||||
`Wikipedia <https://en.wikipedia.org/wiki/Protein_Data_Bank_(file_format)>`__ and
|
|
||||||
`RCSB <http://www.wwpdb.org/documentation/file-format>`__.
|
|
||||||
- Description of the XYZ file format:
|
|
||||||
`Wikipedia <https://en.wikipedia.org/wiki/XYZ_file_format>`__ and
|
|
||||||
`Open Babel <https://openbabel.org/docs/dev/FileFormats/XYZ_cartesian_coordinates_format.html>`__.
|
|
||||||
- Some notes about PDB and XYZ files can also be found
|
|
||||||
`here <https://development.root-1.de/Atomic_Blender_PDB_XYZ.php>`__ and
|
|
||||||
`here <https://development.root-1.de/Atomic_Blender_PDB_XYZ_Remarks.php>`__.
|
|
||||||
- Many molecules can be downloaded from the `RCSB site <https://www.rcsb.org/>`__ (go to 'Download').
|
|
||||||
- A list of software that deals with PDB in different ways can be found on
|
|
||||||
the `RCSB site <https://www.rcsb.org/docs/additional-resources/molecular-graphics-software>`__. There also is
|
|
||||||
`Vesta <https://jp-minerals.org/vesta/en/>`__, `ASE <https://wiki.fysik.dtu.dk/ase/>`__ and all the
|
|
||||||
`quantum chemical calculators
|
|
||||||
<https://en.wikipedia.org/wiki/List_of_quantum_chemistry_and_solid-state_physics_software>`__
|
|
||||||
used in research, which can create or even calculate atomic structures and store them in PDB/XYZ files.
|
|
||||||
|
|
||||||
.. seealso:: **Forum**
|
|
||||||
|
|
||||||
- Please, use the `Blender Artists forum
|
|
||||||
<https://blenderartists.org/t/atomic-blender-pdb-xyz-for-blender-2-8-and-higher/1197801>`__
|
|
||||||
for comments and questions or directly the `Blender chat <https://blender.chat/home>`__.
|
|
||||||
- There also is the possibility to ask questions on `Stack Exchange <https://blender.stackexchange.com/>`__.
|
|
||||||
However, note that some of the developers like Blendphys don't have enough credits, which are, however, needed to
|
|
||||||
have the permission for giving answers on Stack Exchange.
|
|
||||||
|
|
||||||
.. hint:: **Defects in an Atomic Structure**
|
|
||||||
|
|
||||||
If you want to show defects like vacancies in an atomic structure, use an 'X' for
|
|
||||||
the element name in the PDB or XYZ file
|
|
||||||
(`see here <https://development.root-1.de/Atomic_Blender_PDB_XYZ_Remarks.php>`__).
|
|
||||||
A defect is shown in the form of a cube.
|
|
||||||
|
|
||||||
|
|
||||||
Import PDB/XYZ
|
|
||||||
==============
|
|
||||||
|
|
||||||
.. figure:: /images/addons_import-export_mesh-atomic_import-PDB.png
|
|
||||||
:align: right
|
|
||||||
:width: 239px
|
|
||||||
|
|
||||||
The panel with the options for PDB import.
|
|
||||||
|
|
||||||
|
|
||||||
Camera & Lamp
|
|
||||||
-------------
|
|
||||||
|
|
||||||
A camera and/or a light source are placed into the 3D world.
|
|
||||||
Both are placed such that the entire atomic structure can be well seen by
|
|
||||||
the camera with enough light from the light source.
|
|
||||||
|
|
||||||
|
|
||||||
Object to Origin (PDB)
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
The atomic structure is placed into the origin (0.0, 0.0, 0.0) of the 3D world.
|
|
||||||
|
|
||||||
|
|
||||||
Object to Origin (XYZ)
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
Either in only *the first* or in *all frames*, the atomic structure is put into
|
|
||||||
the origin (0.0, 0.0, 0.0) of the 3D world.
|
|
||||||
|
|
||||||
|
|
||||||
Balls/Atoms
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Type Of
|
|
||||||
Choose either *NURBS*, *Mesh* or *Metaballs* for the atoms.
|
|
||||||
For option *Mesh*, the *Azimuth* and *Zenith* values can be chosen.
|
|
||||||
Metaballs can lead to some fancy effects: for instance,
|
|
||||||
if enough large, their shapes melt together showing some kind of surface effect.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_import-export_mesh-atomic_import-XYZ.png
|
|
||||||
:align: right
|
|
||||||
:width: 238px
|
|
||||||
|
|
||||||
The panel with the options for XYZ import.
|
|
||||||
|
|
||||||
Scaling Factors
|
|
||||||
The atom radii as well as the distances between the atoms can be scaled by a simple factor.
|
|
||||||
|
|
||||||
Type
|
|
||||||
The type of atom radius (atomic, van der Waals or as predefined) can be chosen.
|
|
||||||
|
|
||||||
|
|
||||||
Sticks/Bonds (only PDB)
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
Use Sticks
|
|
||||||
Use sticks or not. Note that the sticks must be listed in the PDB file.
|
|
||||||
The add-on does not 'calculate' possible bonds between atoms, which are then
|
|
||||||
shown as sticks!
|
|
||||||
|
|
||||||
Type
|
|
||||||
In general, the options *Sector* and *Radius* determine the precision and dimension of the sticks, respectively.
|
|
||||||
Option *Smooth* always means that a Smooth operator is applied on the sticks.
|
|
||||||
Option *Color* means that the stick is divided into two parts,
|
|
||||||
showing the colors of the respective two atoms which it connects.
|
|
||||||
|
|
||||||
Instancing Vertices
|
|
||||||
The sticks of one element are put into one instancing vertex structure and the sticks appear as cylinders.
|
|
||||||
The instancing vertex structure makes the displaying and loading of many sticks relatively fast
|
|
||||||
(see Section `The instancing vertex structure`_ for more info). Options *Unit* is the length of a unit
|
|
||||||
(a small cylinder): several of such units are put together forming actually the stick (cylinder).
|
|
||||||
The longer the unit length is the less is the number of such units and
|
|
||||||
thus the faster is the displaying. However, if the unit length is too long the stick becomes
|
|
||||||
eventually longer than the bond length (distance between atoms).
|
|
||||||
This can then lead to a 'overlapping effect' where a stick intersects the atoms. Option *Bonds*
|
|
||||||
displays apart from single also double, triple, etc. bonds whereas
|
|
||||||
option *Distance* is the distance between the bonds measured in stick diameter.
|
|
||||||
Skin
|
|
||||||
The skin and subdivision modifiers are used to build the sticks.
|
|
||||||
This gives a nice network of sticks, which can be used to show,
|
|
||||||
e.g. only the bonds of the structure (delete the atoms before!).
|
|
||||||
Options *SubDivV* and *SubDivR* are parameters of the subdivision operator.
|
|
||||||
If option *Smooth* is activated, the initial squarish profile of the sticks changes to a more circular one.
|
|
||||||
Note that if this option is chosen, there is only one object representing all sticks.
|
|
||||||
Normal
|
|
||||||
Normal cylinders are used. For each bond, one individual cylinder is used.
|
|
||||||
If option *One Object* is activated, about *No* sticks are joined into one mesh object.
|
|
||||||
This makes displaying the sticks very fast. However, individual sticks do not exist anymore.
|
|
||||||
|
|
||||||
|
|
||||||
Frames (only XYZ)
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
Load All Frames
|
|
||||||
Load only the first or all frames.
|
|
||||||
|
|
||||||
Skip Frames
|
|
||||||
Skip and load only each n-th frame. This is quite useful for large data
|
|
||||||
where it might be sufficient to show only each 4th frame.
|
|
||||||
|
|
||||||
Frames/Key
|
|
||||||
Show a specific number of frames per key. Many frames in a key lead to a more fluid presentation.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
|
|
||||||
**Please, keep in mind**: the number of atoms in a frame has to be the **same** for all frames!
|
|
||||||
|
|
||||||
|
|
||||||
The instancing vertex structure
|
|
||||||
===============================
|
|
||||||
|
|
||||||
.. figure:: /images/addons_import-export_mesh-atomic_dupli_1.png
|
|
||||||
:align: right
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
The NaCl structure in the outliner.
|
|
||||||
|
|
||||||
It is essential to understand, how the atoms (and sticks) of an atomic structure are
|
|
||||||
organized inside Blender. This is why we focus a little bit onto this in the following:
|
|
||||||
|
|
||||||
When atomic structures are imported via the PDB or XYZ importer, the atoms are put
|
|
||||||
into a so-called *instancing vertex structures*, somewhat into 'groups' of elements.
|
|
||||||
For instance, all sodium atoms of a NaCl structure form one instancing vertex structure,
|
|
||||||
and the same applies for the chlorine atoms (see figure). In the case of the sodium
|
|
||||||
atoms, there is a collection *Sodium* that includes the collection *Sodium_atom*.
|
|
||||||
Within the latter, the *Sodium_mesh* is composed of the mesh itself (*Mesh_Sodium*)
|
|
||||||
and a ball called *Sodium_ball*. The mesh only contains vertices (no objects!),
|
|
||||||
and the vertices are located at the x,y,z positions specified in the PDB/XYZ file.
|
|
||||||
What Blender is doing is simply 'duplicating' the 'representative'
|
|
||||||
ball *Sodium_ball* at all the vertices! Because only **one ball** is used, it
|
|
||||||
makes things incredibly fast by representing, e.g., a thousand of atoms inside Blender.
|
|
||||||
Note that the representative ball is in the center of the structure,
|
|
||||||
without having any meaning. This is the reason why the visibility switch
|
|
||||||
of the representative ball is switched off (see red arrow)!
|
|
||||||
|
|
||||||
There are some consequences:
|
|
||||||
a) The representative ball appears at all vertices with the same orientation.
|
|
||||||
b) Changing the material properties of the representative ball changes the properties of
|
|
||||||
all duplicated balls.
|
|
||||||
c) A ball is NOT an individual object, it is rather a linked member of the
|
|
||||||
structure. Actually, the object as such does not exist.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_import-export_mesh-atomic_dupli_2.png
|
|
||||||
:align: right
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
The NaCl structure in the outliner.
|
|
||||||
|
|
||||||
|
|
||||||
Modifications
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Displacing an 'individual' atom
|
|
||||||
For this, the respective vertex has to be displaced: go into the *Edit Mode*
|
|
||||||
and select the atom. You can now displace the atom (vertex).
|
|
||||||
|
|
||||||
Changing material properties (of all atoms)
|
|
||||||
For this, the material properties of the representative ball must be changed:
|
|
||||||
in the outliner, switch on the visibility of the representative ball (here,
|
|
||||||
*Sodium_ball*, see red arrow in figure). You can then select the ball and change the
|
|
||||||
material properties. After, make invisible the representative ball, otherwise
|
|
||||||
it appears in the structure.
|
|
||||||
|
|
||||||
Separate an atom
|
|
||||||
For this, see Section `Separate Atoms`_.
|
|
||||||
|
|
||||||
For making the handling of the atomic structures a bit more easy, the utility
|
|
||||||
panel can be used, see the next Section.
|
|
||||||
|
|
||||||
|
|
||||||
.. hint:: **Converting All Atoms of an Instancing Vertex Structure to Real Independent Objects**
|
|
||||||
|
|
||||||
Do the following: Select the atomic structures
|
|
||||||
with the mouse and use :ref:`bpy.ops.object.duplicates_make_real`.
|
|
||||||
With this, you produce real independent objects!
|
|
||||||
In the Outliner, delete the remaining instancing vertex structures,
|
|
||||||
named like "Carbon", "Hydrogen", etc.
|
|
||||||
|
|
||||||
Note that if the structures represent many hundreds and thousands
|
|
||||||
of atoms, Blender can be become quite slow: at once, all these new
|
|
||||||
atoms are represented as individual ball objects and Blender has to deal with
|
|
||||||
all of them in several ways. As mentioned above, for each instancing vertex
|
|
||||||
structure, there is only *one representative ball object*!
|
|
||||||
|
|
||||||
|
|
||||||
Atomic Blender Utilities Panel
|
|
||||||
==============================
|
|
||||||
|
|
||||||
The *Atomic Blender Utilities* panel makes your life easier during manipulating
|
|
||||||
atoms of imported structures.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_import-export_mesh-atomic_custom_file.png
|
|
||||||
:align: right
|
|
||||||
:width: 300px
|
|
||||||
|
|
||||||
The entry for hydrogen in the custom data file.
|
|
||||||
|
|
||||||
|
|
||||||
Custom Data File
|
|
||||||
----------------
|
|
||||||
|
|
||||||
A separate custom data file can be loaded, which contains for each element the following
|
|
||||||
information:
|
|
||||||
|
|
||||||
* All types of radii (atomic, VdW, ionic) in Å
|
|
||||||
* Ball color
|
|
||||||
* Other material properties for the Principled BSDF shader.
|
|
||||||
|
|
||||||
Such an option is useful when it is desired to use predefined values for atom
|
|
||||||
radii and shader properties. An example can be downloaded from here:
|
|
||||||
`Custom data file <https://development.root-1.de/X-Download/atom_info.dat>`__.
|
|
||||||
|
|
||||||
The custom data file is an ASCII file, which can be duplicated and modified by
|
|
||||||
the user. The radius and material properties of the atoms can be
|
|
||||||
changed as follows: open the ASCII file with a standard text editor, search
|
|
||||||
the name of the atom and change the radius (``Radius used``). Do the same
|
|
||||||
with, e.g., the RGB values for the color (``Color``). The value
|
|
||||||
RGBA(1.0, 1.0, 1.0, 1.0) corresponds to white and RGBA(0.0, 0.0, 0.0, 1.0) is
|
|
||||||
black. Note that the last value of a color tuple is the alpha value of the
|
|
||||||
color. Furthermore, several other properties such as ``Metallic``,
|
|
||||||
``Roughness`` and ``Transmission`` can be changed. These are the properties
|
|
||||||
in the :doc:`Principled BSDF shader </render/shader_nodes/shader/principled>`.
|
|
||||||
There are also some properties for :doc:`EEVEE </render/eevee/index>`, which
|
|
||||||
can be used to determine the object's transparency etc.
|
|
||||||
|
|
||||||
|
|
||||||
Note that in the header of the custom data file,
|
|
||||||
all possible values of the string options ``P BSDF Subsurface method``,
|
|
||||||
``P BSDF Distribution``, ``EEVEE Blend Method`` and ``EEVEE Shadow Method``
|
|
||||||
are listed.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_import-export_mesh-atomic_utilities-panel.png
|
|
||||||
:align: right
|
|
||||||
:width: 211px
|
|
||||||
|
|
||||||
The *Atomic Blender Utilities* panel.
|
|
||||||
|
|
||||||
Inside Blender, the data file needs to be loaded first. The colors and material
|
|
||||||
properties are changed after executing *Apply*. **Note that only selected atoms
|
|
||||||
are changed!**
|
|
||||||
|
|
||||||
|
|
||||||
Measure Distances
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
With this tool the distance of two objects in the *Object Mode* but also
|
|
||||||
in the *Edit Mode* can be measured. The unit is Ångström.
|
|
||||||
|
|
||||||
|
|
||||||
Change Atom Size
|
|
||||||
----------------
|
|
||||||
|
|
||||||
Note that the atomic structures must be selected!
|
|
||||||
|
|
||||||
Type of Radii
|
|
||||||
Type
|
|
||||||
With this selector the type of radii can be chosen.
|
|
||||||
Either one uses *Predefined*, *Atomic* or *Van der Waals* radii.
|
|
||||||
The default values for Predefined radii are the *Atomic* radii.
|
|
||||||
Charge
|
|
||||||
For option *Ionic radii*, the charge state can be chosen and the radii of selected objects
|
|
||||||
are instantaneously changed. Select one type of atom (e.g. only all hydrogen ones)
|
|
||||||
and then apply the charge state. Changes only apply if a charge state of an atom is available.
|
|
||||||
See, e.g., in the `Custom data file <https://development.root-1.de/X-Download/atom_info.dat>`__.
|
|
||||||
|
|
||||||
Radii in pm
|
|
||||||
The radii of all atoms that belong to one element can be manipulated.
|
|
||||||
Type in the name of the atom (e.g. 'Hydrogen') and choose the radius in picometer.
|
|
||||||
|
|
||||||
Radii by Scale
|
|
||||||
This modifies the radii of all selected atoms and atom structures with one scaling factor.
|
|
||||||
Type in the scaling factor and increase or decrease the size of the radii by
|
|
||||||
using the *Bigger* or *Smaller* button, respectively.
|
|
||||||
|
|
||||||
|
|
||||||
Change Stick Size
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
The diameter of selected sticks are changed. The buttons *Bigger* and *Smaller*
|
|
||||||
allow increasing or decreasing the diameter, respectively.
|
|
||||||
The scale factor determines, how strong the change of diameter will be.
|
|
||||||
By using the *Outliner*, one can apply these operators on only a selection of sticks
|
|
||||||
(e.g. only the sticks of the hydrogen atoms). Note that changes only apply
|
|
||||||
if the sticks are individual objects, e.g. single cylinders or if the sticks are described
|
|
||||||
in instancing vertex structures.
|
|
||||||
|
|
||||||
|
|
||||||
Change Atom Shape
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
It is possible to change the atom's shape to a sphere, cube, icosphere, etc.
|
|
||||||
Furthermore, the material of the atom can be changed. First, select your atoms
|
|
||||||
in the 3D Viewport or the Outliner.
|
|
||||||
|
|
||||||
Shape
|
|
||||||
Choose the shape in the first selector.
|
|
||||||
Material
|
|
||||||
Choose one of the materials in the second selector. The materials are only examples,
|
|
||||||
further refinements can be done in the Materials tab of the Properties.
|
|
||||||
Special
|
|
||||||
Here, you can choose an object with a special shape, material, etc.
|
|
||||||
Such objects are quite nice to represent defects in atomic structures.
|
|
||||||
When choosing such a special object, you cannot anymore separately choose
|
|
||||||
the shape and material from above. In the Objects and Materials tabs of the Properties
|
|
||||||
further changes can be done.
|
|
||||||
|
|
||||||
Button Replace
|
|
||||||
After all, push the *Replace* button. The shape and/or material of all
|
|
||||||
selected atoms are then changed. This option works for objects and
|
|
||||||
instancing vertex object structures.
|
|
||||||
|
|
||||||
Button Default
|
|
||||||
If you want to have the default values (NURBS spheres and specific element
|
|
||||||
colors and sizes) of selected atoms push the *Default* button.
|
|
||||||
|
|
||||||
|
|
||||||
Separate Atoms
|
|
||||||
--------------
|
|
||||||
|
|
||||||
To separate single atoms, select the atoms (vertices) first in the *Edit Mode*.
|
|
||||||
Upon choosing *Edit Mode*, the *Separate* button appears at the bottom of the
|
|
||||||
*Atomic Blender Utilities* panel. If the selectors in *Change atom shape* remain on
|
|
||||||
*Unchanged* the type of object (NURBS, mesh, meta) and its properties will not be changed
|
|
||||||
upon separation.
|
|
||||||
|
|
||||||
After having chosen the atoms, use button *Separate Atoms* to separate
|
|
||||||
the selected atoms: the atoms are now single, new objects, which can be
|
|
||||||
manipulated in standard way. They appear in the Outliner and carry the suffix ``_sep``.
|
|
||||||
|
|
||||||
|
|
||||||
Examples
|
|
||||||
========
|
|
||||||
|
|
||||||
.. list-table::
|
|
||||||
|
|
||||||
* - .. figure:: /images/addons_import-export_mesh-atomic_molecule-representations.jpeg
|
|
||||||
|
|
||||||
Different presentations of one and the same molecule.
|
|
||||||
|
|
||||||
- .. figure:: /images/addons_import-export_mesh-atomic_DNA.jpeg
|
|
||||||
|
|
||||||
Part of a DNA molecule.
|
|
||||||
|
|
||||||
* - .. figure:: /images/addons_import-export_mesh-atomic_JPCC-2014.jpg
|
|
||||||
|
|
||||||
Functionalized [5]helicene molecules on the NaCl(001) surface
|
|
||||||
(Clemens Barth et al. -- `Link to publication <https://pubs.acs.org/doi/10.1021/jp501738c>`__).
|
|
||||||
|
|
||||||
- .. figure:: /images/addons_import-export_mesh-atomic_ESE-2017.jpeg
|
|
||||||
|
|
||||||
Solar cell structure to underline the properties of silicon nanocrystals deposited by pulsed spray system
|
|
||||||
(Mickael Lozac'h et al. -- `Link to publication <https://onlinelibrary.wiley.com/doi/10.1002/ese3.174>`__).
|
|
||||||
|
|
||||||
`This video <https://www.youtube.com/watch?v=8WmCn5xGebs>`__
|
|
||||||
was created by Sébastien Coget (responsible researcher: Frank Palmino)
|
|
||||||
at the `Femto-ST institute <https://www.femto-st.fr/en>`__ in Besançon (France).
|
|
||||||
The movie demonstrates that with Blender, professional movies can be done for research.
|
|
||||||
It was rendered with Cycles.
|
|
@ -1,106 +0,0 @@
|
|||||||
|
|
||||||
***
|
|
||||||
STL
|
|
||||||
***
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Import-Export
|
|
||||||
:Menu: :menuselection:`File --> Import/Export --> Stl (.stl)`
|
|
||||||
|
|
||||||
This format is useful if you intend to import/export the files for CAD software.
|
|
||||||
It is also commonly used for loading into 3D printing software.
|
|
||||||
|
|
||||||
.. warning::
|
|
||||||
|
|
||||||
Currently the script does not handle importing or exporting of normals
|
|
||||||
and does not handle endian-ness, there is nothing in the STL specification about it.
|
|
||||||
|
|
||||||
|
|
||||||
Importing
|
|
||||||
=========
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
The STL importer Add-on is deprecated and being replaced with the much faster
|
|
||||||
:ref:`Integrated STL Importer <bpy.ops.wm.stl_import>`.
|
|
||||||
|
|
||||||
|
|
||||||
Properties
|
|
||||||
----------
|
|
||||||
|
|
||||||
Transform
|
|
||||||
^^^^^^^^^
|
|
||||||
|
|
||||||
Scale
|
|
||||||
Value by which to scale the imported objects in relation to the world's origin.
|
|
||||||
Scene Unit
|
|
||||||
Apply current scene's unit (as defined by unit scale) to imported data.
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
Geometry
|
|
||||||
^^^^^^^^
|
|
||||||
|
|
||||||
Facet Normals
|
|
||||||
Use (import) facet normals (note that this will still give flat shading).
|
|
||||||
|
|
||||||
|
|
||||||
Exporting
|
|
||||||
=========
|
|
||||||
|
|
||||||
Properties
|
|
||||||
----------
|
|
||||||
|
|
||||||
ASCII
|
|
||||||
TODO.
|
|
||||||
Batch Mode
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
|
|
||||||
Include
|
|
||||||
^^^^^^^
|
|
||||||
|
|
||||||
Selection Only
|
|
||||||
When checked, only selected objects are exported.
|
|
||||||
Instanced objects, for example collections that are instanced in the scene,
|
|
||||||
are considered 'selected' when their instancer is selected.
|
|
||||||
|
|
||||||
|
|
||||||
Transform
|
|
||||||
^^^^^^^^^
|
|
||||||
|
|
||||||
Scale
|
|
||||||
Value by which to scale the exported objects in relation to the world's origin.
|
|
||||||
Scene Unit
|
|
||||||
Apply current scene's unit (as defined by unit scale) to exported data.
|
|
||||||
Forward / Up Axis
|
|
||||||
Since many applications use a different axis for 'Up', 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's common for applications to use Y as the up axis, in that case -Z Forward, Y Up is needed.
|
|
||||||
|
|
||||||
|
|
||||||
Geometry
|
|
||||||
^^^^^^^^
|
|
||||||
|
|
||||||
Apply Modifiers
|
|
||||||
Export objects using the evaluated mesh, meaning the resulting mesh after all
|
|
||||||
:doc:`Modifiers </modeling/modifiers/index>` have been calculated.
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
Use the operator to import ASCII or binary STL-files, you can select multiple files at once.
|
|
||||||
For exporting you can select multiple objects and they will be exported as a single STL-file.
|
|
||||||
You can select between ASCII/binary file format (binary is more compact).
|
|
||||||
You can also choose to enable or disable the modifiers during the export.
|
|
@ -1,66 +0,0 @@
|
|||||||
|
|
||||||
*******************************
|
|
||||||
Import & Export of Node Shaders
|
|
||||||
*******************************
|
|
||||||
|
|
||||||
While Blender now only supports the advanced node-based shading model for its materials,
|
|
||||||
most :abbr:`IO (Input/Output)` formats only support a basic shading model,
|
|
||||||
similar to the legacy fixed pipeline of old GPUs.
|
|
||||||
|
|
||||||
Blender features a way to convert between those, which any add-on can use, but it is currently pretty basic still.
|
|
||||||
Especially for exporting from Blender materials, the node system must follow some strict requirements.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Currently, only the :doc:`FBX </addons/import_export/scene_fbx>`
|
|
||||||
and the :doc:`3DS </addons/import_export/scene_3ds>` IO add-on uses this method.
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
|
|
||||||
The :doc:`glTF </addons/import_export/scene_gltf2>` format
|
|
||||||
uses a more detailed conversion to and from shader nodes.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
The wrapper is designed to be as symmetrical as possible
|
|
||||||
(i.e. it is expected to give reproducible results across several import/export cycles).
|
|
||||||
|
|
||||||
.. figure:: /images/addons_import-export_node-shaders-info_example.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
A typical setup of shader nodes that can be exported.
|
|
||||||
|
|
||||||
|
|
||||||
Supported Node Setup
|
|
||||||
====================
|
|
||||||
|
|
||||||
This is especially important for exporting, importing will simply re-generate a similar setup.
|
|
||||||
|
|
||||||
Note that the features listed below are those supported by the wrapper.
|
|
||||||
Each add-on may have its own way to adapt them to its material system, some may not be handled by it, etc.
|
|
||||||
|
|
||||||
Principled BSDF
|
|
||||||
The main shader must be a :doc:`Principled BSDF </render/shader_nodes/shader/principled>`.
|
|
||||||
Only parameters defined there, and textures linked to it, will be exported.
|
|
||||||
|
|
||||||
Currently handled parameters:
|
|
||||||
|
|
||||||
- Base color
|
|
||||||
- Specular intensity
|
|
||||||
- Specular tint
|
|
||||||
- Roughness
|
|
||||||
- Metallic
|
|
||||||
- IOR
|
|
||||||
- Transmission
|
|
||||||
- Emission
|
|
||||||
- Emission Strength
|
|
||||||
- Alpha
|
|
||||||
|
|
||||||
Normal Map
|
|
||||||
If linked to the Normal input of the Principled BSDF node,
|
|
||||||
the :doc:`Normal Map </render/shader_nodes/vector/normal_map>` node is also supported
|
|
||||||
(including its texture obviously).
|
|
||||||
|
|
||||||
Textures
|
|
||||||
Only :doc:`Image </render/shader_nodes/textures/image>` textures using a UV mapping are supported.
|
|
||||||
You may also use a :doc:`Mapping </render/shader_nodes/vector/mapping>` node to move/rotate/scale it.
|
|
@ -1,14 +0,0 @@
|
|||||||
|
|
||||||
***************
|
|
||||||
Import Palettes
|
|
||||||
***************
|
|
||||||
|
|
||||||
This add-on imports color palettes from Krita and Photoshop.
|
|
||||||
|
|
||||||
Todo.
|
|
||||||
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Import-Export
|
|
||||||
:Menu: :menuselection:`File --> Import Palettes`
|
|
@ -1,310 +0,0 @@
|
|||||||
|
|
||||||
***********
|
|
||||||
Paper Model
|
|
||||||
***********
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Import-Export
|
|
||||||
:Menu: :menuselection:`File --> Export --> Paper Model (.pdf/.svg)`
|
|
||||||
:Panel: :menuselection:`Properties --> Mesh --> Paper Model Islands`
|
|
||||||
:Menu: :menuselection:`Mesh --> Unfold`
|
|
||||||
|
|
||||||
This add-on generates a flat net of a given mesh.
|
|
||||||
It creates either PDF or SVG files suitable for direct printing and paper modeling.
|
|
||||||
The main goal is a maximal possible automation of the whole process.
|
|
||||||
Common tasks like baking the model's texture into the output document are also supported.
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
To avoid eventual issues, switch to Object Mode.
|
|
||||||
Then, select the mesh you want to export so that it is the active one.
|
|
||||||
If you want to get results quickly, just execute this add-on from the :menuselection:`File --> Export` menu.
|
|
||||||
It will ask for a file name and do everything else automatically.
|
|
||||||
All relevant settings are in the bottom left corner.
|
|
||||||
These are described in more detail below.
|
|
||||||
|
|
||||||
If you are unhappy with the generated net, you can edit it manually.
|
|
||||||
For this, you have to execute the *Unfold* tool first (available Mesh tab in the Properties).
|
|
||||||
Edges that will be cut in order to flatten the mesh must be marked as Edit Mode seams.
|
|
||||||
You can use *Clear Seam* and *Mark Seam* tools to organize them as you wish,
|
|
||||||
or use the helper button *Clear All Seams* in Object Mode to start from scratch.
|
|
||||||
When you export the model, it will use all the given seams and add some more cuts if necessary.
|
|
||||||
|
|
||||||
You can also call the *Unfold* tool just for a preview of the net.
|
|
||||||
It will list all islands of the produced net in the panel and if you enable so in the tool's settings,
|
|
||||||
it will also create a UV layout showing the islands.
|
|
||||||
Note that island positions are not calculated in this stage, so that they will all just lay on top of each other.
|
|
||||||
You can use Blender's *Pack Islands* tool to arrange them.
|
|
||||||
|
|
||||||
There are a few kinds of topology that are possible in Blender but not in paper reality:
|
|
||||||
|
|
||||||
- N-gon faces (everything except triangles) that are not perfectly flat.
|
|
||||||
- Zero-length edges (two vertices exactly in the same spot and connected by an edge)
|
|
||||||
- Zero-area faces (typically their vertices lie all in line)
|
|
||||||
|
|
||||||
If any of these cases is detected, the add-on will throw an error message and will not export.
|
|
||||||
The error message guides you how to fix the issues.
|
|
||||||
|
|
||||||
|
|
||||||
Exporting Textured Meshes
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
To export your model with a hand-painted texture, you have to unwrap the model, paint an image and
|
|
||||||
assign it to the model so that it has an effect during render.
|
|
||||||
You can use any tools you like for these tasks.
|
|
||||||
What the add-on does is simply that it uses baking in *Textures* mode.
|
|
||||||
|
|
||||||
Switch to Object Mode and deselect any objects except the one to be exported.
|
|
||||||
Then execute *Export Paper Model* and in the File Browser switch the *Textures* selector to *From Materials*.
|
|
||||||
|
|
||||||
If you choose to export an SVG file, you get several options how to attach the images.
|
|
||||||
All the options are explained in more detail `Properties`_.
|
|
||||||
|
|
||||||
The resulting texture does not depend on any scene settings except for the given material,
|
|
||||||
and on the other hand, all settings should be intact after doing the export.
|
|
||||||
|
|
||||||
|
|
||||||
How to Read the Net
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Most of the document's appearance can be customized during export (see below).
|
|
||||||
However, the default style is supposed to be familiar to paper modelers:
|
|
||||||
dashed lines represent folding outwards, dash-dotted lines inwards (i.e., to form concave shapes).
|
|
||||||
Boundary of each part of the net is rendered in solid lines.
|
|
||||||
Sticking tabs have a grayish fill color to be distinguishable from other parts of the net.
|
|
||||||
|
|
||||||
A label is written on a tab when its target edge might not be clear.
|
|
||||||
Specifically, the label is omitted if the edge will be stuck to the same place as its both neighbors or
|
|
||||||
if one of these is the target itself.
|
|
||||||
The format of labels is ``island_abbreviation: edge_number``.
|
|
||||||
Island abbreviation is written in square brackets under the corresponding island, before to its full-length name.
|
|
||||||
Edge number is written as a triangle arrow next to that target edge, outside the net.
|
|
||||||
|
|
||||||
If *Create Tabs* is disabled, the same format is used for labels along each of the related edges, inside the net.
|
|
||||||
This method is designed for modeling from hard and/or thick materials, for which sticking tabs are quite pointless.
|
|
||||||
If *Create Numbers* is disabled, the labels are omitted; this may be necessary for highly detailed models.
|
|
||||||
|
|
||||||
|
|
||||||
How to Print the Net
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
The PDF file can be directly printed almost anywhere.
|
|
||||||
However, things become difficult if you need to change the net by hand.
|
|
||||||
|
|
||||||
If you select the SVG format, you can edit the exported files in a vector graphics editor such as Inkscape.
|
|
||||||
One reason why you may want to do is to pack the islands manually and save paper.
|
|
||||||
Another reason is that the tabs and numbers often make a lot of clutter around the model and
|
|
||||||
it can be helpful to remove some of them by hand.
|
|
||||||
|
|
||||||
If printed document gets cropped around the page borders,
|
|
||||||
it means you should increase the *Margin* setting during export.
|
|
||||||
|
|
||||||
|
|
||||||
Placing Marks on the Net
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
Edges with a Freestyle Mark (:menuselection:`Edge --> Mark Freestyle Edge`) will be highlighted
|
|
||||||
in the net with a user-defined color and drawing style.
|
|
||||||
This is helpful especially when used on flat edges, which would normally not be drawn at all.
|
|
||||||
If you draw a shape with the *Knife* tool and then mark some of the edges as Freestyle ones,
|
|
||||||
you can make a simple line drawing on the model.
|
|
||||||
|
|
||||||
When used on folding edges, the highlight will be drawn below the folding line.
|
|
||||||
So you will probably have to change the *Freestyle Lines* drawing style to make it wider and not black,
|
|
||||||
so that the lines stay distinguishable.
|
|
||||||
|
|
||||||
|
|
||||||
Settings
|
|
||||||
========
|
|
||||||
|
|
||||||
Paper Model Islands
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
The *Paper Model Islands* tab in the Mesh tab offers two buttons for calling
|
|
||||||
the *Unfold* and *Export Paper Model* tools conveniently.
|
|
||||||
It also offers buttons for marking and clearing seams, depending on the context,
|
|
||||||
and the experimental functionality *Limit Island Size*.
|
|
||||||
|
|
||||||
Once the *Unfold* tool is called, the model is split into flattened parts and
|
|
||||||
these are presented in a list called *Islands* below.
|
|
||||||
The list allows you to change the label of each island.
|
|
||||||
If *Create Numbers* is enabled during export, abbreviations of these labels will be used to
|
|
||||||
describe which tab should be stuck to which island.
|
|
||||||
After running the *Unfold* tool, these island labels are recalculated so
|
|
||||||
that as many faces as possible remain under the same label.
|
|
||||||
|
|
||||||
If you select an island and enable the *Highlight Selected Island* button
|
|
||||||
(and the mesh you unfolded is the active one), the island will be highlighted in orange in the 3D Viewport.
|
|
||||||
Using the slider below, you can change the opacity of the highlight.
|
|
||||||
|
|
||||||
|
|
||||||
Unfold
|
|
||||||
^^^^^^
|
|
||||||
|
|
||||||
The first option from top is *Create UV map*.
|
|
||||||
If enabled, a new UV map will be generated to show all the islands.
|
|
||||||
However, their positions are not calculated yet at this time of the export process,
|
|
||||||
so they are all just placed in the bottom left corner.
|
|
||||||
This option is useful when editing the cutting lines by hand.
|
|
||||||
You can use the *Unwrap* tool and get a similar result.
|
|
||||||
|
|
||||||
The tool has three sliders, which all adjust edge cutting priority
|
|
||||||
(namely: *Face Angle Convex*, *Face Angle Concave*, *Edge Length*).
|
|
||||||
A high value gives an edge with the corresponding property a higher chance to be cut.
|
|
||||||
Because of that, it is usually better to set Edge Length to a negative value, letting long edges stay connected.
|
|
||||||
Randomly modifying these values may often help to reduce the count of islands in the net.
|
|
||||||
For information about the meaning of these values, read the Unfold section in the `Technical Details`_.
|
|
||||||
|
|
||||||
|
|
||||||
Properties
|
|
||||||
----------
|
|
||||||
|
|
||||||
When the export is initiated, the add-on silently unfolds the mesh (without marking any seams) and
|
|
||||||
divides all faces into islands, which may take a few seconds for complex meshes.
|
|
||||||
Then, a File Browser is displayed. With SVG format, the file name you choose will get a ``_page<number>.svg`` suffix,
|
|
||||||
even if only one page was needed.
|
|
||||||
|
|
||||||
Settings of this exporter are presented in the bottom left corner of the File Browser.
|
|
||||||
|
|
||||||
Preset
|
|
||||||
The *Preset* menu allows to quickly save and recall all the settings below it,
|
|
||||||
including model scale and color style.
|
|
||||||
Model Scale
|
|
||||||
Model Scale can be used to scale the whole net.
|
|
||||||
If you want to have a model in 1:72 scale, just set this to 72.
|
|
||||||
This is an important option also because the add-on often produces islands bigger than the page.
|
|
||||||
|
|
||||||
By default, this value is set so that even the biggest island fits onto the page.
|
|
||||||
If set to one, the real model will have the same dimensions as the virtual one.
|
|
||||||
Create UV Map
|
|
||||||
Has a similar effect as the similar named option of the *Unfold* tool, but not the same.
|
|
||||||
It will create a new UV map that exactly reflects the placement of all the model's islands.
|
|
||||||
Unfortunately, islands from all pages are placed on top of each other,
|
|
||||||
and it is quite impossible to tell them apart.
|
|
||||||
|
|
||||||
|
|
||||||
Document Settings
|
|
||||||
^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Settings closely related to the format of the output document are in the Document Settings subpanel.
|
|
||||||
|
|
||||||
Format
|
|
||||||
First selector switches between PDF and SVG document formats.
|
|
||||||
Page Size
|
|
||||||
Another selector below allows you to choose one of the most common paper sizes quickly.
|
|
||||||
If you need something else, choose *User Defined* and set the dimensions manually.
|
|
||||||
Page Margin
|
|
||||||
Makes it easier to export models in exact scale (if you set the *Model Scale* slider to 1).
|
|
||||||
|
|
||||||
You can set it to the width of the non-printable border of your printer,
|
|
||||||
in order for the resulting SVG document to be printable without further scaling. However,
|
|
||||||
exporting in-scale models is still difficult, as the add-on does not automatically split oversize islands.
|
|
||||||
DPI
|
|
||||||
The next value is *DPI*, which defines the overall resolution of the net.
|
|
||||||
That is, not only resolution of baked images (if any), but also line thickness.
|
|
||||||
|
|
||||||
Create Tabs
|
|
||||||
Controls if the sticking tabs are created at all.
|
|
||||||
For example, uncheck this if you want to stick the model using tape.
|
|
||||||
Create Numbers
|
|
||||||
Adds numbers to some edge pairs that are supposed to be stuck together.
|
|
||||||
These numbers are excluded if the correct destination is easy to guess from the neighboring edges.
|
|
||||||
In more complex models, they may overlap a lot with each other and with the net itself.
|
|
||||||
Disabling this option may help solve such issues.
|
|
||||||
If *Create Tabs* is disabled, the numbers will be rendered inside of the net.
|
|
||||||
Tabs and Text Size
|
|
||||||
Sets the maximal width of the sticking tabs around islands.
|
|
||||||
The actual size of each tab is adjusted to be at most half the length of the corresponding edge.
|
|
||||||
In some special cases, tabs are made not to overlap with real faces, but it does not work reliably yet.
|
|
||||||
If *Create Tabs* is disabled, this slider controls the size of numbers on edges.
|
|
||||||
Hidden Edge Angle
|
|
||||||
Edges with folding angle below Hidden Edge Angle will not be drawn at all.
|
|
||||||
Increasing this value may produce nicer results when exporting smooth surfaces, such as cylinders:
|
|
||||||
it will spare a lot of unnecessary lines.
|
|
||||||
Decreasing it could possibly help in some special cases.
|
|
||||||
Textures
|
|
||||||
The *Textures* select menu lists options for exporting textured meshes.
|
|
||||||
|
|
||||||
No Texture
|
|
||||||
Just creates the net on a white background (this used to be called "Pure Net").
|
|
||||||
The remaining options invoke texture baking and therefore are noticeable slower.
|
|
||||||
From Materials
|
|
||||||
Exports the image that is assigned to each of the model's faces in their active material.
|
|
||||||
Full Render, Selected to Active
|
|
||||||
Correspond to the respective *Bake Type* options.
|
|
||||||
They both render all the materials and illumination: *Full Render* renders the model only,
|
|
||||||
while *Selected to Active* projects other nearby selected objects onto the model.
|
|
||||||
It may be helpful for creating patterns such as fur or leaves procedurally.
|
|
||||||
Images
|
|
||||||
The *Images* select menu allows you to choose how to include the baked images in the SVG file.
|
|
||||||
If you want to edit the layout of the net in an SVG editor, choose either *Linked* or *Embedded*.
|
|
||||||
|
|
||||||
Embedded
|
|
||||||
Creates standalone SVG files, making them bigger but portable.
|
|
||||||
Single Linked
|
|
||||||
Remains mostly for compatibility reasons.
|
|
||||||
|
|
||||||
|
|
||||||
Colors and Style
|
|
||||||
^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Options related to the drawing style are packed in the *Colors and Style* subpanel.
|
|
||||||
They should be quite self-explanatory.
|
|
||||||
|
|
||||||
|
|
||||||
Technical Details
|
|
||||||
=================
|
|
||||||
|
|
||||||
Unfold
|
|
||||||
------
|
|
||||||
|
|
||||||
Firstly, the algorithm assigns every edge a "priority", depending on its angle and length.
|
|
||||||
Edges with higher priority will more probably be cut apart in the final net.
|
|
||||||
Shorter edges have higher priority (they are easier to glue on) and sharper angles too
|
|
||||||
(that makes the net easier to visually understand).
|
|
||||||
|
|
||||||
Faces form a concave angle if their normals are pointing against each other.
|
|
||||||
Such angles have even a bit higher priority which is supposed to help for typical models.
|
|
||||||
If some face normals are flipped, the algorithm always assumes the angle between them be convex.
|
|
||||||
|
|
||||||
If more than two faces are connected by an edge, two of them are designated as the main ones and
|
|
||||||
all others will have to be glued. The main faces are chosen so that they form the smallest angle possible.
|
|
||||||
|
|
||||||
The actual priority effect of angle versus length may change the resulting net very much.
|
|
||||||
The default values were chosen by trial and error for some basic models, but may be a bad choice for others.
|
|
||||||
If you want to tweak them, the *Unfold* tool allows you to: they are the tool's three only settings.
|
|
||||||
|
|
||||||
The cutting algorithm begins with all faces separated and tries to connect them to form bigger islands,
|
|
||||||
ordered by the connecting edge's priority. If some of the faces of the resulting island would overlap,
|
|
||||||
the operation is canceled and the algorithm continues with another edge.
|
|
||||||
If some vertices or edges end up close enough to each other, they are merged.
|
|
||||||
During this process, each edge is visited exactly once.
|
|
||||||
|
|
||||||
The overlap check is basically the Bentley-Ottmann algorithm for line segment intersection,
|
|
||||||
applied to the boundary of the resulting island. To handle some special cases,
|
|
||||||
the algorithm automatically switches between a slightly quicker and a more robust version of itself.
|
|
||||||
Another check is applied to detect if the boundary crosses itself in just a vertex of the resulting island --
|
|
||||||
such cases have to be tested explicitly as they need not cause any intersecting line segments.
|
|
||||||
|
|
||||||
|
|
||||||
Positioning the Nets on Pages
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
Because the nets are not consisting only of the real faces, but also of the gluing tabs around,
|
|
||||||
they cannot be positioned by the internal Blender tool (*Pack Islands*).
|
|
||||||
Therefore, a standalone algorithm had to be written.
|
|
||||||
|
|
||||||
For a great simplification of the process, all nets are packed into (smallest possible) bounding rectangles.
|
|
||||||
These are then ordered by size (largest first) and in this order the algorithm tries to position them on a page.
|
|
||||||
The positions tested for the lower left corner are given by an n × n grid resulting from
|
|
||||||
all the corners of islands already positioned. A position is accepted or rejected by checking overlaps
|
|
||||||
with each of the islands' bounding rectangles.
|
|
||||||
|
|
||||||
When there are any islands left that could not be placed onto the page, a new free page is created.
|
|
||||||
|
|
||||||
This algorithm should work reliably and quite fast.
|
|
||||||
However, it is clearly inefficient if the bounding rectangles contain much free space.
|
|
||||||
Also, the packing depends heavily on the order in which the islands are processed, which is in no way optimal.
|
|
@ -1,51 +0,0 @@
|
|||||||
|
|
||||||
****************
|
|
||||||
Pointcache (pc2)
|
|
||||||
****************
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Import-Export
|
|
||||||
:Menu: :menuselection:`File --> Export --> Pointcache (.pc2)`
|
|
||||||
|
|
||||||
This exporter produces pointcache files. These can be used to transfer animated meshes to external applications.
|
|
||||||
Only the vertex positions at the samples are saved.
|
|
||||||
|
|
||||||
The exporter can export meshes, surfaced curves, surfaces and font objects. They are all treated as meshes.
|
|
||||||
The base object has to be converted into a mesh before exporting it also.
|
|
||||||
|
|
||||||
|
|
||||||
Properties
|
|
||||||
==========
|
|
||||||
|
|
||||||
Convert to Y-Up
|
|
||||||
Rotates the mesh data -90 degrees around X.
|
|
||||||
Export into World Space
|
|
||||||
Transform the mesh data into world space.
|
|
||||||
Apply Modifiers
|
|
||||||
Export objects using the evaluated mesh, meaning the resulting mesh after all
|
|
||||||
:doc:`Modifiers </modeling/modifiers/index>` have been calculated.
|
|
||||||
Start Frame
|
|
||||||
First frame to export.
|
|
||||||
End Frame
|
|
||||||
Export up to this frame.
|
|
||||||
Sampling
|
|
||||||
The sample rate. 1 means one sample per frame. 0.1 means 10 samples per frame,
|
|
||||||
and 10 means one sample every 10 frames.
|
|
||||||
|
|
||||||
|
|
||||||
Importing
|
|
||||||
=========
|
|
||||||
|
|
||||||
The use of these files depends on the importing application.
|
|
||||||
In general the object has to be first exported normally (OBJ export or the like) and
|
|
||||||
then the pointcache data can be attached to the object.
|
|
||||||
|
|
||||||
- In 3ds Max there is a modifier which can directly read pc2 files.
|
|
||||||
- In Maya the pc2 cache has to be converted into Maya's geometry cache format first.
|
|
||||||
The MEL command for that is this:
|
|
||||||
|
|
||||||
.. code-block:: sh
|
|
||||||
|
|
||||||
cacheFile -pc2 1 -pcf "<insert filepath of source>" -f "<insert target filename w/o extension>"
|
|
||||||
-dir "<insert directory path for target>" -format "OneFile";
|
|
@ -1,245 +0,0 @@
|
|||||||
|
|
||||||
************
|
|
||||||
Autodesk 3DS
|
|
||||||
************
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Import-Export
|
|
||||||
:Menu: :menuselection:`File --> Import/Export --> 3D Studio (.3ds)`
|
|
||||||
:Version: 2.4.9
|
|
||||||
:Blender: 4.1
|
|
||||||
:Authors: Bob Holcomb, Campbell Barton, Sebastian Schrand
|
|
||||||
:Maintainer: Sebastian Sille (NRGSille)
|
|
||||||
:Support Level: Community
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
This add-on can be used to import and export objects to/from the 3DS Studio file format,
|
|
||||||
the native file format of the 3D Studio DOS releases R1 to R4.
|
|
||||||
This format is one of the first 3D file formats beside OBJ
|
|
||||||
and was commonly used to exchange files from Autodesk\ :sup:`®` 3ds MAX\ :sup:`®`.
|
|
||||||
|
|
||||||
|
|
||||||
Properties
|
|
||||||
==========
|
|
||||||
|
|
||||||
Import
|
|
||||||
------
|
|
||||||
|
|
||||||
Include
|
|
||||||
^^^^^^^
|
|
||||||
|
|
||||||
Image Search
|
|
||||||
This enables a recursive file search if an image file can't be found.
|
|
||||||
|
|
||||||
Object Filter
|
|
||||||
The kind of objects to be imported, checked object types will be imported and unchecked not.
|
|
||||||
Hold shift while selecting to check multiple object types.
|
|
||||||
|
|
||||||
Animation
|
|
||||||
Reads the keyframe tracks from a 3ds file and transforms the objects to the data which was found.
|
|
||||||
Usually only one frame is found in static scenes, it will be imported to the timeline.
|
|
||||||
If the 3ds scene is animated, the complete animation will be imported to the timeline.
|
|
||||||
|
|
||||||
Cursor Origin
|
|
||||||
Reads the 3D cursor location chunk if one is found. Almost all valid 3ds files including this chunk,
|
|
||||||
but with the location set to zero.
|
|
||||||
|
|
||||||
Transform
|
|
||||||
^^^^^^^^^
|
|
||||||
|
|
||||||
Constrain Size
|
|
||||||
Scales the imported objects by 10 scene units until it reaches the size defined here.
|
|
||||||
To disable set the *Size Constraint* to zero.
|
|
||||||
|
|
||||||
Scene Units
|
|
||||||
Converts the scale of all objects to the scene unit length settings. Blender uses meter scale,
|
|
||||||
but many 3ds files have millimeter unit scale, especially the ones exported from CAD applications.
|
|
||||||
If millimeters are expected to import, set the scene unit length settings to *Millimeters*.
|
|
||||||
The meshes can also be converted to imperial unit measures if this is enabled in the scene units.
|
|
||||||
|
|
||||||
Pivot Origin
|
|
||||||
Moves all geometry to the pivot origin. Enable this option for transformed pivot centers to move
|
|
||||||
the geometry back to its origin.
|
|
||||||
|
|
||||||
Apply Transform
|
|
||||||
Applies object transformations after importing. If unchecked, all transformations will be cleared
|
|
||||||
and the objects will stay at its origins.
|
|
||||||
|
|
||||||
World Space
|
|
||||||
Use world matrix instead of local matrix to transform the objects.
|
|
||||||
This is useful for older 3ds files from 3D Studio DOS which only used world space to transform the objects.
|
|
||||||
It is also useful if the object was exported without apply transform.
|
|
||||||
|
|
||||||
Forward / Up Axis
|
|
||||||
Since many applications use a different axis for 'Up',
|
|
||||||
these are axis conversions for 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, its common for applications to use Y as the up axis, in that case -Z forward, Y up is needed.
|
|
||||||
|
|
||||||
|
|
||||||
Export
|
|
||||||
------
|
|
||||||
|
|
||||||
Include
|
|
||||||
^^^^^^^
|
|
||||||
|
|
||||||
Selection
|
|
||||||
When checked, only selected objects are exported. Otherwise export all objects in the scene.
|
|
||||||
|
|
||||||
Object Filter
|
|
||||||
The kind of objects to be exported, checked object types will be exported and unchecked not.
|
|
||||||
Hold shift while selecting to check multiple object types.
|
|
||||||
|
|
||||||
Hierarchy
|
|
||||||
Preserves the object hierarchy if no keyframe section is written. Blender can read the hierarchy chunks
|
|
||||||
but most importers do not use them, therefore only recommended if the file is used in Blender only.
|
|
||||||
|
|
||||||
Animation
|
|
||||||
Writes the keyframe section of a 3ds file and exports the animation if an action was found.
|
|
||||||
The animation can be imported the same way, un-check if any importer crashes,
|
|
||||||
not every application can handle the keyframe section.
|
|
||||||
|
|
||||||
Cursor Origin
|
|
||||||
Saves the current 3D cursor location of the scene to a chunk, the importer can read the location,
|
|
||||||
if the option is enabled.
|
|
||||||
|
|
||||||
Transform
|
|
||||||
^^^^^^^^^
|
|
||||||
|
|
||||||
Scale Factor
|
|
||||||
The global scale factor for export. There are no unit scale definitions in a 3ds file,
|
|
||||||
only the float values are stored. Blender will use meters for export but many applications,
|
|
||||||
like 3ds MAX\ :sup:`®`, are using millimeters. This option defines the scale factor to use for export.
|
|
||||||
If millimeters are desired, the scale factor has to be setted to 1000.
|
|
||||||
|
|
||||||
Scene Units
|
|
||||||
Takes the scene unit length settings into account to export the real size of the objects.
|
|
||||||
If the settings are millimeters, the exported scene will be scaled up since Blender uses meters for unit scale.
|
|
||||||
Also imperial unit measures are supported, the exporter will convert the mesh to the selected scene unit.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
Materials
|
|
||||||
=========
|
|
||||||
|
|
||||||
Materials in 3ds are defined in various color and percent chunks which can include
|
|
||||||
either integer percent and 24bit color values or float color and percent values,
|
|
||||||
both can be read by the importer and will be converted to blender values.
|
|
||||||
The exporter uses the integer values, since this is used from 3ds version 3 and above.
|
|
||||||
The material definitions which Blender can use are the following:
|
|
||||||
|
|
||||||
- 3ds Diffuse Color <-> blender Base Color
|
|
||||||
- 3ds Specular Color <-> blender Specular Tint
|
|
||||||
- 3ds Ambient Color <-> blender Emission Color
|
|
||||||
- 3ds Mat Shininess <-> blender Roughness inverted
|
|
||||||
- 3ds Mat Shin2 <-> blender Specular Intensity
|
|
||||||
- 3ds Mat Shin3 <-> blender Metallic
|
|
||||||
- 3ds Mat Opacity <-> blender Alpha inverted
|
|
||||||
- 3ds Mat TransFall <-> blender Transmission
|
|
||||||
- 3ds Mat RefBlur <-> blender Coat Weight
|
|
||||||
- 3ds Mat TexBlur <-> blender Sheen Weight
|
|
||||||
- 3ds Mat Bump PCT <-> blender Normal-map Strength
|
|
||||||
- 3ds Self Illumination PCT <-> blender Emission Strength
|
|
||||||
|
|
||||||
|
|
||||||
Textures
|
|
||||||
--------
|
|
||||||
|
|
||||||
Each 3ds material can include different texture mappings,
|
|
||||||
which are all imported to Blender material nodes including texture coordinates.
|
|
||||||
The 3ds exporter basically takes the images and coordinates,
|
|
||||||
which are directly connected to the Principled BSDF shader,
|
|
||||||
if an image is connected to a color-mix shader, it will exported as secondary texture.
|
|
||||||
Shininess maps to roughness and opacity to the alpha channel,
|
|
||||||
they must be color inverted afterwards to match with Blender definition.
|
|
||||||
The material mappings are defined as following:
|
|
||||||
|
|
||||||
- 3ds Diffuse Map <-> blender Base Color Texture
|
|
||||||
- 3ds Specular Map <-> blender Specular Tint Texture
|
|
||||||
- 3ds Shininess Map <-> blender Roughness Texture
|
|
||||||
- 3ds Reflection Map <-> blender Metallic Texture
|
|
||||||
- 3ds Opacity Map <-> blender Alpha Texture
|
|
||||||
- 3ds Self Illumination Map <-> blender Emission Texture
|
|
||||||
- 3ds Bump Map <-> blender Normal Map (tangent space)
|
|
||||||
- 3ds Tex2 Map <-> blender Color Texture (connect to mix-shader)
|
|
||||||
|
|
||||||
.. figure:: /images/addons_io_3ds_shader-nodes.jpg
|
|
||||||
|
|
||||||
An example of a 3ds file with all image maps imported.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
All texture filenames are limited to the 8.3 DOS format,
|
|
||||||
means that the name of the image texture can only be 8 characters long, others will be stripped away.
|
|
||||||
|
|
||||||
|
|
||||||
Meshes
|
|
||||||
======
|
|
||||||
|
|
||||||
Meshes are made of triangles only, no quads are supported,
|
|
||||||
3ds Studio uses edge visibility flags to hide and show edges, many 3ds files use them to mark the quads.
|
|
||||||
The Blender 3ds importer and exporter will use those flags to mark edges sharp,
|
|
||||||
this can be used to convert the triangles back to quads.
|
|
||||||
The importer can read the smooth-chunk and shades a face smooth if it belongs to a smooth-group,
|
|
||||||
the exporter creates a smooth chunk if the mesh contains any smooth faces.
|
|
||||||
3ds only supports one pair of UV coordinates per vertex. If any vertex has more UVs, it will be duplicated.
|
|
||||||
|
|
||||||
|
|
||||||
Ambient
|
|
||||||
=======
|
|
||||||
|
|
||||||
If ambient chunks are found by the importer, a new world with the ambient color will be created. Ambient keyframes
|
|
||||||
will be imported to the timeline and background color to the world background node. If a background image is found, it
|
|
||||||
will be connected to the background node and if fog chunks are found, volume shaders with the fog settings will be
|
|
||||||
connected to the world output. If ambient is animated, an ambient node will be created and connected to a mixshader.
|
|
||||||
Gradient chunks will be imported to a color ramp node. The exporter can export these settings and will also accept an
|
|
||||||
add-shader instead of a mixshader, images are taken from the background input. The exporter creates an ambient chunk
|
|
||||||
with the color of the active world and creates background chunks with color or image if the nodes are connected to
|
|
||||||
world output or mix and add shader. Ambient color animations can primary be exported from the world color. If nodes
|
|
||||||
are used, the exporter checks the RGB input node and the emission shader for color animations and writes an ambient
|
|
||||||
track node chunk. If a color ramp node is connected to background or colormix node and includes at least three colors,
|
|
||||||
the exporter will create a gradient chunk.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_io_3ds_world-nodes.jpg
|
|
||||||
|
|
||||||
An example of a 3ds file with all world nodes imported.
|
|
||||||
|
|
||||||
|
|
||||||
Lights
|
|
||||||
======
|
|
||||||
|
|
||||||
Lights in 3DS Studio can be a point source or a spotlight,
|
|
||||||
they use color and energy data and a target for the spotlight.
|
|
||||||
The color and position of a light can be animated, the spotlight additionally has a target, beam angle and hotspot,
|
|
||||||
wich can be animated. The lights and animation can be imported and exported, the spotlight can contain a projection
|
|
||||||
bitmap, if an image is connected to a emission or colormixer, it will be exported. The x/y scale of a spotlight will
|
|
||||||
be exported in an aspect ratio chunk, the importer can calculate it back to x/y scale. The target data is calculated
|
|
||||||
to Z and X axis angle for pan and tilt, Y is used for the roll angle.
|
|
||||||
|
|
||||||
|
|
||||||
Cameras
|
|
||||||
=======
|
|
||||||
|
|
||||||
Cameras can be imported and exported to 3ds files.
|
|
||||||
They can be animated with field of view (converted to focal length), position and target data,
|
|
||||||
calculated to X and Z axis angle for pitch and yaw, Y is used for the roll angle.
|
|
||||||
|
|
||||||
|
|
||||||
Keyframes
|
|
||||||
=========
|
|
||||||
|
|
||||||
The importer can read the keyframes, they will be added to the timeline.
|
|
||||||
Most animations will play, but the transformations may not be correct,
|
|
||||||
some axes or rotations can be inverted. It depends on how it was exported from other applications.
|
|
||||||
The exporter can write the keyframes of the timeline to an animated 3ds file.
|
|
@ -1,226 +0,0 @@
|
|||||||
|
|
||||||
***********
|
|
||||||
AutoCAD DXF
|
|
||||||
***********
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Import-Export
|
|
||||||
:Menu: :menuselection:`File --> Import/Export --> AutoCAD DXF (.dxf)`
|
|
||||||
|
|
||||||
|
|
||||||
.. _dxf-import:
|
|
||||||
|
|
||||||
Import
|
|
||||||
======
|
|
||||||
|
|
||||||
DXF layers are reflected as Blender groups. This importer uses a general purpose DXF library called "dxfgrabber".
|
|
||||||
|
|
||||||
|
|
||||||
DXF Type Mapping
|
|
||||||
----------------
|
|
||||||
|
|
||||||
To be as non-destructive as possible the importer aims to map as many DXF types to
|
|
||||||
Blender curves as possible.
|
|
||||||
|
|
||||||
|
|
||||||
DXF to Curves
|
|
||||||
^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
- ``LINE`` as ``POLYLINE`` curve (with the option to merge connecting lines).
|
|
||||||
- ``(LW)POLYLINE``, ``(LW)POLYGON`` as ``POLYLINE`` curve if they have no bulges else as ``BEZIER`` curve.
|
|
||||||
- ``ARC``\ s, ``CIRCLE``\ s and ``ELLIPSE``\ s as ``BEZIER`` curves.
|
|
||||||
- ``HELIX``\ es (3D) as ``BEZIER`` curves.
|
|
||||||
|
|
||||||
|
|
||||||
DXF to Meshes
|
|
||||||
^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
- ``MESH`` is mapped to a mesh object with a Subdivision Surface modifier, including the edge crease.
|
|
||||||
- ``POLYFACE``\ s and ``POLYMESH``\ es are imported to a mesh object.
|
|
||||||
- ``3DFACE`` \ s, ``SOLID`` \ s, ``POINT`` \ s are imported into one combined mesh object
|
|
||||||
per layer called ``layername_3Dfaces``.
|
|
||||||
|
|
||||||
|
|
||||||
Missing DXF Types
|
|
||||||
^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
- Hatches
|
|
||||||
- Leader
|
|
||||||
|
|
||||||
|
|
||||||
Properties
|
|
||||||
----------
|
|
||||||
|
|
||||||
Merge Options
|
|
||||||
^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Blocks As
|
|
||||||
DXF Blocks can be imported as linked objects or group instances.
|
|
||||||
Linked objects use parenting for DXF sub-blocks (blocks in blocks).
|
|
||||||
|
|
||||||
Parent Blocks to Bounding Boxes
|
|
||||||
Draw a bounding box around blocks.
|
|
||||||
Merged Objects
|
|
||||||
Since Blender (v2.71) is pretty slow at adding objects the user might want to
|
|
||||||
merge similar DXF geometry to one object.
|
|
||||||
|
|
||||||
By Layer
|
|
||||||
Produces one object per layer; if there is mesh, curve, lamp, text data on one layer
|
|
||||||
one object per layer and per Blender object.
|
|
||||||
By Layer and DXF Type
|
|
||||||
The second not only differentiates between Blender data types but also DXF types,
|
|
||||||
such as ``LWPOLYLINE`` and ``POLYLINE``.
|
|
||||||
By Layer and Closed No-bulge Polygons
|
|
||||||
Closed polylines with no bulge, that is no curved edges, can be merged to one single mesh.
|
|
||||||
This makes sense when the DXF polylines have an extrusion and/or an elevation attribute,
|
|
||||||
which basically describes a location/rotation/scale transformation.
|
|
||||||
If this merge option is chosen, line thickness settings will be ignored/disabled.
|
|
||||||
By Layer and DXF-Type and Blocks
|
|
||||||
For DXF files with a block being referenced many times, this option allows to insert the same block many times
|
|
||||||
with one instanced-face object instead of with one object for each time the block needs to be inserted.
|
|
||||||
Unfortunately this works only for block inserts that are uniformly scaled.
|
|
||||||
Non-uniformly scaled block inserts are being imported as defined in *Blocks As*.
|
|
||||||
Combine ``LINE`` Entities to Polygons
|
|
||||||
Separated lines in DXF might be merged to one consecutive Blender poly curve.
|
|
||||||
Similar to *Remove Doubles* but for curves.
|
|
||||||
|
|
||||||
|
|
||||||
Line Thickness and Width
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Represent Line Thickness/Width
|
|
||||||
DXF line attributes *thickness* and *width* have an effect on line in Z and X/Y direction respectively.
|
|
||||||
A straight line might be turned to a cube by its attributes for instance.
|
|
||||||
Therefore, in Blender these attributes are represented with curve extrusion, bevel and taper objects.
|
|
||||||
Merge by Attributes
|
|
||||||
If both *Merged Objects* and *Represent Line Thickness/Width* are activated
|
|
||||||
the object merging needs to be extended to separate all lines width different thickness and width.
|
|
||||||
With *Merge by Attributes* this separation option is also available without
|
|
||||||
the actual representation of line thickness and width.
|
|
||||||
|
|
||||||
|
|
||||||
Optional Objects
|
|
||||||
^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Import ``TEXT``
|
|
||||||
(``TEXT``, ``MTEXT``)
|
|
||||||
Import ``LIGHT``
|
|
||||||
Including support for AutoCAD colors.
|
|
||||||
Export ``ACIS`` Entities
|
|
||||||
Export NURBS 3D geometry (``BODY``, ``REGION``, ``PLANESURFACE``, ``SURFACE``, ``3DSOLID``) to ACIS-Sat files,
|
|
||||||
since this is the format AutoCAD stores NURBS to DXF.
|
|
||||||
You are going to be notified about the amount of stored ``.sat``/``.sab`` files.
|
|
||||||
|
|
||||||
|
|
||||||
View Options
|
|
||||||
^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Display Groups in Outliner(s)
|
|
||||||
Switch the Outliner display mode to ``GROUPS`` (DXF layers are mapped to groups).
|
|
||||||
Import DXF File to a New Scene
|
|
||||||
Todo.
|
|
||||||
Center Geometry to Scene
|
|
||||||
Center the imported geometry to the center of the scene;
|
|
||||||
the offset information is stored as a custom property to the scene.
|
|
||||||
|
|
||||||
|
|
||||||
Georeferencing
|
|
||||||
^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Important: DXF files do not store any information about
|
|
||||||
the coordinate system / spherical projection of its coordinates.
|
|
||||||
Best practice is to know the coordinate system for your specific DXF file and
|
|
||||||
enter this information in the DXF importer interface as follows:
|
|
||||||
|
|
||||||
Pyproj
|
|
||||||
Installation: Download (`Windows <https://github.com/pyproj4/pyproj>`__,
|
|
||||||
macOS) Pyproj and copy it to
|
|
||||||
|
|
||||||
.. parsed-literal:: AppData/ApplicationSupport Folder/Blender/|BLENDER_VERSION|/scripts/modules/.
|
|
||||||
|
|
||||||
In case you need to compile your own binary refer to
|
|
||||||
`this post <https://blenderartists.org/t/dxf-importer/597868/47>`__
|
|
||||||
on Blender Artists.
|
|
||||||
|
|
||||||
Pyproj is a Python wrapper to the PROJ library, a well-known C library used to
|
|
||||||
convert coordinates between different coordinate systems.
|
|
||||||
Open source GIS libraries such as PROJ are used directly or indirectly by many authorities and
|
|
||||||
therefore can be considered well-maintained.
|
|
||||||
|
|
||||||
If Pyproj is available the DXF importer shows a selection of national coordinate systems
|
|
||||||
but lets the user also to enter a custom EPSG / SRID code.
|
|
||||||
It also stores the SRID as a custom property to the Blender scene.
|
|
||||||
If a scene has already such an SRID property the coordinates are being converted from
|
|
||||||
your DXF file to target coordinate system and therefore you **must** specify an SRID for the DXF file.
|
|
||||||
If no SRID custom property is available the scene SRID is by default the same as the DXF SRID.
|
|
||||||
No Pyproj
|
|
||||||
In case Pyproj is not available the DXF importer will only use its built-in lat/lon to X/Y converter.
|
|
||||||
For conversion the "transverse Mercator" projection is applied that inputs a lat/lon coordinate to be used
|
|
||||||
as the center of the projection. The lat/lon coordinate is being added to your scene as a custom property.
|
|
||||||
Subsequent imports will convert any lat/lon coordinates to the same georeference.
|
|
||||||
|
|
||||||
Important: So far only lat/lon to X/Y conversion is supported.
|
|
||||||
If you have a DXF file with Euclidean coordinates that refer to another lat/lon center
|
|
||||||
the conversion is not (yet) supported.
|
|
||||||
|
|
||||||
Rules of thumb for choosing an SRID
|
|
||||||
if you have your data from OpenStreetMap or some similar GIS service website and
|
|
||||||
exported it with QGIS or ArcGIS the coordinates are most likely in lat/lon then use WGS84 as
|
|
||||||
your SRID with Pyproj or "spherical" if Pyproj is not available.
|
|
||||||
For other DXF vector maps it's very likely that they use local / national coordinate systems.
|
|
||||||
|
|
||||||
Open the DXF with a text editor (it has many thousands of lines) and
|
|
||||||
make an educated guess looking at some coordinates.
|
|
||||||
DXF works with "group codes", a name Autodesk invented for "key" as in key/value pairs.
|
|
||||||
X has group code 10, Y has 20, Z has 30. If you find a pattern like:
|
|
||||||
|
|
||||||
.. code-block:: none
|
|
||||||
|
|
||||||
10, newline, whitespace, whitespace, NUMBER, newline,
|
|
||||||
20, newline, whitespace, whitespace, NUMBER, newline,
|
|
||||||
30, newline, whitespace, whitespace, NUMBER
|
|
||||||
|
|
||||||
then ``NUMBER`` will be most likely your coordinates.
|
|
||||||
You can probably tell from the format and/or the range of the coordinates which coordinate system it should be.
|
|
||||||
|
|
||||||
|
|
||||||
.. _dxf-export:
|
|
||||||
|
|
||||||
Export
|
|
||||||
======
|
|
||||||
|
|
||||||
Supported Data
|
|
||||||
--------------
|
|
||||||
|
|
||||||
- Mesh face: ``POLYFACE`` or ``3DFACE``
|
|
||||||
- Mesh edge: ``LINE``
|
|
||||||
- Modifier (optionally)
|
|
||||||
|
|
||||||
|
|
||||||
Unsupported Data
|
|
||||||
----------------
|
|
||||||
|
|
||||||
- Mesh vertex: ``POINT``
|
|
||||||
- Curve: ``LINE``\ s or ``POLYLINE``
|
|
||||||
- Curve NURBS: ``curved-POLYLINE``
|
|
||||||
- Text: ``TEXT`` or (wip: ``MTEXT``)
|
|
||||||
- Camera: ``POINT`` or ``VIEW`` or ``VPORT`` or (wip: ``INSERT(ATTRIB+XDATA)``)
|
|
||||||
- Light: ``POINT`` or (wip: ``INSERT(ATTRIB+XDATA)``)
|
|
||||||
- Empty: ``POINT`` or (wip: ``INSERT``)
|
|
||||||
- Object matrix: extrusion (``210-group``), rotation, elevation
|
|
||||||
- 3D Viewport: (wip: ``VIEW``, ``VPORT``)
|
|
||||||
- Instancing vert: auto-instanced or (wip: ``INSERT``)
|
|
||||||
- Instancing frame: auto-instanced or (wip: ``INSERT``)
|
|
||||||
- Instancing group: auto-instanced or (wip: ``INSERT``)
|
|
||||||
- Material: ``LAYER``, ``COLOR`` and ``STYLE`` properties
|
|
||||||
- Group: ``BLOCK`` and ``INSERT``
|
|
||||||
- Parenting: ``BLOCK`` and ``INSERT``
|
|
||||||
- Visibility status: ``LAYER_on``
|
|
||||||
- Frozen status: ``LAYER_frozen``
|
|
||||||
- Locked status: ``LAYER_locked``
|
|
||||||
- Surface
|
|
||||||
- Meta
|
|
||||||
- Armature
|
|
||||||
- Lattice
|
|
||||||
- :abbr:`IPO (InterPOlated)`/Animation
|
|
@ -52,8 +52,7 @@ The exporter can bake mesh modifiers and animation into the FBX so the final res
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Blender now only supports complex node-based shading. FBX having a fixed pipeline-like support of materials,
|
Blender now only supports complex node-based shading. FBX having a fixed pipeline-like support of materials,
|
||||||
this add-on uses the :doc:`generic wrapper </addons/import_export/node_shaders_info>`
|
this add-on converts between them.
|
||||||
featured by Blender to convert between both.
|
|
||||||
|
|
||||||
|
|
||||||
Properties
|
Properties
|
||||||
|
@ -172,10 +172,10 @@ may not be spare power for computing such things at render time.
|
|||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
|
|
||||||
The easiest way to create the custom node group is to import an existing glTF model
|
If you enable Shader Editor Add-ons in preferences, you will be able to add this custom node group from Menu:
|
||||||
that contains an occlusion map, such as
|
Add > Output > glTF Material Output
|
||||||
the `water bottle <https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/WaterBottle>`__
|
|
||||||
or another existing model. A manually created custom node group can also be used.
|
.. figure:: /images/addons_import-export_scene-gltf2_addon-preferences-shader.png
|
||||||
|
|
||||||
glTF stores occlusion in the red (``R``) channel, allowing it to optionally share
|
glTF stores occlusion in the red (``R``) channel, allowing it to optionally share
|
||||||
the same image with the roughness and metallic channels.
|
the same image with the roughness and metallic channels.
|
||||||
@ -288,6 +288,25 @@ Image Texture node connected, the ``KHR_materials_specular`` glTF extension will
|
|||||||
included in the export.
|
included in the export.
|
||||||
|
|
||||||
|
|
||||||
|
Anisotropy
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
Anisotropic textures and data need to be converted at export, and at import.
|
||||||
|
|
||||||
|
At import, some nodes are created to manage this conversion
|
||||||
|
|
||||||
|
.. figure:: /images/addons_import-export_scene-gltf2_material_anisotropy.png
|
||||||
|
|
||||||
|
At export, this exact same nodes are detected, and used to export data.
|
||||||
|
|
||||||
|
At export, you can also plug some grayscale textures for *Anisotropic* and *Anisotropic Rotation* sockets.
|
||||||
|
Then, exporter will convert these texture into a glTF compatible texture.
|
||||||
|
|
||||||
|
.. figure:: /images/addons_import-export_scene-gltf2_material_anisotropy-grayscale-texture.png
|
||||||
|
|
||||||
|
Note that the *tangent* socket must be linked to a *tangent* node, with UVMap.
|
||||||
|
The choosen UVMap must be the UVMap of the Normal Map.
|
||||||
|
|
||||||
|
|
||||||
Transmission
|
Transmission
|
||||||
^^^^^^^^^^^^
|
^^^^^^^^^^^^
|
||||||
@ -427,34 +446,42 @@ Leave this box unchecked for double-sided materials.
|
|||||||
The inverse of this setting controls glTF's ``DoubleSided`` flag.
|
The inverse of this setting controls glTF's ``DoubleSided`` flag.
|
||||||
|
|
||||||
|
|
||||||
Blend Modes
|
Alpha Modes
|
||||||
^^^^^^^^^^^
|
^^^^^^^^^^^
|
||||||
|
|
||||||
The Base Color input can optionally supply alpha values.
|
glTF has three alpha modes, depending on whether the alpha value is always 1, always 0 or
|
||||||
How these values are treated by glTF depends on the selected blend mode.
|
1, or can be between 0 and 1. The exporter determines the alpha mode automatically from
|
||||||
|
the nodes connected to the Alpha socket.
|
||||||
With the EEVEE render engine selected, each material has a Blend Mode on
|
|
||||||
the material settings panel. Use this setting to define how alpha values from
|
|
||||||
the Base Color channel are treated in glTF. Three settings are supported by glTF:
|
|
||||||
|
|
||||||
Opaque
|
Opaque
|
||||||
Alpha values are ignored.
|
In *opaque mode*, the material alpha is always 1.
|
||||||
Alpha Blend
|
|
||||||
Lower alpha values cause blending with background objects.
|
|
||||||
Alpha Clip
|
|
||||||
Alpha values below the *Clip Threshold* setting will cause portions
|
|
||||||
of the material to not be rendered at all. Everything else is rendered as opaque.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_import-export_scene-gltf2_material-alpha-blend.png
|
.. figure:: /images/addons_import-export_scene-gltf2_material-opaque.png
|
||||||
|
|
||||||
With the EEVEE engine selected, a material's blend modes are configurable.
|
Mask
|
||||||
|
In *mask mode*, the material alpha is always 0 or 1. This creates "cutout"
|
||||||
|
transparency, where there is a hard edge between opaque and transparent regions, and
|
||||||
|
can be used for things like leaves or cloth with holes. To enable this mode, use a Math
|
||||||
|
node to round the alpha value to either 0 or 1.
|
||||||
|
|
||||||
.. note::
|
.. figure:: /images/addons_import-export_scene-gltf2_material-round-alpha.png
|
||||||
|
|
||||||
Be aware that transparency (or *Alpha Blend* mode) is complex for real-time engines
|
Rounding snaps alpha values that are 0.5 or greater up to 1, and ones below 0.5 down to
|
||||||
to render, and may behave in unexpected ways after export. Where possible,
|
1. It is also possible to use a cutoff value different than 0.5 by using Math nodes to
|
||||||
use *Alpha Clip* mode instead, or place *Opaque* polygons behind only
|
do ``1 - (alpha < cutoff)``.
|
||||||
a single layer of *Alpha Blend* polygons.
|
|
||||||
|
Mask mode is essentially the same as EEVEE's "Alpha Clip" blend mode, but is done with
|
||||||
|
shader nodes so it works in other render engines.
|
||||||
|
|
||||||
|
Blend
|
||||||
|
Materials that use neither of these will use *blend mode*. Blend mode allows partially
|
||||||
|
transparent surfaces that tint the objects seen through them, like layers of colored
|
||||||
|
film. However, partial transparency is complex to render, and glTF viewers may show
|
||||||
|
visual artifacts in non-trivial scenes that use blend mode.
|
||||||
|
|
||||||
|
To avoid artifacts, it may be a good idea to separate out parts of a model that can use
|
||||||
|
opaque or mask mode, and use blend mode only on the parts where it is necessary, or to
|
||||||
|
use only a *single* layer of transparent polygons in front of opaque objects.
|
||||||
|
|
||||||
|
|
||||||
UV Mapping
|
UV Mapping
|
||||||
@ -505,6 +532,16 @@ a typical node structure when several of the above options are applied at once:
|
|||||||
|
|
||||||
A Principled BSDF material with an emissive texture.
|
A Principled BSDF material with an emissive texture.
|
||||||
|
|
||||||
|
UDIM
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
UDIM is a way to store multiple textures in a single image file.
|
||||||
|
The UDIM system is supported by Blender, but is not supported by glTF.
|
||||||
|
When exporting a model that uses UDIM, the add-on will automatically split the
|
||||||
|
image into multiple images, one for each tile, and will update the material
|
||||||
|
nodes to use the new images.
|
||||||
|
All UDIM texture must use the same UV map to be exported.
|
||||||
|
|
||||||
|
|
||||||
Exporting a Shadeless (Unlit) Material
|
Exporting a Shadeless (Unlit) Material
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
@ -539,6 +576,7 @@ are supported directly by this add-on:
|
|||||||
- ``KHR_materials_volume``
|
- ``KHR_materials_volume``
|
||||||
- ``KHR_materials_sheen``
|
- ``KHR_materials_sheen``
|
||||||
- ``KHR_materials_specular``
|
- ``KHR_materials_specular``
|
||||||
|
- ``KHR_materials_anisotropy``
|
||||||
- ``KHR_materials_ior``
|
- ``KHR_materials_ior``
|
||||||
- ``KHR_materials_variants``
|
- ``KHR_materials_variants``
|
||||||
- ``KHR_lights_punctual``
|
- ``KHR_lights_punctual``
|
||||||
@ -558,6 +596,7 @@ are supported directly by this add-on:
|
|||||||
- ``KHR_materials_volume``
|
- ``KHR_materials_volume``
|
||||||
- ``KHR_materials_sheen``
|
- ``KHR_materials_sheen``
|
||||||
- ``KHR_materials_specular``
|
- ``KHR_materials_specular``
|
||||||
|
- ``KHR_materials_anisotropy``
|
||||||
- ``KHR_materials_ior``
|
- ``KHR_materials_ior``
|
||||||
- ``KHR_materials_variants``
|
- ``KHR_materials_variants``
|
||||||
- ``KHR_texture_transform``
|
- ``KHR_texture_transform``
|
||||||
@ -642,7 +681,7 @@ Actions (default)
|
|||||||
^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
An action will be exported if it is the active action on an object, or it is stashed to an NLA track
|
An action will be exported if it is the active action on an object, or it is stashed to an NLA track
|
||||||
(e.g. with the *Stash* or *Push Down* buttons in the :doc:`Action Editor </editors/dope_sheet/action>`).
|
(e.g. with the *Stash* or *Push Down* buttons in the :doc:`Action Editor </editors/dope_sheet/modes/action>`).
|
||||||
Actions which are **not** associated with an object in one of these ways are **not exported**.
|
Actions which are **not** associated with an object in one of these ways are **not exported**.
|
||||||
If you have multiple actions you want to export, make sure they are stashed!
|
If you have multiple actions you want to export, make sure they are stashed!
|
||||||
|
|
||||||
@ -737,6 +776,20 @@ referenced by the ``.gltf`` file.
|
|||||||
Be aware that sharing this format requires sharing all of these separate files
|
Be aware that sharing this format requires sharing all of these separate files
|
||||||
together as a group.
|
together as a group.
|
||||||
|
|
||||||
|
|
||||||
|
glTF Embedded (``.gltf``)
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
This produces a JSON text-based ``.gltf`` file, with all mesh data and
|
||||||
|
image data encoded (using Base64) within the file. This form is useful if
|
||||||
|
the asset must be shared over a plain-text-only connection.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
This is the least efficient of the available forms, and should only be used when required.
|
||||||
|
Available only when you activated it in addon preferences.
|
||||||
|
|
||||||
|
|
||||||
Properties
|
Properties
|
||||||
==========
|
==========
|
||||||
|
|
||||||
@ -819,15 +872,24 @@ Transform
|
|||||||
Y Up
|
Y Up
|
||||||
Export using glTF convention, +Y up.
|
Export using glTF convention, +Y up.
|
||||||
|
|
||||||
|
|
||||||
Data - Scene Graph
|
Data - Scene Graph
|
||||||
^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Geometry Nodes Instances
|
||||||
|
Export Geometry nodes instances. This feature is experimental.
|
||||||
|
|
||||||
GPU Instances
|
GPU Instances
|
||||||
Export using ``EXT_mesh_gpu_instancing`` extensions.
|
Export using ``EXT_mesh_gpu_instancing`` extensions.
|
||||||
|
|
||||||
Flatten Object Hierarchy
|
Flatten Object Hierarchy
|
||||||
Useful in case of non-decomposable TRS matrix. Only skined meshes will stay children of armature.
|
Useful in case of non-decomposable TRS matrix. Only skined meshes will stay children of armature.
|
||||||
|
|
||||||
|
Full Collection Hierarchy
|
||||||
|
Export collections as empty, keeping full hierarchy. If an object is in multiple collections,
|
||||||
|
it will be exported it only once, in the first collection it is found.
|
||||||
|
|
||||||
|
|
||||||
Data - Mesh
|
Data - Mesh
|
||||||
^^^^^^^^^^^
|
^^^^^^^^^^^
|
||||||
|
|
||||||
@ -840,14 +902,34 @@ Normals
|
|||||||
Export vertex normals with meshes.
|
Export vertex normals with meshes.
|
||||||
Tangents
|
Tangents
|
||||||
Export vertex tangents with meshes.
|
Export vertex tangents with meshes.
|
||||||
Vertex Colors
|
|
||||||
Export Color Attributes with meshes.
|
|
||||||
Attributes
|
Attributes
|
||||||
Export Attributes with meshes, when the name starts with underscore.
|
Export Attributes with meshes, when the name starts with underscore.
|
||||||
Loose Edges
|
Loose Edges
|
||||||
Export loose edges as lines, using the material from the first material slot.
|
Export loose edges as lines, using the material from the first material slot.
|
||||||
Loose Points
|
Loose Points
|
||||||
Export loose points as glTF points, using the material from the first material slot.
|
Export loose points as glTF points, using the material from the first material slot.
|
||||||
|
Shared Accessor
|
||||||
|
For triangles, use shared accessor for indices. This is more efficient (smaller files when you have lots of
|
||||||
|
materials).
|
||||||
|
|
||||||
|
|
||||||
|
Data - Mesh - Vertex Color
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Use Vertex Color
|
||||||
|
:Material:
|
||||||
|
Export vertex color when used in material node tree as Base Color multiplier.
|
||||||
|
This is the default, and the most accurate regarding glTF specification.
|
||||||
|
:Active:
|
||||||
|
Export active vertex colors, even if not used in material node tree.
|
||||||
|
A fully compliant glTF viewer should display this VC as Base Color multiplier.
|
||||||
|
:None:
|
||||||
|
Do not export vertex color.
|
||||||
|
Export all vertex colors
|
||||||
|
Export all vertex colors, additional VC will be COLOR_1, COLOR_2, etc.
|
||||||
|
Export active vertex color when no material
|
||||||
|
Export active vertex color when no material is assigned to the object.
|
||||||
|
|
||||||
|
|
||||||
Data - Material
|
Data - Material
|
||||||
^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^
|
||||||
@ -867,6 +949,10 @@ Create WebP
|
|||||||
For already WebP textures, nothing happen.
|
For already WebP textures, nothing happen.
|
||||||
WebP fallback
|
WebP fallback
|
||||||
For all WebP textures, create a png fallback texture.
|
For all WebP textures, create a png fallback texture.
|
||||||
|
Unused images
|
||||||
|
Export images that are not used in any material.
|
||||||
|
Unused textures
|
||||||
|
Export texture info (sampler, image, texcoord) that are not used in any material.
|
||||||
|
|
||||||
Data - Shape Keys
|
Data - Shape Keys
|
||||||
^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^
|
||||||
@ -991,7 +1077,14 @@ Optimize Animation Size
|
|||||||
Force keeping channel for armature / bones
|
Force keeping channel for armature / bones
|
||||||
if all keyframes are identical in a rig, force keeping the minimal animation.
|
if all keyframes are identical in a rig, force keeping the minimal animation.
|
||||||
Force keeping channel for objects
|
Force keeping channel for objects
|
||||||
if all keyframes are identical for object transformations, force keeping the minimal animation
|
if all keyframes are identical for object transformations, force keeping the minimal animation.
|
||||||
|
Disable viewport for other objects
|
||||||
|
When exporting animations, disable viewport for other objects, for performance reasons, when possible.
|
||||||
|
|
||||||
|
Animation - Filter
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Restrict actions to be exported to the ones matching the filter.
|
||||||
|
|
||||||
Contributing
|
Contributing
|
||||||
============
|
============
|
||||||
|
@ -1,79 +0,0 @@
|
|||||||
|
|
||||||
***************
|
|
||||||
Web3D X3D/VRML2
|
|
||||||
***************
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Import-Export
|
|
||||||
:Menu: :menuselection:`File --> Import/Export --> X3D Extensible 3D (.x3d/.wrl)`
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
|
|
||||||
Properties
|
|
||||||
==========
|
|
||||||
|
|
||||||
Import
|
|
||||||
------
|
|
||||||
|
|
||||||
Transform
|
|
||||||
^^^^^^^^^
|
|
||||||
|
|
||||||
Forward / Up Axis
|
|
||||||
Since many applications use a different axis for 'Up', these are axis conversions for
|
|
||||||
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, its common for applications to use Y as the up axis, in that case -Z forward, Y up is needed.
|
|
||||||
|
|
||||||
|
|
||||||
Export
|
|
||||||
------
|
|
||||||
|
|
||||||
Include
|
|
||||||
^^^^^^^
|
|
||||||
|
|
||||||
Selection Only
|
|
||||||
When checked, only selected objects are exported.
|
|
||||||
Instanced objects, for example collections that are instanced in the scene,
|
|
||||||
are considered 'selected' when their instancer is selected.
|
|
||||||
Hierarchy
|
|
||||||
TODO.
|
|
||||||
Named Decorations
|
|
||||||
TODO.
|
|
||||||
H3D Extensions
|
|
||||||
TODO.
|
|
||||||
|
|
||||||
|
|
||||||
Transform
|
|
||||||
^^^^^^^^^
|
|
||||||
|
|
||||||
Scale
|
|
||||||
TODO.
|
|
||||||
Forward / Up
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
Geometry
|
|
||||||
^^^^^^^^
|
|
||||||
|
|
||||||
Apply Modifiers
|
|
||||||
Export objects using the evaluated mesh, meaning the resulting mesh after all
|
|
||||||
:doc:`Modifiers </modeling/modifiers/index>` have been calculated.
|
|
||||||
Triangulate
|
|
||||||
TODO.
|
|
||||||
Normals
|
|
||||||
TODO.
|
|
||||||
Compress
|
|
||||||
TODO.
|
|
@ -1,11 +0,0 @@
|
|||||||
|
|
||||||
**********
|
|
||||||
NewTek MDD
|
|
||||||
**********
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Import-Export
|
|
||||||
:Menu: :menuselection:`File --> Import/Export --> Lightwave Point Cache (.mdd)`
|
|
||||||
|
|
||||||
Todo.
|
|
@ -24,23 +24,7 @@ Add-ons Category Listings
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
3d_view/index.rst
|
3d_view/index.rst
|
||||||
add_curve/index.rst
|
|
||||||
add_mesh/index.rst
|
|
||||||
animation/index.rst
|
animation/index.rst
|
||||||
baking/index.rst
|
|
||||||
camera/index.rst
|
|
||||||
development/index.rst
|
|
||||||
import_export/index.rst
|
import_export/index.rst
|
||||||
interface/index.rst
|
|
||||||
lighting/index.rst
|
|
||||||
materials/index.rst
|
|
||||||
mesh/index.rst
|
|
||||||
node/index.rst
|
node/index.rst
|
||||||
object/index.rst
|
|
||||||
paint/index.rst
|
|
||||||
render/index.rst
|
|
||||||
rigging/index.rst
|
|
||||||
sequencer/index.rst
|
|
||||||
system/index.rst
|
system/index.rst
|
||||||
uv/index.rst
|
|
||||||
video_tools/index.rst
|
|
||||||
|
@ -1,396 +0,0 @@
|
|||||||
|
|
||||||
****************
|
|
||||||
Amaranth Toolset
|
|
||||||
****************
|
|
||||||
|
|
||||||
A collection of tools and settings to improve productivity.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Edit menu, Preferences, then Add-ons.
|
|
||||||
- Search for Amaranth, and activate the add-on.
|
|
||||||
|
|
||||||
|
|
||||||
3D View
|
|
||||||
=======
|
|
||||||
|
|
||||||
Set Camera Bounds as Render Border
|
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
When in camera view, we can now set the border-render to be the same size of the camera,
|
|
||||||
so we don't render outside the view. Makes faster render preview.
|
|
||||||
|
|
||||||
Usage: Context menus (:kbd:`RMB`) when in Camera View.
|
|
||||||
|
|
||||||
|
|
||||||
Select Meshlights
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
Select all the meshes that emit light.
|
|
||||||
|
|
||||||
Usage: On the header of the 3D View, top of the select menu.
|
|
||||||
|
|
||||||
|
|
||||||
Adjust Passepartout
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
The passepartout value of local Cameras is now available via the context menu,
|
|
||||||
while in Camera view.
|
|
||||||
|
|
||||||
Usage: Context menus (:kbd:`RMB`) when in Camera View.
|
|
||||||
|
|
||||||
|
|
||||||
Scene, Cameras, and Meshlights Count
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
Add the number of scenes, cameras, and light emitting meshes to the stats in the Status Bar.
|
|
||||||
|
|
||||||
Disabled by default as there has been reports of very minor slowdown on scenes with many hi-poly objects.
|
|
||||||
Never experienced myself but just in case.
|
|
||||||
|
|
||||||
Usage: Once enabled in the add-on preferences, it will appear in the Status Bar.
|
|
||||||
|
|
||||||
|
|
||||||
Wireframe Toggle
|
|
||||||
----------------
|
|
||||||
|
|
||||||
Enable or disable wireframe display on mesh objects.
|
|
||||||
It even works on linked objects/scenes too, where this option is not accessible.
|
|
||||||
|
|
||||||
"Display" will enable the wireframe, while "Clear" will disable it.
|
|
||||||
|
|
||||||
Both using the following settings:
|
|
||||||
|
|
||||||
Draw All Edges
|
|
||||||
Display edges even on coplanar faces
|
|
||||||
|
|
||||||
Subdvision Optimal Display
|
|
||||||
Enable/Disable the "Optimal Display" option on Subdvision modifiers
|
|
||||||
|
|
||||||
Only Selected Objects
|
|
||||||
Only apply to the selected objects, otherwise apply to all.
|
|
||||||
|
|
||||||
All Scenes
|
|
||||||
Display wireframe on all the objects in all scenes.
|
|
||||||
Handy when working with linked scenes, where it's impossible to access the Wireframe option from the UI.
|
|
||||||
|
|
||||||
|
|
||||||
Render
|
|
||||||
======
|
|
||||||
|
|
||||||
UI: Final Resolution
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
Display a **Final Resolution** label with the size in pixels of your render.
|
|
||||||
It also displays the final size for border renders.
|
|
||||||
|
|
||||||
Usage: Find it in the 'Format' panel, Render properties.
|
|
||||||
|
|
||||||
|
|
||||||
Cycles: Set Samples Per
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
A quick way to see and set the number of render samples on each Scene or ViewLayer.
|
|
||||||
|
|
||||||
Usage: Find it in the Sampling panel, on Render properties.
|
|
||||||
|
|
||||||
|
|
||||||
Object ID for Collection Instances
|
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
Override the Pass Index for all objects in the Collection.
|
|
||||||
|
|
||||||
In order for the Pass Index to be loaded on computers without Amaranth installed,
|
|
||||||
it will automatically create a text file (called AmaranthStartup.py) and save it inside the .blend,
|
|
||||||
this will auto-run on startup and set the Pass Index. Remember to have auto-run Python scripts on your Preferences.
|
|
||||||
|
|
||||||
Usage: Select an Instanced Collection and set a Pass Index (other than zero) and press "Apply Object ID to Duplis"
|
|
||||||
in the Relations panel in Object Properties.
|
|
||||||
|
|
||||||
|
|
||||||
Nodes Editor
|
|
||||||
============
|
|
||||||
|
|
||||||
Display Image Node in Image Editor
|
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
A quick way to view an image assigned to an Image node.
|
|
||||||
|
|
||||||
Usage: Double-click an Image Node in the Nodes Editor (Compositor or Cycles),
|
|
||||||
there must be at least 1 image editor available.
|
|
||||||
|
|
||||||
|
|
||||||
Node Templates: Vignette
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
Add a set of nodes to create a vignette effect attached to the selected node.
|
|
||||||
|
|
||||||
Vignette
|
|
||||||
Adjust the size and position of the vignette with the Ellipse Mask's X/Y and width, height values.
|
|
||||||
|
|
||||||
Usage: Find the templates in the Compositor's header, "Template" drop-down. Or hit :kbd:`W`.
|
|
||||||
|
|
||||||
|
|
||||||
Nodes: XYZ Sliders for Normal Node
|
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
Tweak the Normal node more accurately by using these sliders.
|
|
||||||
|
|
||||||
Usage: Find it in the Properties panel, when selecting a Normal node.
|
|
||||||
|
|
||||||
|
|
||||||
Object / Material Indices Panel
|
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
When working with ID Masks in the Nodes Editor,
|
|
||||||
it's hard to follow track of which Objects/Materials have which Pass Index.
|
|
||||||
|
|
||||||
This adds a panel on the sidebar when an ID Mask node is selected.
|
|
||||||
The active object is highlighted between [square brackets]
|
|
||||||
|
|
||||||
Usage: On the Nodes Editor's sidebar, when an ID Mask node is selected.
|
|
||||||
|
|
||||||
|
|
||||||
Shaders Extra Info
|
|
||||||
------------------
|
|
||||||
|
|
||||||
Display the name and type of the current object. It works on Materials and Lights.
|
|
||||||
|
|
||||||
Usage: Find it in the Node Editor's header.
|
|
||||||
|
|
||||||
|
|
||||||
Nodes Stats
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Display the number of selected and total nodes on the compositor.
|
|
||||||
|
|
||||||
Usage: Find it in the Compositing Nodes Editor.
|
|
||||||
|
|
||||||
|
|
||||||
Nodes Simplify Panel
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
Disable/Enable certain nodes at a time. Useful to quickly "simplify" compositing.
|
|
||||||
|
|
||||||
This feature is a work in progress, the main issue now is when switching many different kinds one after the other.
|
|
||||||
|
|
||||||
Experimental feature.
|
|
||||||
|
|
||||||
Usage: Find it in the Nodes Editor sidebar (:kbd:`N`).
|
|
||||||
|
|
||||||
|
|
||||||
Animation
|
|
||||||
=========
|
|
||||||
|
|
||||||
Jump N Frames
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Press :kbd:`Shift-Up` or :kbd:`Shift-Down` to jump forward/backwards a custom number of frames.
|
|
||||||
|
|
||||||
Useful for example when animating at 12 frames per second, to be able to jump every 1 second with a shortcut.
|
|
||||||
Make sure to save the preferences so this value is stored and used in the future.
|
|
||||||
|
|
||||||
Usage: Find it in Preferences, Animation section, Timeline panel.
|
|
||||||
|
|
||||||
|
|
||||||
Current Frame Slider
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
Currently the only way to change the current frame is to have a Timeline editor open,
|
|
||||||
but sometimes you don't have one, or you're fullscreen.
|
|
||||||
This feature adds the `Current Frame` slider to the context menu.
|
|
||||||
|
|
||||||
Usage: Find it in the :kbd:`RMB` (context or :kbd:`W`
|
|
||||||
in right-click select keymap) menu in Object mode or Pose mode,
|
|
||||||
click-drag sideways or click in the middle to set the frame manually.
|
|
||||||
|
|
||||||
|
|
||||||
Bone Motion Paths: Match Frame Range + Clear All Paths
|
|
||||||
------------------------------------------------------
|
|
||||||
|
|
||||||
Clear All Paths
|
|
||||||
Simple operator to loop through all bones and clear their paths, useful when having hidden bones
|
|
||||||
(otherwise you have to go through each one of them and clear manually)
|
|
||||||
|
|
||||||
Match Current Frame Range
|
|
||||||
Set the current frame range as motion path range.
|
|
||||||
|
|
||||||
|
|
||||||
Scene
|
|
||||||
=====
|
|
||||||
|
|
||||||
Save & Reload File
|
|
||||||
------------------
|
|
||||||
|
|
||||||
When working with linked libraries, very often you need to save and load again to see the changes.
|
|
||||||
|
|
||||||
Note: Since this feature is meant to speed-up the save/reload process, there is no prompt on save.
|
|
||||||
|
|
||||||
Usage: Press :kbd:`Shift-Ctrl-W` or find it at the bottom of the File menu
|
|
||||||
|
|
||||||
|
|
||||||
Refresh Scene
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Refresh the current scene, useful when working with libraries or drivers.
|
|
||||||
|
|
||||||
Usage: Press :kbd:`F5` or find it in the context menu :kbd:`W`
|
|
||||||
|
|
||||||
|
|
||||||
Debug
|
|
||||||
=====
|
|
||||||
|
|
||||||
List Missing Images
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Display a list of missing images (that is, images that can't be found) Under a collapsible list.
|
|
||||||
|
|
||||||
Display the image name and its path, if the image is coming from a linked .blend, display the path to it.
|
|
||||||
|
|
||||||
Clicking on the .blend library path (Blender icon) will open the file in a new Blender instance.
|
|
||||||
|
|
||||||
Usage: Find it in the Scene Debug panel, under Scene Properties.
|
|
||||||
|
|
||||||
|
|
||||||
List Missing Node Links
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
Operator to look for empty image nodes, or missing images in nodes.
|
|
||||||
|
|
||||||
The "List Missing Node Links" button will print:
|
|
||||||
* Node Groups that were linked but are now "Missing Datablock"
|
|
||||||
* Image Nodes pointing to a non-existent image
|
|
||||||
* Image Nodes that don't have any output connected
|
|
||||||
|
|
||||||
Additionally, it will print in the terminal a list of all the Materials that meet any of the missing cases above,
|
|
||||||
the object they belong to, and their path (if they're coming from a Library).
|
|
||||||
|
|
||||||
Usage: Find it in the Scene Debug panel, on Scene Properties.
|
|
||||||
|
|
||||||
|
|
||||||
List Empty Material Slots
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
Having empty material slots with no material assigned to it is rare, but can happen.
|
|
||||||
Sometimes because the material was linked and the link got lost.
|
|
||||||
|
|
||||||
The "List Empty Material Slots" button will print a list of all the objects that have empty material slots.
|
|
||||||
|
|
||||||
If the objects are linked, it will show a list of the libraries paths,
|
|
||||||
click on them to open a new Blender instance with that library.
|
|
||||||
|
|
||||||
Usage: Find it in the Scene Debug panel, on Scene Properties.
|
|
||||||
|
|
||||||
|
|
||||||
List Cycles Material using X shader
|
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
Where X is any shader type you want. It will display (and print on console) a list of all the materials containing
|
|
||||||
the shader you specified above.
|
|
||||||
|
|
||||||
Good for finding out if there's any meshlight (Emission) material hidden somewhere,
|
|
||||||
or if there are many glossy shaders making things noisy.
|
|
||||||
|
|
||||||
|
|
||||||
Lighter's Corner
|
|
||||||
----------------
|
|
||||||
|
|
||||||
A list of all the lights in the scene, including meshlights (meshes that have a Material with Emission shader).
|
|
||||||
|
|
||||||
From this list it is possible to adjust Ray Visibility (Camera, Diffuse, Glossy, Shadow) and renderability.
|
|
||||||
|
|
||||||
Usage: Find it in the Lighter's Corner panel, on Scene Properties.
|
|
||||||
|
|
||||||
|
|
||||||
File Browser
|
|
||||||
============
|
|
||||||
|
|
||||||
Go to Current Blend's Folder
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
A quick way to go to the currently open blend's directory.
|
|
||||||
|
|
||||||
|
|
||||||
Libraries Bookmark
|
|
||||||
------------------
|
|
||||||
|
|
||||||
The "Libraries" panel in the File Browser displays the path to all the libraries linked to that .blend.
|
|
||||||
That way you can quickly go to the folders related to the file.
|
|
||||||
|
|
||||||
Usage: Find it in the **Libraries** panel in File Browser. Click on any path to go to that directory.
|
|
||||||
|
|
||||||
|
|
||||||
Timeline
|
|
||||||
========
|
|
||||||
|
|
||||||
Timeline Extra Info
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Display amount of frames left until Frame End, very handy especially when rendering an animation or OpenGL preview.
|
|
||||||
|
|
||||||
Display current/end time in `SMPTE <https://en.wikipedia.org/wiki/SMPTE_timecode>`__.
|
|
||||||
|
|
||||||
Usage: Find it in the Timeline Editor's header.
|
|
||||||
|
|
||||||
|
|
||||||
Modeling
|
|
||||||
========
|
|
||||||
|
|
||||||
Symmetry Tools
|
|
||||||
--------------
|
|
||||||
|
|
||||||
Two operators to help making a mesh symmetric.
|
|
||||||
|
|
||||||
Find Asymmetric
|
|
||||||
Selects vertices whose position doesn't match the opposite side.
|
|
||||||
|
|
||||||
Make Symmetric
|
|
||||||
Move selected vertices to match the position of those on the other side.
|
|
||||||
|
|
||||||
Usage: Search (:kbd:`Spacebar`) for **Find Asymmetric**, and **Make Symmetric** operators.
|
|
||||||
|
|
||||||
|
|
||||||
Miscellaneous
|
|
||||||
=============
|
|
||||||
|
|
||||||
Color Management Presets
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
Save your Color Management options as presets, for easy re-use.
|
|
||||||
|
|
||||||
Store most options in the Color Management panel, such as the look and color settings.
|
|
||||||
Storing curve points is not supported yet.
|
|
||||||
|
|
||||||
Usage: Find the presets selector on the top of the **Color Management** panel under Render Properties.
|
|
||||||
|
|
||||||
|
|
||||||
Instancing: Show Path of Libraries
|
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
Display the library path of a linked Collection Instance.
|
|
||||||
Click on the path to open that .blend file in a new Blender instance.
|
|
||||||
|
|
||||||
Usage: Find it in the **Instancing** panel, when a Collection Instance (linked) is active.
|
|
||||||
|
|
||||||
|
|
||||||
Sequencer: Display Image File Name
|
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
When seeking through an image sequence, display the active strips'
|
|
||||||
file name for the current frame, and its playhead (in square brackets).
|
|
||||||
|
|
||||||
Usage: Find it in the sequencer header.
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Interface
|
|
||||||
:Description: A collection of tools and settings to improve productivity.
|
|
||||||
:Location: Everywhere
|
|
||||||
:File: amaranth folder
|
|
||||||
:Author: Pablo Vazquez (pablovazquez)
|
|
||||||
:Maintainer: Pablo Vazquez (pablovazquez)
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
@ -1,43 +0,0 @@
|
|||||||
|
|
||||||
*******************
|
|
||||||
Dynamic Brush Menus
|
|
||||||
*******************
|
|
||||||
|
|
||||||
Provides access to commonly used settings and tools for painting/sculpting.
|
|
||||||
|
|
||||||
|
|
||||||
Activation
|
|
||||||
==========
|
|
||||||
|
|
||||||
- Open Blender and go to Preferences then the Add-ons tab.
|
|
||||||
- Click Interface then Dynamic Brush Menus to enable the script.
|
|
||||||
|
|
||||||
|
|
||||||
Description
|
|
||||||
===========
|
|
||||||
|
|
||||||
.. rubric:: Features of Note:
|
|
||||||
|
|
||||||
- Pop-ups to pick colors and edit curves.
|
|
||||||
- A brush menu that supports user created brushes.
|
|
||||||
- Sliders included at the top of submenus like Radius, Strength, and Weight to allow for precise adjustment.
|
|
||||||
- Fast creation of UV maps and Texture Paint Slots in Texture Paint Mode if they are not already present.
|
|
||||||
- Integrates well with the :doc:`Dynamic Context Menu </addons/interface/context_menu>` add-on.
|
|
||||||
|
|
||||||
A Preference for the number of columns shown in the Brush and Brush Mode menus can be found for
|
|
||||||
this add-on by going to the Add-ons tab in Preferences and expanding the add-on.
|
|
||||||
|
|
||||||
.. figure:: /images/addons_interface_brush-menus_ui.jpg
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
.. reference::
|
|
||||||
|
|
||||||
:Category: Interface
|
|
||||||
:Description: Fast access to brushes & tools in Sculpt and Paint Modes.
|
|
||||||
:Location: :kbd:`Spacebar` in Sculpt/Paint Modes
|
|
||||||
:File: space_view3d_brush_menus folder
|
|
||||||
:Author: Ryan Inch (Imaginer)
|
|
||||||
:Maintainer: Ryan Inch (Imaginer)
|
|
||||||
:License: GPL
|
|
||||||
:Support Level: Community
|
|
||||||
:Note: This add-on is bundled with Blender.
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user