This plug-in is included in the Rhino 5.0 WIP. Command name is ApplyDisplacement in V5.
Summary: Real and Rendertime displacement addon
Displacement mapping is the geometric cousin of bump mapping . It allows you to deform meshes (be it mesh objects or NURBs render-meshes) based on the greyscale data of a texture.
The Displacement plugin available here requires the RDK to run. However, it is possible you already have the RDK installed, so only download and install the RDK when you cannot load this plugin.
Here's how this plugin works:
1. You start with an object without any displacement data. All displacement properties are grouped under the Displacement tab in the Object properties dialog:
2. You have to enable the displacement on a per-object basis. This means you can also quickly disable displacement without losing your settings. Once you enable displacement and pick a texture (in this case I've used a standard procedural that comes with the RDK), you'll see a preview of the displacement in the viewport:
3. You can boost the effect by picking a higher Amount value. This value indicates the number of units that a white pixel will be displaced. Black pixels are not displaced at all and grey pixels are interpolated:
4. Displacement is tied to the texture mapping properties of an object. Since I've picked a polysurface to start with, every face has it's own texture domain, which results in a very lumpy displacement. When I override the texture mapping to be spherical (the default is per surface), there are no more sudden uv jumps across adjacent surfaces and the result becomes smoother. There still is a uv jump across the sphere seam though:
If you need some more control over the displacement behaviour, you can enable the Advanced controls section. The advanced controls provide an interface for the core settings of the displacement algorithm such as offsets, subdivision and iteration.
For example, with Advanced settings enabled you can specify different values for black and white pixel offsets:
The Ignore creases option will completely weld a mesh prior to displacement, meaning the edges of polysurfaces that contain uv jumps will become less appearent.
By default, meshes are subdivided prior to displacement to ensure a higher level of detail where needed. You can disable subdivision by unchecking the box, meaning the resulting displaced mesh is identical in size to the original mesh:
Observe what happens when we enable subdivision:
Every triangle in the mesh is measured to see whether or not is exceeds the contract threshold (the lower the threshold the more agressive the subdivision) and if it does, it will be replaced by three smaller triangles. This process repeats itself Max steps times. Do note that picking low Contrast values or high Max steps values might result in long calculation times.
(A closup of the displaced mesh, showing the subdivision scheme)
Displacement meshes can be extracted with the _ExtractDisplacedMeshes command.
See also: CurvePiping