The mesh data is accessed in object mode and intended for compact storage, for more flexible mesh editing from python see bmesh.
Blender stores 4 main arrays to define mesh geometry.
Each polygon reference a slice in the loop array, this way, polygons do not store vertices or corner data such as UV’s directly, only a reference to loops that the polygon uses.
Mesh.loops, Mesh.uv_layers Mesh.vertex_colors are all aligned so the same polygon loop indices can be used to find the UV’s and vertex colors as with as the vertices.
To compare mesh API options see: NGons and Tessellation Faces
This example script prints the vertices and UV’s for each polygon, assumes the active object is a mesh with UVs.
import bpy
me = bpy.context.object.data
uv_layer = me.uv_layers.active.data
for poly in me.polygons:
print("Polygon index: %d, length: %d" % (poly.index, poly.loop_total))
# range is used here to show how the polygons reference loops,
# for convenience 'poly.loop_indices' can be used instead.
for loop_index in range(poly.loop_start, poly.loop_start + poly.loop_total):
print(" Vertex: %d" % me.loops[loop_index].vertex_index)
print(" UV: %r" % uv_layer[loop_index].uv)
base classes — bpy_struct, ID
Mesh datablock defining geometric surfaces
Maximum angle between face normals that ‘Auto Smooth’ will operate on
| Type: | float in [0, 3.14159], default 3.14159 |
|---|
Adjust active object’s texture space automatically when transforming object
| Type: | boolean, default False |
|---|
Cycles mesh settings
| Type: | CyclesMeshSettings, (readonly) |
|---|
Edges of the mesh
| Type: | MeshEdges bpy_prop_collection of MeshEdge, (readonly) |
|---|
True when used in editmode
| Type: | boolean, default False, (readonly) |
|---|
Loops of the mesh (polygon corners)
| Type: | MeshLoops bpy_prop_collection of MeshLoop, (readonly) |
|---|
| Type: | IDMaterials bpy_prop_collection of Material, (readonly) |
|---|
| Type: | FloatProperties bpy_prop_collection of MeshFloatPropertyLayer, (readonly) |
|---|
| Type: | IntProperties bpy_prop_collection of MeshIntPropertyLayer, (readonly) |
|---|
| Type: | StringProperties bpy_prop_collection of MeshStringPropertyLayer, (readonly) |
|---|
Polygons of the mesh
| Type: | MeshPolygons bpy_prop_collection of MeshPolygon, (readonly) |
|---|
Render/display the mesh with double or single sided lighting
| Type: | boolean, default False |
|---|
Display weights created for the Bevel modifier
| Type: | boolean, default False |
|---|
Display creases created for subsurf weighting
| Type: | boolean, default False |
|---|
Display UV unwrapping seams
| Type: | boolean, default False |
|---|
Display sharp edges, used with the EdgeSplit modifier
| Type: | boolean, default False |
|---|
Display selected edges using highlights in the 3D view and UV editor
| Type: | boolean, default False |
|---|
Display selected edge angle, using global values when set in the transform panel
| Type: | boolean, default False |
|---|
Display selected edge lengths, using global values when set in the transform panel
| Type: | boolean, default False |
|---|
Display the angles in the selected edges, using global values when set in the transform panel
| Type: | boolean, default False |
|---|
Display the area of selected faces, using global values when set in the transform panel
| Type: | boolean, default False |
|---|
Display the index numbers of selected vertices, edges, and faces
| Type: | boolean, default False |
|---|
Display all faces as shades in the 3D view and UV editor
| Type: | boolean, default False |
|---|
Display Freestyle edge marks, used with the Freestyle renderer
| Type: | boolean, default False |
|---|
Display Freestyle face marks, used with the Freestyle renderer
| Type: | boolean, default False |
|---|
Display face normals as lines
| Type: | boolean, default False |
|---|
Display vertex-per-face normals as lines
| Type: | boolean, default False |
|---|
Display vertex normals as lines
| Type: | boolean, default False |
|---|
Display statistical information about the mesh
| Type: | boolean, default False |
|---|
Draw weights in editmode
| Type: | boolean, default False |
|---|
All skin vertices
| Type: | bpy_prop_collection of MeshSkinVertexLayer, (readonly) |
|---|
All UV maps for tessellated faces (read-only, for use by renderers)
| Type: | TessfaceUVTextures bpy_prop_collection of MeshTextureFaceLayer, (readonly) |
|---|
All tessellated face colors (read-only, for use by renderers)
| Type: | VertexColors bpy_prop_collection of MeshColorLayer, (readonly) |
|---|
Tessellated faces of the mesh (derived from polygons)
| Type: | MeshTessFaces bpy_prop_collection of MeshTessFace, (readonly) |
|---|
Texture space location
| Type: | float array of 3 items in [-inf, inf], default (0.0, 0.0, 0.0) |
|---|
Texture space size
| Type: | float array of 3 items in [-inf, inf], default (0.0, 0.0, 0.0) |
|---|
Selected edge count in editmode
| Type: | int in [0, inf], default 0, (readonly) |
|---|
Selected face count in editmode
| Type: | int in [0, inf], default 0, (readonly) |
|---|
Selected vertex count in editmode
| Type: | int in [0, inf], default 0, (readonly) |
|---|
Treat all set-smoothed faces with angles less than the specified angle as ‘smooth’, unless they are linked by a sharp edge
| Type: | boolean, default False |
|---|
Adjust active object’s texture space automatically when transforming object
| Type: | boolean, default False |
|---|
| Type: | boolean, default False |
|---|
| Type: | boolean, default False |
|---|
| Type: | boolean, default False |
|---|
Use topology based mirroring (for when both sides of mesh have matching, unique topology)
| Type: | boolean, default False |
|---|
X Axis mirror editing
| Type: | boolean, default False |
|---|
Face selection masking for painting
| Type: | boolean, default False |
|---|
Vertex selection masking for painting (weight paint only)
| Type: | boolean, default False |
|---|
UV loop layer to be used as cloning source
| Type: | MeshUVLoopLayer |
|---|
Clone UV loop layer index
| Type: | int in [0, inf], default 0 |
|---|
UV loop layer to mask the painted area
| Type: | MeshUVLoopLayer |
|---|
Mask UV loop layer index
| Type: | int in [0, inf], default 0 |
|---|
All UV loop layers
| Type: | UVLoopLayers bpy_prop_collection of MeshUVLoopLayer, (readonly) |
|---|
UV map to be used as cloning source
| Type: | MeshTexturePolyLayer |
|---|
Clone UV map index
| Type: | int in [0, inf], default 0 |
|---|
UV map to mask the painted area
| Type: | MeshTexturePolyLayer |
|---|
Mask UV map index
| Type: | int in [0, inf], default 0 |
|---|
All UV maps
| Type: | UVTextures bpy_prop_collection of MeshTexturePolyLayer, (readonly) |
|---|
All vertex colors
| Type: | LoopColors bpy_prop_collection of MeshLoopColorLayer, (readonly) |
|---|
Vertices of the mesh
| Type: | MeshVertices bpy_prop_collection of MeshVertex, (readonly) |
|---|
(readonly)
Transform mesh vertices by a matrix
| Parameters: | matrix (float array of 16 items in [-inf, inf]) – Matrix |
|---|
Calculate vertex normals
Calculate split vertex normals, which preserve sharp edges
| Parameters: | split_angle (float in [0, 3.14159], (optional)) – Angle between polys’ normals above which an edge is always sharp (180° to disable) |
|---|
Free split vertex normals
Compute tangents and bitangent signs, to be used together with the split normals to get a complete tangent space for normal mapping (split normals are also computed if not yet present)
| Parameters: | uvmap (string, (optional, never None)) – Name of the UV map to use for tangent space computation |
|---|
Free tangents
Calculate face tessellation (supports editmode too)
Calculate smooth groups from sharp edges
| Parameters: | use_bitflags (boolean, (optional)) – Produce bitflags groups instead of simple numeric values |
|---|---|
| Return (poly_groups, groups): | |
poly_groups, Smooth Groups, int array of 1 items in [-inf, inf] groups, Total number of groups, int in [0, inf] |
|
update
| Parameters: |
|
|---|
unit_test_compare
| Parameters: | mesh (Mesh, (optional)) – Mesh to compare to |
|---|---|
| Returns: | Return value, String description of result of comparison |
| Return type: | string, (never None) |
validate geometry, return True when the mesh has had invalid geometry corrected/removed
| Parameters: | verbose (boolean, (optional)) – Verbose, Output information about the errors found |
|---|---|
| Returns: | Result |
| Return type: | boolean |
Make a mesh from a list of vertices/edges/faces Until we have a nicer way to make geometry, use this.
| Parameters: |
|
|---|
Inherited Properties
Inherited Functions
References