Mesh Materializer

Mesh Materializer

What is Mesh Materializer?

Mesh Materializer is a Blender add-on for any 3D modeler who needs to wrap an object onto the surface of another object just like a material, using a UV texture map as a guide.

Mesh Materializer

The Source Object (the spiral) is wrapped onto the Target Object (the egg) using the Target Object’s UV Map. It is then positioned using the modifier.

The add-on handles the complexity of doing this for you in a non-destructive way by adding a unique modifier.

Features:

  • Simple right-click menu option performs the operation in one go.

  • The add-on maps the X direction of the object to the U direction of the UV map and the Y direction to the V direction.

  • Control the height of the projected object above the Target Object.

  • Position, scale and rotate the object on top of the Target Object.

  • Update the original objects and the result will change in realtime.

  • A Preview Mode helps you position the object by unwrapping the Target Object’s UVs.

  • Creates a regular Blender object that can be exported or edited once its modifiers are applied.

  • Underlying objects are not affected.

Warning

  • Assumes experience with UV Maps.

  • The add-on does not currently work with overlapping UVs.

Installation

  1. Go to Edit -> Preferences.

  2. Select the Add-ons tab on the left if it is not already.

  3. Select the Install… button along the top.

  4. This will open a file dialog where you should navigate to where you have downloaded the mesh_materializer.zip file. This file should not be unzipped.

  5. Then, click the Install add-on from file button.

  6. Search for the add-on by typing Conform Object in the search box if it does not already appear.

  7. Make sure the checkbox next to the add-on (Add Mesh: Mesh Materializer) is ticked:

Mesh Materializer Installed

Mesh Materializer Installed

If you have any issues do not hesitate to get in touch via info@configurate.net.

How To Use

Here we will project a rectangular badge onto a Jacket:

Mesh Materializer

Jacket Credit: Curtis Kinney

Mesh Materializer

The Jacket’s UV Map.

Step by Step

  1. In Blender, first select the Source Object (the object to be projected).

    Mesh Materializer

    Warning

    Ideally, Source Objects should:

    • Have a good level of topology so that they can be deformed (good number of vertices and quad faces).

    • Not have parents/children.

  2. Then press shift and select the Target Object (the object we are projecting onto). Both objects should be selected.

    Tip

    The Target Object is expected to have at least one UV Map. Whichever UV Map is selected under the Object Data Properties tab on the right hand side will be used.

    Mesh Materializer

    Warning

    The Target Object’s UV Map needs to have non overlapping faces in order for the Add-on to work otherwise nothing may appear. For mirrored objects, see the Tips and Troubleshooting section for potential workarounds.

  3. Right-Click in the viewport, and select Mesh Materializer - Create UV Mesh from the submenu that appears.

    Mesh Materializer

    Tip

    Access this option quickly by clicking the checkered box icon in the top menu bar of the viewport:

    _images/quick_button.png
  4. A new object will be created named “<Source Object Name> - <Target Object Name> UV Mesh” with the Mesh Materializer modifier added. Initially this new object may appear strange, because the Source Object has been stretched across the entire UV Map of the Target Object:

    Mesh Materializer
  5. With the new object selected, switch to the Modifiers tab on the right hand side. Try reducing the Offset Scale parameter down to shrink the Source Object projection. In this case, the object appears on the back of the Jacket.

    Mesh Materializer
  6. Notice that the badge edges are trimmed because they are on the boundary of the Jacket’s UV Map.

    Mesh Materializer

    Tip

    This can also be visualised by ticking the Preview UVs checkbox in the Mesh Materializer modifier. This will display the Target Object’s UV Map in the viewport with the Source Object projected onto it.

    Mesh Materializer

    Here the Preview UVs mode is ticked, which switches on the UV Preview. The Source Object can be seen just on the edge of the UV island. Also, the Preview Offset and Scale parameters have been changed to move the preview object into view.

  7. Unticking the Preview Mode if it isn’t already, change the Offset parameters to move the Source Object along the Target Object’s surface.

    Mesh Materializer

    The Offset position and scale parameters are used to move the badge onto the front of the Jacket’s chest.

  8. You can then make some finer adjustments: change the height of the object, move the object above the surface using the Offet Position Z parameter, and adjust the proportions of the object using the Source Scale parameter.

    Mesh Materializer

    The Height, Offset Position and Offset Scale parameters are used to adjust the object position.

  9. Explore the Options for the Mesh Materializer modifier further and do not hesitate to get in touch if you have any questions.

Tip

Remember that the new object will be updated if the Source Object or the Target Object are changed.

Mesh Materializer

Options

The Source Object, Target Object and Materialized Object.

The Source Object, Target Object and UV Mesh Object.

The Source Object, Target Object and Materialized Object.

The Target Object’s UV Map.

When the add-on runs and the UV Mesh object is created, it has a Modifier attached to it called Mesh Materializer which controls all settings for how the Source Object is mapped onto the Target Object:

Modifier Settings

Source Object

The object to be copied, deformed and wrapped around the Target Object’s UV Map.

Target Object

The object that the Source Object will wrap around.

Target Object UV Map

The name of the UV Map on the Target Object used to project the Source Object.

Warning

The Target Object’s UV Map needs to have non overlapping faces in order for the Add-on to work otherwise nothing may appear. For mirrored objects, see the Tips and Troubleshooting section for potential workarounds.

Target Object Vertex Group

If specified, the Source Object will only be wrapped to faces with vertices assigned to this Vertex Group. The Vertex Group needs to be added to the Target Object and vertices assigned a weight.

Height
Height Control

Because a UV Map does not really have height information, this parameter controls the height of the Source Object when it is projected onto the Target Object surface.

Use Face Normals
Face settings

By default, the Add-On will use the vertex normals of the Target Object to determine how the Source Object is projected. On lower poly meshes, it can sometimes produce more accurate results if the Target Object’s’ Face Normals are used instead.

In the image above, the top left low poly cube does not have enough vertex normal information, so the torus appears stretched. In this case, ticking the Use Face Normals setting will make the torus less distorted, as seen in the top right cube. In higher poly cases like the cubes at the bottom, because there is more vertex information, the Use Face Normals setting matters less, as there is enough Vertex and Face Normals in both cases.

Offset Position

This will move the Source Object along the coordinates of the UV Map:

Offset Position

Here the Source Object (The Torus) is being moved in the U direction across the UV Map.

Offset Position

The same parameter being changed, but this time displayed in UV Space using the Preview UVs option.

Offset Angle
Offset Position

The Object is rotated around its Z axis in UV Space.

This controls the 2D rotation of the Source Object in UV space, therefore rotating it on the surface of the Target Object.

Offset Scale
Offset Position

The Source Object is being scaled in UV space.

Offset Position

The same Source Object being scaled in UV space using the Preview UVs option.

This controls the size of the Object in UV space. By default, the setting will be at (1,1,1) which corresponds to the UVW coordinates in UV Space, stretching the object across the whole of one UV Map time (from 0 to 1). The W direction influences the height of the Source Object as well.

Preview UVs
:ref:`Preview UVs` feature

The Preview UVs checkbox displays the UV Map of the Target Object in 3D space with the Source Object projected onto it. The Preview Position, Scale and Height parameters help to position the Preview object, which can be occluded by the Target Object.

It can be difficult to position the Source Object on a complex UV Map. By ticking the Preview UVs checkbox, the add-on changes to a ‘Preview Mode’ which tries to help you by visualizing how the Source Object is projected by showing its position on the Target Object’s UV Map. You can then change the above parameters and the Source Object will also update.

Often this Preview mode may be hidden by the original Target Object, so there are additional parameters below to help you reposition it. These parameters do not affect the final result.

Tip

Because the Height parameter is difficult to translate to UV space, this is not shown in Preview Mode. To reduce the height in preview mode, use the Preview Height parameter.

Preview Position

Move the Preview Mode position in 3D space.

Preview Scale

Scale the Preview Mode up or down.

Preview Height

Change the height of the Source Object in Preview mode. This is separate to the Height parameter shown in the final result.

Preview with Slicing
Preview UVs feature

This stops the Source Object being sliced in Preview Mode, which can be helpful if the Source Object is in between UV islands.

Tips and Troubleshooting

If you are having any issues do not hesitate to Contact Us

The Source Object only partially appears on the Target Object

_images/sliced_object.png

This could be because the object is on the edge of a UV island border. You can check this by using the Preview UVs mode with the Preview with Slicing ticked:

_images/sliced_objects2.png

In the image above you can see that the donut object was partially outside the UV border.

The Source Object does not appear when I have a UV Map with overlapping faces

There is a limitation in the Sample UV Surface Node used by the add-on that means the Source Object can not be mapped to the Target Object when there are overlapping UV faces. Therefore the Source Object will not appear when there are overlapping UV faces on the Target Object’s UV Map.

This also affects objects with a mirrored UV Map, as the mirrored faces mean the UV Map will be overlapped.

Tip

Mirrored Object Workaround

An object with a Mirror Modifier will have overlapping UVs by default so the Source Object will not appear, however if you limit the UV faces to one half of the UV tile and select Mirror U in the Mirror Modifier’s Data tab, the UVs will no longer overlap.

Mirrored UVs

In the image above, the UVs arranged to one half of the UV tile and the Mirror U option is selected in the Mirror Modifier’s Data section.

Mirrored UVs

Here is the same object with modifiers applied, showing how the UVs are no longer mirrored.

The Source Object is lost somewhere outside of the UV islands

If you perhaps changed the Offset parameters and the Source Object disappears outside of the UV islands, you can use the Preview UVs option with the Preview with Slicing unticked to locate where the Source Object might be.

_images/mesh_mat_lost_islands.png

In the image above the Preview Mode shows the donut is outside of the UV faces, so the object would not appear.

The Source Object has a low number of faces and does not appear at all

This may be because all the vertices of the object do not fit on the UV Map. Try using the the Preview UVs option with the Preview with Slicing unticked to find the Source Object.

I get the error “No Mesh Data to Join” when I try to join the UV Mesh object with another

Because the UV Mesh object is generated from other objects, the Mesh Materializer modifier needs to be applied to make the mesh data permanent before it can be joined. Do this by selecting the UV Mesh object, going to the modifiers tab, and selecting Apply.

_images/mesh_mat_apply_modifier.png

Using the UV Mesh object as a Boolean cutter on the Target Object

_images/boolean_cutter.png

It is best to apply the Mesh Materializer modifier on the UV Mesh object before using as a Boolean cutter on the Target Object. Otherwise, there will be a cyclic relationship between the Target Object and the UV Mesh cutter.

Having any other issues?

Do not hesitate to Contact Us if you are having any other issues, questions, or new feature requests.

Contact

If you have a question, issue, or new feature idea do not hesitate to get in touch via info@configurate.net.

Indices and tables