Upload 5 files
Browse files- index.rst.txt +11 -83
- introduction.rst.txt +32 -150
- primitives.rst.txt +70 -0
- selecting.rst.txt +196 -0
- structure.rst.txt +97 -0
index.rst.txt
CHANGED
|
@@ -1,89 +1,17 @@
|
|
| 1 |
-
..
|
| 2 |
-
.. _bpy.
|
| 3 |
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
|
| 8 |
.. toctree::
|
| 9 |
:maxdepth: 2
|
| 10 |
|
| 11 |
introduction.rst
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
.. toctree::
|
| 19 |
-
:maxdepth: 1
|
| 20 |
-
|
| 21 |
-
modify/data_transfer.rst
|
| 22 |
-
modify/mesh_cache.rst
|
| 23 |
-
modify/mesh_sequence_cache.rst
|
| 24 |
-
modify/normal_edit.rst
|
| 25 |
-
modify/uv_project.rst
|
| 26 |
-
modify/uv_warp.rst
|
| 27 |
-
modify/weight_edit.rst
|
| 28 |
-
modify/weight_mix.rst
|
| 29 |
-
modify/weight_proximity.rst
|
| 30 |
-
modify/weighted_normal.rst
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
Generate
|
| 34 |
-
========
|
| 35 |
-
|
| 36 |
-
.. toctree::
|
| 37 |
-
:maxdepth: 1
|
| 38 |
-
|
| 39 |
-
generate/array.rst
|
| 40 |
-
generate/bevel.rst
|
| 41 |
-
generate/booleans.rst
|
| 42 |
-
generate/build.rst
|
| 43 |
-
generate/decimate.rst
|
| 44 |
-
generate/edge_split.rst
|
| 45 |
-
generate/mask.rst
|
| 46 |
-
generate/mirror.rst
|
| 47 |
-
generate/multiresolution.rst
|
| 48 |
-
generate/remesh.rst
|
| 49 |
-
generate/screw.rst
|
| 50 |
-
generate/skin.rst
|
| 51 |
-
generate/solidify.rst
|
| 52 |
-
generate/subdivision_surface.rst
|
| 53 |
-
generate/triangulate.rst
|
| 54 |
-
generate/wireframe.rst
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
Deform
|
| 58 |
-
======
|
| 59 |
-
|
| 60 |
-
.. toctree::
|
| 61 |
-
:maxdepth: 1
|
| 62 |
-
|
| 63 |
-
deform/armature.rst
|
| 64 |
-
deform/cast.rst
|
| 65 |
-
deform/corrective_smooth.rst
|
| 66 |
-
deform/curve.rst
|
| 67 |
-
deform/displace.rst
|
| 68 |
-
deform/hooks.rst
|
| 69 |
-
deform/laplacian_smooth.rst
|
| 70 |
-
deform/laplacian_deform.rst
|
| 71 |
-
deform/lattice.rst
|
| 72 |
-
deform/mesh_deform.rst
|
| 73 |
-
deform/shrinkwrap.rst
|
| 74 |
-
deform/simple_deform.rst
|
| 75 |
-
deform/smooth.rst
|
| 76 |
-
deform/surface_deform.rst
|
| 77 |
-
deform/warp.rst
|
| 78 |
-
deform/wave.rst
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
Simulate
|
| 82 |
-
========
|
| 83 |
-
|
| 84 |
-
.. toctree::
|
| 85 |
-
:maxdepth: 1
|
| 86 |
-
|
| 87 |
-
simulate/explode.rst
|
| 88 |
-
simulate/ocean.rst
|
| 89 |
-
simulate/particle_instance.rst
|
|
|
|
| 1 |
+
.. _modeling-surfaces-index:
|
| 2 |
+
.. _bpy.ops.surface:
|
| 3 |
|
| 4 |
+
############
|
| 5 |
+
Surfaces
|
| 6 |
+
############
|
| 7 |
|
| 8 |
.. toctree::
|
| 9 |
:maxdepth: 2
|
| 10 |
|
| 11 |
introduction.rst
|
| 12 |
+
toolbar/index.rst
|
| 13 |
+
structure.rst
|
| 14 |
+
primitives.rst
|
| 15 |
+
selecting.rst
|
| 16 |
+
editing/index.rst
|
| 17 |
+
properties/index.rst
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
introduction.rst.txt
CHANGED
|
@@ -3,163 +3,45 @@
|
|
| 3 |
Introduction
|
| 4 |
************
|
| 5 |
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
|
| 10 |
-
|
| 11 |
-
You can add several modifiers to a single object to form `The Modifier Stack`_
|
| 12 |
-
and *Apply* a modifier if you wish to make its changes permanent.
|
| 13 |
|
| 14 |
-
.. figure:: /images/
|
| 15 |
|
| 16 |
-
|
| 17 |
|
| 18 |
-
|
| 19 |
-
|
|
|
|
|
|
|
| 20 |
|
| 21 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
however, they usually do not directly affect the geometry of the object,
|
| 26 |
-
but some other data, such as vertex groups.
|
| 27 |
-
Generate
|
| 28 |
-
These are constructive/destructive tools that will affect the whole :term:`topology` of the mesh.
|
| 29 |
-
They can change the general appearance of the object, or add new geometry to it...
|
| 30 |
-
Deform
|
| 31 |
-
Unlike *Generate* ones above, these only change the shape of an object, without altering its topology.
|
| 32 |
-
Simulate
|
| 33 |
-
Those represent :doc:`physics simulations </physics/index>`. In most cases, they are automatically added to
|
| 34 |
-
the modifiers stack whenever a *Particle System* or *Physics* simulation is enabled. Their only role is to define
|
| 35 |
-
the position in the modifier stack from which is taken the base data for the simulation they represent.
|
| 36 |
-
As such, they typically have no attributes, and are controlled by settings exposed in
|
| 37 |
-
separate sections of the :doc:`Properties editor </editors/properties_editor>`.
|
| 38 |
|
| 39 |
|
| 40 |
-
|
|
|
|
| 41 |
|
| 42 |
-
|
| 43 |
-
|
|
|
|
|
|
|
| 44 |
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
.. figure:: /images/modeling_modifiers_introduction_panel-layout.png
|
| 48 |
-
|
| 49 |
-
Panel layout (Subdivision Surface as an example).
|
| 50 |
-
|
| 51 |
-
Each modifier's interface shares the same basic components, see Fig. :ref:`fig-modifiers-panel-layout`.
|
| 52 |
-
|
| 53 |
-
At the top is the panel header.
|
| 54 |
-
The icons each represent different settings for the modifier (left to right):
|
| 55 |
-
|
| 56 |
-
Expand (down/right arrow icon)
|
| 57 |
-
Collapse modifier to show only the header and not its options.
|
| 58 |
-
Type
|
| 59 |
-
An icon as a quick visual reference of the modifier's type.
|
| 60 |
-
Name
|
| 61 |
-
Every modifier has a unique name per object. Two modifiers on one object must have unique names,
|
| 62 |
-
but two modifiers on different objects can have the same name. The default name is based off the modifier type.
|
| 63 |
-
Render (camera icon)
|
| 64 |
-
Toggle visibility of the modifier's effect in the render.
|
| 65 |
-
Show in viewport (screen icon)
|
| 66 |
-
Toggle visibility of the modifier's effect in the 3D View.
|
| 67 |
-
Show in Edit Mode (vertices-square icon)
|
| 68 |
-
Display the modified geometry in Edit mode, as well as the original geometry which you can edit.
|
| 69 |
-
Show on cage (vertices-triangle icon) -- Meshes only
|
| 70 |
-
Depends on the previous setting, if enabled, the modified geometry can also be edited directly,
|
| 71 |
-
instead of the original one.
|
| 72 |
-
|
| 73 |
-
.. warning::
|
| 74 |
-
|
| 75 |
-
While it shows edited items in their final, modified positions, you are still actually editing original data.
|
| 76 |
-
This can lead to weird and unpredictable effects with some tools,
|
| 77 |
-
and should be disabled whenever you need to perform complex or precise editing on the mesh.
|
| 78 |
-
|
| 79 |
-
Apply On Spline Points (point-surface icon) -- Curves, Surfaces and Texts only
|
| 80 |
-
Apply the whole modifier stack up to and including that one on the curve or surface control points,
|
| 81 |
-
instead of their tessellated geometry.
|
| 82 |
-
|
| 83 |
-
.. note::
|
| 84 |
-
|
| 85 |
-
By default, curves, texts and surfaces are always converted to mesh-like geometry
|
| 86 |
-
before that the modifier stack is evaluated on them.
|
| 87 |
-
|
| 88 |
-
Move (up/down arrow icon)
|
| 89 |
-
Move the modifier up/down in the stack.
|
| 90 |
-
Delete (``X`` icon)
|
| 91 |
-
Delete the modifier.
|
| 92 |
-
|
| 93 |
-
.. note::
|
| 94 |
-
|
| 95 |
-
The *Square*, *Triangle* and *Surface* icons may not be available, depending on the type of object and modifier.
|
| 96 |
-
|
| 97 |
-
Below the header are three buttons:
|
| 98 |
-
|
| 99 |
-
Apply
|
| 100 |
-
Makes the modifier "real": converts the object's geometry to match the applied modifier's results,
|
| 101 |
-
and deletes the modifier.
|
| 102 |
-
Apply as Shape Key
|
| 103 |
-
Stores the result of that modifier in a new relative :doc:`shape key </animation/shape_keys/introduction>`.
|
| 104 |
-
This is only available with modifiers that do not affect the topology (typically, *Deform* modifiers only).
|
| 105 |
-
|
| 106 |
-
.. note::
|
| 107 |
-
|
| 108 |
-
Even though it should work with any geometry type that supports shape keys,
|
| 109 |
-
currently it will only work with meshes.
|
| 110 |
-
|
| 111 |
-
Copy
|
| 112 |
-
Creates a duplicate of the modifier just below current one in the stack.
|
| 113 |
-
|
| 114 |
-
.. warning::
|
| 115 |
-
|
| 116 |
-
Applying a modifier that is not first in the stack will ignore the stack order
|
| 117 |
-
(it will be applied as if it was the first one), and may produce undesired results.
|
| 118 |
-
|
| 119 |
-
Below this header, all of the options unique to each modifier will be displayed.
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
.. _modifier-stack:
|
| 123 |
-
|
| 124 |
-
The Modifier Stack
|
| 125 |
-
------------------
|
| 126 |
-
|
| 127 |
-
Modifiers are a series of non-destructive operations which can be applied on top of an object's geometry.
|
| 128 |
-
They can be applied in just about any order the user chooses.
|
| 129 |
-
|
| 130 |
-
This kind of functionality is often referred to as a "modifier stack"
|
| 131 |
-
and is also found in several other 3D applications.
|
| 132 |
-
|
| 133 |
-
In a modifier stack the order in which modifiers are applied has an effect on the result.
|
| 134 |
-
Fortunately modifiers can be rearranged easily by clicking the convenient up and down arrow icons.
|
| 135 |
-
For example, the image below shows :doc:`Subdivision Surface </modeling/modifiers/generate/subdivision_surface>`
|
| 136 |
-
and :doc:`Mirror </modeling/modifiers/generate/mirror>` modifiers that have switched places.
|
| 137 |
-
|
| 138 |
-
.. list-table:: Modifier Stack example.
|
| 139 |
-
|
| 140 |
-
* - .. figure:: /images/modeling_modifiers_introduction_mirror-subdiv2.png
|
| 141 |
-
:width: 320px
|
| 142 |
-
|
| 143 |
-
The Mirror modifier is the last item in the stack and
|
| 144 |
-
the result looks like two surfaces.
|
| 145 |
-
|
| 146 |
-
- .. figure:: /images/modeling_modifiers_introduction_mirror-subdiv1.png
|
| 147 |
-
:width: 320px
|
| 148 |
-
|
| 149 |
-
The Subdivision surface modifier is the last
|
| 150 |
-
item in the stack and the result is a single merged surface.
|
| 151 |
-
|
| 152 |
-
Modifiers are calculated from top to bottom in the stack.
|
| 153 |
-
In this example, the desired result (on right) is achieved by first mirroring the object,
|
| 154 |
-
and then calculating the subdivision surface.
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
Example
|
| 158 |
-
^^^^^^^
|
| 159 |
-
|
| 160 |
-
.. figure:: /images/modeling_modifiers_introduction_stack-example-3.png
|
| 161 |
-
|
| 162 |
-
In this example a simple subdivided cube has been transformed into a rather complex object using
|
| 163 |
-
a stack of modifiers.
|
| 164 |
-
|
| 165 |
-
`Download example file <https://wiki.blender.org/wiki/File:25-Manual-Modifiers-example.blend>`__.
|
|
|
|
| 3 |
Introduction
|
| 4 |
************
|
| 5 |
|
| 6 |
+
Curves are 2D objects, and surfaces are their 3D extension.
|
| 7 |
+
Note however, that in Blender, you only have NURBS surfaces,
|
| 8 |
+
no Bézier (you have the *Bézier* knot type, though; see below),
|
| 9 |
+
nor polygonal (but for these, you have meshes!).
|
| 10 |
+
Even though curves and surfaces share the same object type (with texts also...),
|
| 11 |
+
they are not the same thing; for example,
|
| 12 |
+
you cannot have in the same object both curves and surfaces.
|
| 13 |
|
| 14 |
+
.. _fig-surface-intro-surface:
|
|
|
|
|
|
|
| 15 |
|
| 16 |
+
.. figure:: /images/modeling_surfaces_introduction_nurbs-surface.png
|
| 17 |
|
| 18 |
+
NURBS surface in Edit Mode.
|
| 19 |
|
| 20 |
+
As surfaces are 2D, they have two interpolation axes, U (as for curves) and V.
|
| 21 |
+
It is important to understand that you can control the interpolation rules (knot, order, resolution)
|
| 22 |
+
*independently* for each of these two dimensions
|
| 23 |
+
(the U and V fields for all these settings, of course).
|
| 24 |
|
| 25 |
+
You may ask yourself "but the surface appears to be 3D, why is it only 2D?".
|
| 26 |
+
In order to be 3D, the object needs to have "Volume", and a surface, even when it is closed,
|
| 27 |
+
does not have volume; it is infinitely thin.
|
| 28 |
+
If it had a volume the surface would have a thickness (its third dimension). Hence,
|
| 29 |
+
it is only a 2D object, and has only two interpolation dimensions or axes or coordinates
|
| 30 |
+
(if you know a bit of math, think of non-Euclidean geometry -- well,
|
| 31 |
+
surfaces are just non-Euclidean 2D planes...). To take a more "real-world" example,
|
| 32 |
+
you can roll a sheet of paper to create a cylinder; well, even if it becomes a "volume",
|
| 33 |
+
the sheet itself will remain a (nearly...) 2D object!
|
| 34 |
|
| 35 |
+
In fact, surfaces are very similar to the results you get when
|
| 36 |
+
:doc:`extruding a curve </modeling/curves/properties/geometry>`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
|
| 38 |
|
| 39 |
+
Visualization
|
| 40 |
+
=============
|
| 41 |
|
| 42 |
+
There is nearly no difference from NURBS curves,
|
| 43 |
+
except that the U direction is indicated by yellow grid lines,
|
| 44 |
+
and the V one is materialized by pink grid lines, as you can see in
|
| 45 |
+
Fig. :ref:`fig-surface-intro-surface`.
|
| 46 |
|
| 47 |
+
You can :ref:`hide and reveal <curves-show-hide>` control points just as with curves.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
primitives.rst.txt
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.. _bpy.ops.surface.primitive*add:
|
| 2 |
+
|
| 3 |
+
**********
|
| 4 |
+
Primitives
|
| 5 |
+
**********
|
| 6 |
+
|
| 7 |
+
.. admonition:: Reference
|
| 8 |
+
:class: refbox
|
| 9 |
+
|
| 10 |
+
:Mode: Object Mode and Edit Mode
|
| 11 |
+
:Menu: :menuselection:`Add --> Curve`
|
| 12 |
+
:Hotkey: :kbd:`Shift-A`
|
| 13 |
+
|
| 14 |
+
.. seealso::
|
| 15 |
+
|
| 16 |
+
When adding curves there are some common options like other :ref:`Objects <object-common-options>`.
|
| 17 |
+
|
| 18 |
+
In Object/Edit Mode, the *Add Surface* menu, provides six different surface primitives:
|
| 19 |
+
|
| 20 |
+
.. list-table::
|
| 21 |
+
|
| 22 |
+
* - .. figure:: /images/modeling_surfaces_primitives_surface.png
|
| 23 |
+
|
| 24 |
+
NURBS surface primitives.
|
| 25 |
+
|
| 26 |
+
- .. figure:: /images/modeling_surfaces_primitives_curve.png
|
| 27 |
+
|
| 28 |
+
NURBS curve primitives.
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
NURBS Curve
|
| 32 |
+
===========
|
| 33 |
+
|
| 34 |
+
*NURBS Curve* only have one control point on each V row.
|
| 35 |
+
|
| 36 |
+
TODO.
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
NURBS Circle
|
| 40 |
+
============
|
| 41 |
+
|
| 42 |
+
*NURBS Circle* only have one control point on each V row.
|
| 43 |
+
|
| 44 |
+
TODO.
|
| 45 |
+
|
| 46 |
+
Note how a circle :term:`NURBS` surface is never filled, unlike its "real" curve counterpart...
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
NURBS Surface
|
| 50 |
+
=============
|
| 51 |
+
|
| 52 |
+
TODO.
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
NURBS Cylinder
|
| 56 |
+
==============
|
| 57 |
+
|
| 58 |
+
TODO.
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
NURBS Sphere
|
| 62 |
+
============
|
| 63 |
+
|
| 64 |
+
TODO.
|
| 65 |
+
|
| 66 |
+
|
| 67 |
+
NURBS Torus
|
| 68 |
+
===========
|
| 69 |
+
|
| 70 |
+
TODO.
|
selecting.rst.txt
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
*********
|
| 3 |
+
Selecting
|
| 4 |
+
*********
|
| 5 |
+
|
| 6 |
+
This page discusses specific selecting tools for surface objects in Edit Mode.
|
| 7 |
+
The Surface Edit more also uses the general select tools used which are described
|
| 8 |
+
in the :doc:`interface section </interface/selecting>`.
|
| 9 |
+
|
| 10 |
+
Surface selection in *Edit Mode* is very similar to
|
| 11 |
+
:doc:`NURBS curve selection </modeling/curves/selecting>`.
|
| 12 |
+
The basic tools are the same as with :doc:`meshes </modeling/meshes/selecting>`,
|
| 13 |
+
so you can select a simple control point with an :kbd:`LMB`\ -click,
|
| 14 |
+
add to current selection with :kbd:`Shift-LMB` clicks, :kbd:`B` order-select, and so on.
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
Select Menu
|
| 18 |
+
===========
|
| 19 |
+
|
| 20 |
+
The *Select* menu (in the 3D Viewport header) is even simpler than for curves...
|
| 21 |
+
|
| 22 |
+
All these options have the same meaning and behavior as in
|
| 23 |
+
:doc:`Object Mode </scene_layout/object/selecting>`
|
| 24 |
+
(and the specificities of *Box Select* in *Edit Mode* have already been discussed
|
| 25 |
+
:doc:`here </modeling/meshes/selecting>`).
|
| 26 |
+
|
| 27 |
+
All :kbd:`A`
|
| 28 |
+
Select all.
|
| 29 |
+
None :kbd:`Alt-A`
|
| 30 |
+
Select none.
|
| 31 |
+
Inverse :kbd:`Ctrl-I`
|
| 32 |
+
Selects all the geometry that are not selected, and deselect currently selected components.
|
| 33 |
+
|
| 34 |
+
------------------------
|
| 35 |
+
|
| 36 |
+
:ref:`Box Select <tool-select-box>` :kbd:`B`
|
| 37 |
+
Interactive box selection.
|
| 38 |
+
:ref:`Circle Select <tool-select-circle>` :kbd:`C`
|
| 39 |
+
Interactive circle selection.
|
| 40 |
+
|
| 41 |
+
------------------------
|
| 42 |
+
|
| 43 |
+
`Select Random`_
|
| 44 |
+
Select random control points.
|
| 45 |
+
|
| 46 |
+
`Checker Deselect`_
|
| 47 |
+
Select every Nth control point.
|
| 48 |
+
|
| 49 |
+
`Select Linked`_ :kbd:`Ctrl-L`
|
| 50 |
+
Select control points that are connected to the current selection.
|
| 51 |
+
|
| 52 |
+
`Select Similar`_ :kbd:`Shift-G`
|
| 53 |
+
Select control points that have similar properties to the current selection.
|
| 54 |
+
|
| 55 |
+
------------------------
|
| 56 |
+
|
| 57 |
+
`Select Control Point Row`_
|
| 58 |
+
Select a whole :ref:`row <modeling-surfaces-rows-grids>` of control points.
|
| 59 |
+
|
| 60 |
+
------------------------
|
| 61 |
+
|
| 62 |
+
`Select More/Less`_
|
| 63 |
+
Select objects based on their parent child relationships.
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
Select Random
|
| 67 |
+
=============
|
| 68 |
+
|
| 69 |
+
.. admonition:: Reference
|
| 70 |
+
:class: refbox
|
| 71 |
+
|
| 72 |
+
:Mode: Edit Mode
|
| 73 |
+
:Menu: :menuselection:`Select --> Select Random`
|
| 74 |
+
|
| 75 |
+
Select random control points.
|
| 76 |
+
|
| 77 |
+
Percent
|
| 78 |
+
Selects the defined percentage of control points.
|
| 79 |
+
Random Seed
|
| 80 |
+
:term:`Seed` used by the pseudo-random number generator.
|
| 81 |
+
Action
|
| 82 |
+
Controls whether the operator *Selects* or *Deselects* control points.
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
Checker Deselect
|
| 86 |
+
================
|
| 87 |
+
|
| 88 |
+
.. admonition:: Reference
|
| 89 |
+
:class: refbox
|
| 90 |
+
|
| 91 |
+
:Mode: Edit Mode
|
| 92 |
+
:Menu: :menuselection:`Select --> Checker Deselect`
|
| 93 |
+
|
| 94 |
+
This tool applies an alternating selected/deselected checker pattern.
|
| 95 |
+
This only works if you already have more than one control point selected.
|
| 96 |
+
|
| 97 |
+
It works by changing the current selection so that only every Nth
|
| 98 |
+
control points will remain selected, starting from the active one.
|
| 99 |
+
|
| 100 |
+
Nth Selection
|
| 101 |
+
Skip every Nth element leaving it selected.
|
| 102 |
+
Skip
|
| 103 |
+
Number of consecutive elements to skip (keep selected) at once.
|
| 104 |
+
Offset
|
| 105 |
+
Offset from the starting point.
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
Select Linked
|
| 109 |
+
=============
|
| 110 |
+
|
| 111 |
+
.. admonition:: Reference
|
| 112 |
+
:class: refbox
|
| 113 |
+
|
| 114 |
+
:Mode: Edit Mode
|
| 115 |
+
:Menu: :menuselection:`Select --> Select Linked`
|
| 116 |
+
:Hotkey: :kbd:`L`, :kbd:`Ctrl-L`
|
| 117 |
+
|
| 118 |
+
*Select Linked* will add to the selection the mouse cursor's nearest control point,
|
| 119 |
+
and all the linked ones, i.e. all points belonging to the same surface.
|
| 120 |
+
|
| 121 |
+
|
| 122 |
+
Select Similar
|
| 123 |
+
==============
|
| 124 |
+
|
| 125 |
+
.. admonition:: Reference
|
| 126 |
+
:class: refbox
|
| 127 |
+
|
| 128 |
+
:Mode: Edit Mode
|
| 129 |
+
:Menu: :menuselection:`Select --> Select Similar`
|
| 130 |
+
:Hotkey: :kbd:`Shift-G`
|
| 131 |
+
|
| 132 |
+
Selects control points that have certain similar properties to the active one.
|
| 133 |
+
The :ref:`ui-undo-redo-adjust-last-operation` panel provides several selection options:
|
| 134 |
+
|
| 135 |
+
Type
|
| 136 |
+
Type
|
| 137 |
+
Selects splines that have the same spline Type i.e. Bézier, NURBS or Poly.
|
| 138 |
+
Radius
|
| 139 |
+
Selects control points that have a similar Radius value.
|
| 140 |
+
Weight
|
| 141 |
+
Selects all points that have a similar Weight value.
|
| 142 |
+
Direction
|
| 143 |
+
Selects control points that have a similar handles direction.
|
| 144 |
+
|
| 145 |
+
Compare
|
| 146 |
+
Equal, Greater, Less. (only for Radius, Weight) (ToDo 2.76)
|
| 147 |
+
Threshold
|
| 148 |
+
Precision (ToDo 2.76)
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
.. _bpy.ops.curve.select_row:
|
| 152 |
+
|
| 153 |
+
Select Control Point Row
|
| 154 |
+
========================
|
| 155 |
+
|
| 156 |
+
.. admonition:: Reference
|
| 157 |
+
:class: refbox
|
| 158 |
+
|
| 159 |
+
:Mode: Edit Mode
|
| 160 |
+
:Menu: :menuselection:`Select --> Control Point Row`
|
| 161 |
+
:Hotkey: :kbd:`Shift-R`
|
| 162 |
+
|
| 163 |
+
This option works a bit like
|
| 164 |
+
:ref:`edge loop selection <modeling-meshes-selecting-edge-loops>` for meshes,
|
| 165 |
+
inasmuch it selects a whole :ref:`row <modeling-surfaces-rows-grids>` of control points,
|
| 166 |
+
based on the active (the last selected) one. The first time you press :kbd:`Shift-R`,
|
| 167 |
+
the V row passing through (containing) the active point will be added to the *current* selection.
|
| 168 |
+
If you use again this shortcut, you will toggle between the U and V row of this point,
|
| 169 |
+
removing *everything else* from the selection.
|
| 170 |
+
|
| 171 |
+
|
| 172 |
+
Select More/Less
|
| 173 |
+
================
|
| 174 |
+
|
| 175 |
+
.. admonition:: Reference
|
| 176 |
+
:class: refbox
|
| 177 |
+
|
| 178 |
+
:Mode: Edit Mode
|
| 179 |
+
:Menu: :menuselection:`Select --> More/Less`
|
| 180 |
+
:Hotkey: :kbd:`Ctrl-NumpadPlus` / :kbd:`Ctrl-NumpadMinus`
|
| 181 |
+
|
| 182 |
+
Expand or contract the selection based on current selected control points.
|
| 183 |
+
|
| 184 |
+
More
|
| 185 |
+
For each selected control point, select **all** its linked points (i.e. two, three or four).
|
| 186 |
+
Less
|
| 187 |
+
For each selected control point, if **all** points linked to this point are selected, keep it selected.
|
| 188 |
+
For all other selected control points, deselect them.
|
| 189 |
+
|
| 190 |
+
This implies two points:
|
| 191 |
+
|
| 192 |
+
#. First, when **all** control points of a surface are selected, nothing will happen
|
| 193 |
+
(as for *Less*, all linked points are always selected, and of course, *More* cannot add any).
|
| 194 |
+
Conversely, the same goes when no control point is selected.
|
| 195 |
+
#. Second, these tools will never "go outside" of a surface
|
| 196 |
+
(they will never "jump" to another surface in the same object).
|
structure.rst.txt
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
*********
|
| 3 |
+
Structure
|
| 4 |
+
*********
|
| 5 |
+
|
| 6 |
+
Many of the concepts from :doc:`curves </modeling/curves/introduction>`,
|
| 7 |
+
especially :ref:`NURBS <curve-nurbs>` ones,
|
| 8 |
+
carry directly over to NURBS surfaces,
|
| 9 |
+
such as control points, *Order*, *Weight*, *Resolution*, etc.
|
| 10 |
+
Here we will just talk about the differences.
|
| 11 |
+
|
| 12 |
+
It is very important to understand the difference between NURBS curves and NURBS surfaces:
|
| 13 |
+
the first one has one dimension, the latter has two.
|
| 14 |
+
Blender internally treats NURBS surfaces and NURBS curves completely differently. There are
|
| 15 |
+
several attributes that separate them but the most important is that a NURBS curve has
|
| 16 |
+
a single interpolation axis (U) and a NURBS surface has two interpolation axes (U and V).
|
| 17 |
+
|
| 18 |
+
However, you can have "2D" surfaces made of curves
|
| 19 |
+
(using the :doc:`extrusion tools </modeling/curves/properties/geometry>`,
|
| 20 |
+
or, to a lesser extent, the filling of closed 2D curves). And you can have "1D" curves made of surfaces,
|
| 21 |
+
like a NURBS surface with only one row (either in U or V direction) of control points produces only a curve...
|
| 22 |
+
|
| 23 |
+
Visually you can tell which is which by entering *Edit Mode* and looking at the 3D View header:
|
| 24 |
+
either the header shows *Surface* or *Curve* as one of the menu choices. Also,
|
| 25 |
+
you can :doc:`extrude </modeling/curves/properties/geometry>` a whole NURBS surface curve to create a surface,
|
| 26 |
+
but you cannot with a simple NURBS curve.
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
.. _modeling-surfaces-rows-grids:
|
| 30 |
+
|
| 31 |
+
Control Points, Rows and Grid
|
| 32 |
+
=============================
|
| 33 |
+
|
| 34 |
+
Control points for NURBS surfaces are the same as for NURBS curves. However,
|
| 35 |
+
their layout is quite constraining. The concept of "segment" disappears,
|
| 36 |
+
replaced by "rows" and the overall "grid".
|
| 37 |
+
|
| 38 |
+
A "row" is a set of control points forming one "line" in one interpolation direction
|
| 39 |
+
(a bit similar to :ref:`edge loops <modeling-mesh-structure-edge-loops>` for meshes).
|
| 40 |
+
So you have "U rows" and "V rows" in a NURBS surface.
|
| 41 |
+
The key point is that *all* rows of a given type (U or V) have the *same* number of control points.
|
| 42 |
+
Each control point belongs to exactly one U row and one V row.
|
| 43 |
+
|
| 44 |
+
All this forms a "grid", or "cage", the shape of which controls the shape of the NURBS surface.
|
| 45 |
+
A bit like a :doc:`lattice </animation/lattice>`...
|
| 46 |
+
|
| 47 |
+
This is very important to grasp: you cannot add a single control point to a NURBS surface;
|
| 48 |
+
you have to add a whole U or V row at once
|
| 49 |
+
(in practice, you will usually use the Extrude tool, or perhaps the Duplicate one, to add those...),
|
| 50 |
+
containing exactly the same number of points as the others. This also means that you will only
|
| 51 |
+
be able to "merge" different pieces of surfaces if at least one of their rows matches together.
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
.. _modeling-surfaces-weight:
|
| 55 |
+
|
| 56 |
+
Weight
|
| 57 |
+
======
|
| 58 |
+
|
| 59 |
+
Similar to :ref:`NURBS Splines <curve-nurbs>` NURBS Surface control points have a weight property.
|
| 60 |
+
This weight property controls how much influence the control point has on the surface.
|
| 61 |
+
This weight should not be confused with the :ref:`Goal Weight <surface-goal-weight>`,
|
| 62 |
+
which is used only for soft body simulations.
|
| 63 |
+
The NURBS control point weight can be adjusted in the *W* number field of
|
| 64 |
+
the :doc:`Transform panel </modeling/curves/editing/transform_panel>`.
|
| 65 |
+
|
| 66 |
+
In Fig. :ref:`fig-surface-intro-weight` a single control point, labeled "C",
|
| 67 |
+
has had its *Weight* set to 5.0 while all others are at their default of 1.0.
|
| 68 |
+
As you can see, that control point *pulls* the surface towards it.
|
| 69 |
+
|
| 70 |
+
.. _fig-surface-intro-weight:
|
| 71 |
+
|
| 72 |
+
.. figure:: /images/modeling_surfaces_structure_weight.png
|
| 73 |
+
|
| 74 |
+
One control point with a weight of 5.
|
| 75 |
+
|
| 76 |
+
.. note::
|
| 77 |
+
|
| 78 |
+
If all the control points have the same *Weight* then each effectively cancels each other out.
|
| 79 |
+
It is the difference in the weights that cause the surface to move
|
| 80 |
+
towards or away from a control point.
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
Preset Weights
|
| 84 |
+
--------------
|
| 85 |
+
|
| 86 |
+
NURBS can create pure shapes such as circles, cylinders, and spheres
|
| 87 |
+
(note that a Bézier circle is not a pure circle). To create pure circles, spheres,
|
| 88 |
+
or cylinders, you must set to specific values the weights of the control points.
|
| 89 |
+
This is not intuitive, and you should read more on NURBS before trying this.
|
| 90 |
+
|
| 91 |
+
To create a sphere with 2D surfaces, its the same principle as with a 2D circle.
|
| 92 |
+
You will note that the four different weights needed for creating a sphere
|
| 93 |
+
(1.0, 0.707 = sqrt(0.5), 0.354 = sqrt(2)/4, and 0.25).
|
| 94 |
+
|
| 95 |
+
.. figure:: /images/modeling_surfaces_structure_weight-sphere.png
|
| 96 |
+
|
| 97 |
+
A sphere surface.
|