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.

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
Go to Edit -> Preferences.
Select the Add-ons tab on the left if it is not already.
Select the Install… button along the top.
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.
Then, click the Install add-on from file button.
Search for the add-on by typing Conform Object in the search box if it does not already appear.
Make sure the checkbox next to the add-on (Add Mesh: Mesh Materializer) is ticked:

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:

Jacket Credit: Curtis Kinney

The Jacket’s UV Map.
Step by Step
In Blender, first select the Source Object (the object to be projected).
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.
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.
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.
Right-Click in the viewport, and select Mesh Materializer - Create UV Mesh from the submenu that appears.
Tip
Access this option quickly by clicking the checkered box icon in the top menu bar of the viewport:
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:
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.
Notice that the badge edges are trimmed because they are on the boundary of the Jacket’s UV Map.
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.
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.
Unticking the Preview Mode if it isn’t already, change the Offset parameters to move the Source Object along the Target Object’s surface.
The Offset position and scale parameters are used to move the badge onto the front of the Jacket’s chest.
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.
The Height, Offset Position and Offset Scale parameters are used to adjust the object position.
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.

Options

The Source Object, Target Object and UV Mesh 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

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

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:

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

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

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

The Source Object is being scaled in UV space.

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

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

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

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:

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.

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.

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.

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.

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

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.