From BlenderWiki

Jump to: navigation, search

Meta Objects

Mode: Object or Edit modes

Hotkey: ⇧ ShiftA

Menu: Add » Meta

Meta objects are implicit surfaces, meaning that they are not explicitly defined by vertices (as meshes are) or control points (as surfaces are): they exist procedurally. Meta objects are literally mathematical formulas that are calculated on-the-fly by Blender.

A very distinct visual characteristic of metas is that they are fluid mercurial, or clay-like forms that have a “rounded” shape. Furthermore, when two meta objects get close to one another, they begin to interact with one another. They “blend” or “merge”, as water droplets do, especially in zero-g (which, by the way, makes them very handy for modeling streams of water when you don’t want to do a fluid simulation). If they subsequently move away from one another, they restore their original shape.

Each of these is defined by its own underlying mathematical structure, and you can at any time switch between them using the MetaBall tools panel.

Typically Meta objects are used for special effects or as a basis for modeling. For example, you could use a collection of metas to form the initial shape of your model and then convert it to another object type (well, only meshes are available…) for further modeling. Meta objects are also very efficient for ray-tracing.

Note that Meta objects have a slightly different behavior in Object mode, as detailed below.

Finding Meta Tools

Most of the meta tools and settings are regrouped in two panels: MetaBall and (in Edit mode only) MetaBall tools. You will also find some options in the Select and Metaball menus of the 3D view header

Visualization

In Object mode, the calculated mesh is shown, along with a black “selection ring” (becoming pink when selected). To learn more on metas in Object mode, see below.

Meta Ball example.

In Edit mode (Meta Ball example), a meta is drawn as a mesh (either shaded or as black wireframe, but without any vertex of course), with two colored circles: a red one for selection (pink when selected), and a green one for a direct control of the meta’s stiffness (see below – light green when active). Note that unless for the Scale (S) transformation, having the green circle highlighted is equivalent to having the red one.

3D Views Update

Mode: Object or Edit modes

Panel: MetaBall (Editing context, F9)

While transforming metas (grab/move, scale, etc.), you have four “modes” of visualization, located in the Update buttons group of the MetaBall panel:

  • Always – fully draw the meta during transformations.
  • Half Res – During transformations, draw the meta at half its Wiresize resolution.
  • Fast – Do not show meta mesh during transformations.
  • Never – Never show meta mesh (not very recommended option, as the meta is only visible at render time!).

This should help you if you experiment difficulties (metas are quite compute-intensive…), but with modern computers, this shouldn’t happen, unless you use many metas, or very high resolutions…

Hiding Elements

As in Object mode, you can hide the selected meta(s), and then reveal what was hidden. This is very handy to clean up a bit your views… Note that the two red and green rings always remain visible in Edit mode, as well as the select circle (in Object mode…).

To hide the current selection, use H, the Hide toggle button in the MetaBall tools, or the Metaball » Hide MetaElems » Hide Selected menu option.

To hide everything but the current selection, hit ⇧ ShiftH or use Metaball » Hide MetaElems » Hide Deselected.

To reveal what was hidden, use AltH, or the relevant option in the same Metaball » Hide MetaElems menu. You can also un-toggle the Hide button (MetaBall tools panel).

Undo & Redo

Mode: Edit mode

Hotkey: CtrlZ, Ctrl⇧ ShiftZ, AltU

Metas also have the Edit mode Undo/Redo feature, behaving exactly as with meshes.

Meta Structure

Technical Details

A more formal definition of a meta object can be given as a directing structure which can be seen as the source of a static field. The field can be either positive or negative and hence the field generated by neighbouring directing structures can attract or repel.

The implicit surface is defined as the surface where the 3D field generated by all the directing structures assume a given value. For example a meta ball, whose directing structure is a point, generates an isotropic (i.e. identical in all directions) field around it and the surfaces at constant field value are spheres centered at the directing point.

Meta objects are nothing more than mathematical formulae that perform logical operations on one another (AND, OR), and that can be added and subtracted from each other. This method is also called Constructive Solid Geometry (CSG). Because of its mathematical nature, CSG uses little memory, but requires lots of processing power to compute.

Underlying Structure

Mode: Edit mode

Panel: MetaBall tools (Editing context, F9), Transform Properties

Blender has five types of metas, each determined by its underlying (or directing) structure. In Edit mode, you can change this structure, either using the relevant buttons in the MetaBall tools panel, or the drop-down list in the Transform Properties panel (N). Depending one the structure, you might have additional parameters, located in both Transform Properties and MetaBall tools panels.

Ball (point, zero-dimensional structure)
This is the simplest meta, without any additional setting. As it is just a point, it generates an isotropic field, yielding a spherical surface (this is why it is called Meta Ball or Ball in Blender).
Tube (straight line, uni-dimensional structure)
This is a meta which surface is generated by the field produced by a straight line of a given length. This gives a cylindrical surface, with rounded closed ends. It has one additional parameter:
  • dx: The length of the line (and hence of the tube – defaults to 1.0).
Plane (rectangular plane, bi-dimensional structure)
This is a meta which surface is generated by the field produced by a rectangular plane. This gives a parallelepipedal surface, with a fixed thickness, and rounded borders. It has two additional parameters:
  • dx: The length of the rectangle (defaults to 1.0).
  • dy: The width of the rectangle (defaults to 1.0).
Note that by default, the plane is a square.
Elipsoid (ellipsoidal volume, tri-dimensional structure)
This is a meta which surface is generated by the field produced by an ellipsoidal volume. This gives an ellipsoidal surface. It has three additional parameters:
  • dx: The length of the ellipsoid (defaults to 1.0).
  • dy: The width of the ellipsoid (defaults to 1.0).
  • dz: The height of the ellipsoid (defaults to 1.0).
Note that by default, the volume is a sphere, producing a spherical meta, as the Ball option…
Cube (parallelepipedal volume, tri-dimensional structure)
This is a meta which surface is generated by the field produced by a parallelepipedal volume. This gives a parallelepipedal surface, with rounded edges. As you might have guessed, it has three additional parameters:
  • dx: The length of the parallelepiped (defaults to 1.0).
  • dy: The width of the parallelepiped (defaults to 1.0).
  • dz: The height of the parallelepiped (defaults to 1.0).
Note that by default, the volume is a cube.


Threshold (Influence)

Mode: Object or Edit modes

Panel: MetaBall (Editing context, F9)

Threshold defines how much a meta’s surface “influences” other metas. It controls the field level at which the surface is computed. The setting is global to a group of Meta objects. As the threshold increases, the influence that each meta has on one another increases.

There are two types of influence: positive or negative. The type can be toggled on the MetaBall tools panel (while in Edit mode), using the Negative button. You could think of positive as attraction and negative as repulsion of meshes. A negative meta will push away or repel the meshes of positive Meta objects.

Examples

Positive.

A positive influence is defined as an attraction meaning the meshes will stretch towards each other as the rings of influence intersect. (Positive) shows two meta balls’ ring of influence intersecting with a positive influence.

Notice how the meshes have pulled towards one another. The area circled in white shows the green influence rings intersecting.

Negative.

The opposite effect of a positive influence would be a negative influence: the objects repel each other. (Negative) shows a meta ball and meta plane where the first is negative and the second, positive. Notice how the negative meta is not visible: only the surrounding circles appear. This is how Blender indicates that the object is negative.

The white arrow indicates how the sphere is repelling or pushing away the plane’s mesh. This causes the plane’s mesh to “cave in” or collapse inward. If you move the plane away from the sphere, the plane’s mesh will restore itself.

Very interesting screen-savers have been created using animations of positive and negative meta objects together in the same space!

Wiresize

Mode: Object or Edit modes

Panel: MetaBall (Editing context, F9)

The Wiresize controls the resolution of the resultant mesh as generated by the Meta object.

Wiresize
The 3D View resolution of the generated mesh. The range is from 0.05 (finest) to 1.0 (coarsest).
Rendersize
The rendered resolution of the generated mesh. The range is from 0.05 (finest) to 1.0 (coarsest).


Examples

One way to see the underlying mathematical structure is to lower the Wiresize, increase the Threshold and set the Stiffness (see below) a fraction above the Threshold. (Underlying structure) is a (Meta cube) with the above mentioned configuration applied as follows: Wiresize of 0.410, Threshold of 5.0 and Stiffness a fraction above at 5.01.

Underlying structure.
Meta cube.

You can clearly see the underlying cubic structure that gives the meta cube its shape.

Stiffness

Mode: Edit mode

Panel: MetaBall tools (Editing context, F9), Transform Properties

Hotkey: S

Together with Threshold, Stiffness controls the influencing range. While the threshold is common to all metas in a same object (or even a same object family), the stiffness is specific to each meta.

When a Meta object comes within “range” of another meta, the two will begin to interact with each other. They don’t necessarily need to intersect, and depending on the Threshold and Stiffness settings they most likely won’t need to. Stiffness is materialized by the green ring surrounding its meta. The field is found on the MetaBall tools panel (or the Transform Properties one, N).

The range is from 0.0 to 10.0. But to be visible the Stiffness must be slightly larger than the Threshold value. You can also visually adjust the Stiffness ring by using the RMB Template-RMB.png to select it and activating Scale mode with the S.

Examples

Stiffness.

In (Stiffness), the meta ball labeled “A”, has a smaller Stiffness value than the one labeled “B”. As you can see the green ring radius is different between them.

Primitives

There are five predefined meta “primitives” (or configurations) available in the Add » Meta sub-menu:

  • Meta Ball adds a meta with a point underlying structure.
  • Meta Tube adds a meta with a line segment underlying structure.
  • Meta Plane adds a meta with a planar underlying structure.
  • Meta Ellipsoid adds a meta with an ellipsoidal underlying structure.
  • Meta Cube adds a meta with a volumetric cubic underlying structure.


“Object” Mode

Meta objects have a different behavior in Object mode than other object types – they can be “regrouped” in so-called “families”.

Object Family

Mode: Object mode

Panel: Link and Materials (Editing context, F9)

A “family” is a way to regroup several meta objects, producing something very similar to having several metas inside a same object.

A family is defined by the left part of an object’s name (the one before the dot). Remember object’s name is the one in the “OB” field, in most panels, not the “MB” field, which is the meta datablock’s name… For example, the family part of “MetaPlane.001” is “MetaPlane”. Each meta object in the same “family” is associated with one another as discussed below.

Meta ball base.

Families of metas are controlled by a base Meta object which is identified by an Object name without a right part. For example, if we have five metas called “MetaThing”, “MetaThing.001”, “MetaThing.002”, “MetaThing.003” and “MetaThing.004”, the base Meta object would be “MetaThing”.

The base Meta object determines the basis, the resolution, the threshold, and the transformations. It also has the material and texture area. The base meta is effectively the parent of (or perhaps a better word to use is “the owner of”) the other metas in the group (i.e. it is as if the other metas where “included” or joined into the base one).


Examples

(Meta ball base) shows the base meta labeled “B”. The other two Meta objects are children. Children’s selection rings are always black, while the group’s mesh is pink. Because the metas are grouped, they form a unified mesh which can always be selected by selecting the mesh of any meta in the group. For example, in the example (Meta ball base), only the lower sphere (the parent) has been selected, and you see that both the parent’s mesh and all of the children’s meshes are now highlighted.

Scaling the “base”.

The base Meta object controls the polygonalization (mesh structure) for the group, and as such, also controls the polygonalization for the children (non-base) metas. If we transform the base meta, the children’s polygonalization changes. However, if we transform the children, the polygonalization remains unchanged.

Hints

This discussion of “polygonization” doesn’t mean that the various meshes don’t deform towards or away from each other (meta objects always influence one another in the usual way, whether or not they are members of the same family). Rather, it means that the underlying mesh structure changes only when the base object transforms. For example, if you scale the base, the children’s mesh structure changes. In (Scaling the “base”), the base has been scaled down, which has the effect of scaling the mesh structure of each of the children. As you can see, the children’s mesh resolution has increased, while the base decreased. The children did not change size!



Introduction
What is Blender?
Introduction
Blender’s History
License
Blender’s Community
About this Manual
What's changed with Blender 2.4
Installing Blender
Introduction
Python
Installing on Windows
Installing on GNU/Linux
Installing on Mac
Installing on other Operating Systems
Configuring Blender
Directory Layout
Starting
The Interface
Introduction
Keyboard and Mouse
Window System
Arranging frames
Headers
Console window
Window Types
Screens (Workspace Layouts)
Scenes
Configuration
Modes
Contexts
Menus
Panels
Buttons and Controls
Internationalization
Your First Animation
1/2: A static Gingerbread Man
2/2: Animating the Gingerbread Man
The Vital Functions
Quick render
Undo and Redo
Default scene
Screenshots
Help!
Setting Preferences
Configuring Preferences
Interface
Editing
Themes
File
System
Interaction in 3D
Introduction
Introduction
Navigation
Introduction
3D View
3D View Options
3D View Usage
Camera View
Layers
Local or Global View
Sketch in 3D Space
Introduction to Grease Pencil
Drawing sketches
Layers and Animation
Converting sketches to geometry
Transformations
Introduction
Basics
- Grab/Move
- Rotate
- Scale
- Gestures
Advanced
- Mirror
- To Sphere
- Shear
- Warp
- Push/Pull
Transform Control
Introduction
Precision of Transformations
Numeric Transformations
Transform Properties
Reset Object Transforms
Manipulators
Transform Orientations
Axis Locking
Pivot Point
- Active object
- Individual Centers
- 3D Cursor
- Median Point
- Bounding Box Center
Snapping
Snap to Mesh
Proportional Edit
Data System and Files
Blender's Data System
Blender's Library and Data System
Blender's Datablocks
Scenes
Working with Scenes
The Outliner Window
Appending and Linking
File operations
Introduction
Opening blender files
Saving blender files
Modeling
Introduction
Introduction
Objects
Objects
Selecting Objects
Editing Objects
Groups and Parenting
Tracking
Duplication
- DupliVerts
- DupliFaces
- DupliGroup
- DupliFrames
Mesh Objects
Meshes
- Mesh Structures
- Mesh Primitives
Selecting
- Selectable Elements
- Selection Basics
- Advanced Selecting
- Selecting Edges
- Selecting Faces
Editing
Basic Editing
- Translation, Rotation, Scale
- Adding Elements
- Deleting Elements
- Creating Faces and Edges
- Mirror editing
Vertex Editing
Edge Editing
Face Editing
Deforming Tools
- Mirror
- Shrink/Fatten Along Normals
- Smooth
- Noise
Duplicating Tools
- Duplicate
- Extrude
- Extrude Dup
- Spin
- Spin Dup
- Screw
Subdividing Tools
- Subdivide
- Subdivide fractal
- Subdivide smooth
- Loop Subdivide
- Knife Subdivide
- Bevel
Miscellaneous Tools
Retopo Tool
Sculpt Mode
Multi Resolution Mesh
Vertex Groups
Weight Paint
Mesh Smoothing
Curve Objects
Curves
Selecting
Editing
Advanced Editing
Surface Objects
Surfaces
Selecting
Editing
Text Objects
Texts
Editing
Meta Objects
Metas
Editing
Empty Objects
Empties
Group Objects
Groups
Scripts
Modeling Scripts
Modifiers and Deformation
Introduction
Introduction
Modifiers Stack
Modify
UVProject
Generate
Array
Bevel
Booleans
Build
Decimate
EdgeSplit
Mask
Mirror
Subsurf
Deform
Armature
Cast
Curve
Displace
Hooks
Lattice
MeshDeform
Shrinkwrap
SimpleDeform
Smooth
Wave
Simulate
Cloth
Collision
Explode
Fluid
Particle Instance
Particle System
Soft Body
Lighting
Introduction
Introduction
Lights
Introduction
Light Properties
Light Attenuation
Light Textures
What Light Affects
Lights In Other Contexts
Shadows
Introduction
Shadow Properties
Raytraced Shadow Properties
Volumetric Lights
Introduction
Lamps
Introduction
Lamp Light
- Raytraced Shadows
Spot Light
- Raytraced Shadows
- Buffered Shadows
- Halos
Area Light
- Raytraced Shadows
Hemi Light
Sun Light
- Raytraced Shadows
- Sky & Atmosphere
Lighting Rigs
Radiosity
Introduction
Rendering
Baking
Scene Light
Ambient Light
Ambient Occlusion
Exposure
Exposure
Materials
Introduction
Introduction to Shading
Materials Introduction
Usage
Assigning a material
Material Preview
Material Options
Multiple Materials
Properties
Diffuse Shaders
Specular Shaders
Ambient Light Effect
Color Ramps
Raytraced Reflections
Raytraced Transparency
Subsurface Scattering (SSS)
Strands
Node Materials
Material Nodes
Nodes Editor
Node Controls
Nodes usage
Nodes Groups
Material Node Types
- Input Nodes
- Output
- Color
- Vector
- Convertor
- Dynamic
Vertex Paint
Using Vertex Paint
Halos
Halos
Textures
Introduction
Introduction
UV/Image Editor
Common Options
Texture Stack
Texture Types
Texture Types
Procedural Textures
Image Textures
Video Textures
Texture Nodes
- Nodes Editor
- Node Controls
- Nodes usage
- Nodes Groups
-- Textures Input Nodes
-- Textures Output Nodes
-- Textures Color Nodes
-- Textures Patterns Nodes
-- Textures Textures Nodes
-- Textures Convertor Nodes
-- Textures Distort Nodes
Texture Plugins
Texture Painting
Painting the Texture
- Projection Paint
Mapping
Mapping
Environment Maps
UV Unwrapping Explained
- Unwrapping a Mesh
- Managing the UV Layout
- Editing the UV Layout
- Applying an Image
Influence
Influence
- Material
-- Bump and Normal
-- Displacement
- Particles
- World
World and Ambient Effects
World
Introduction
World Background
Ambient Effects
Mist
Stars
Rigging
Introduction
Introduction to Rigging
Armatures
Armature Objects
Panels overview
Bones
Visualization
Structure
Selecting
Editing
- Bones
- Properties
- Sketching
- Templating
Skinning
Introduction
Linking Objects to Bones
Skinning to Objects’ Shapes
Retargeting
Posing
Introduction
Visualization
Editing Poses
Pose Library
Using Constraints
Inverse Kinematics
Constraints
Introduction
Introduction
Constraints Common Interface
Constraints’ Stack
Transform Constraints
Copy Location
Copy Rotation
Copy Scale
Limit Distance
Limit Location
Limit Rotation
Limit Scale
Transformation
Tracking Constraints
Clamp To
IK Solver
Locked Track
Stretch To
Track To
Relationship Constraints
Action
Child Of
Floor
Follow Path
Null
Rigid Body Joint
Script
Shrinkwrap
Animation
Introduction
Introduction
The Timeline
Markers
3D Views
Animation Editors
Animation Editors
Ipo Editor
Ipo Curves and Keyframes
Ipo Datablocks
Ipo Types
Ipo Editor Interface
Editing
- Ipo Curves
- Keyframes
Ipo Drivers
Action Editor
Editing Action Channels
NLA Editor
Editing NLA Strips
Strip Modifiers
Animation Techniques
Introduction
Animating Objects
- Using Constraints
- Moving Objects on a Path
Animating Shapes
- Shape Keys
- Editing Shape Keys
- Animating Shape Keys
- Shape Keys Examples
Indirect Shape Animation
Animating Armatures
- Stride
Animating Lamps
Animating Cameras
Animating Materials
Animating Textures
Animating World
Physical Simulation
Introduction
Introduction
Dynamics
Force Fields
Collisions
Particles
Particles
Types
Physics
- Newtonian
- Keyed
- Boids
Visualization
Controlling Emission, Interaction and Time
Cache & Bake
Hair
Children
Vertex Groups
Particle Mode
Soft Body
Introduction
Exterior Forces
Interior Forces
Collisions
Simple Examples
Combination with Armatures
Combination with Hair Particles
Reference
Cloth
Introduction
Fluids
Fluid
Using the Game Engine
Using the Game Engine
Rendering
Introduction
Introduction
Camera
The Camera
Perspective (Vanishing points)
Depth Of Field
Render
Displaying Renders
Basic Options
Antialiasing (Oversampling)
Rendering Animations
Panoramic
Render Baking
Using the Command Line
Output
Output
Video Output
Effects and Post Processing
Introduction
Render Layers
Render Passes
Edges & Toon
Stamp
Color Management & Exposure
Depth Of Field
Motion Blur
Render Performance
Rendering Performance
Distributed Rendering
External Render Engines
Introduction
YafRay
Compositing with nodes
Composite Nodes
Introduction
Nodes Editor
Node Controls
Nodes usage
Nodes Groups
Composite Node types
Composite Node types
Input Nodes
Output Nodes
Color Nodes
Vector Nodes
Filter Nodes
Convertor Nodes
Matte Nodes
Distortion Nodes
Editing Sequences
Introduction
Introduction
The sequencer
Usage
Sequencer Modes
Sequence Screen Layout
Effects
Built-in Effects
Plugin Effects
Audio
Audio Sequences
Extending Blender
Introduction
Introduction
Python Scripting
Python Scripting in Blender
Setting up Python
The Text Editor
A working example
References
Python Scripts
Script Catalog
Bundled Scripts
Plugins
Blender's Plugins System
Texture plugins specifications
Sequence plugins specifications
Game Engine
Introduction
Introduction
The Logic Editor
Usage
Game Properties
Sensors
Introduction
Sensor Types
Controllers
Introduction
Expressions
Actuators
Introduction
Action
Camera
CD
Constraint
Edit Object
Ipo
2D Filters
Game
Message
Motion
Parent
Property
Random
Scene
Shape Action
Sound
State
Visibility
Cameras
Cameras
Dome Camera
Physics
Physics Engine
Material Physics
Object Types
- Static
- No Collision
- Dynamic
- Rigid Body
- Soft Body
- Occluder
- Sensor
Python API
Bullet physics
VideoTexture
Various resources
List of Features
External resources
Game Engine Basics (BSoD Tutorial)
FAQ