Website powered by

Cross-Stitch Creator

This tool was created in Substance Designer because my team needed some cross-stitch/embroidery art to hang on an interior scene wall, and I liked the idea of using Substance to take a pixel art input and turn that into detailed, crafted art. After making some quick assets for our scene, I took some time to develop it into a more polished, reusable tool.

Thanks to @VeyoPixel for his cute alien pixel art. https://twitter.com/VeyoPixel

This tool takes a small, pixel art image with a transparent background and outputs the texture maps for a detailed cross-stitch material.

This tool takes a small, pixel art image with a transparent background and outputs the texture maps for a detailed cross-stitch material.

Existing cross-stitch patterns can be replicated with pixel art to easily create new materials, as with this design.

Existing cross-stitch patterns can be replicated with pixel art to easily create new materials, as with this design.

This is an example of a material set to a higher resolution. The base fabric of course changes its density to compensate.

This is an example of a material set to a higher resolution. The base fabric of course changes its density to compensate.

Another example created with the simple cross-stitch tile. Pixel art by @VeyoPixel.

Another example created with the simple cross-stitch tile. Pixel art by @VeyoPixel.

Some examples of the different maps that make up the material—Roughness, Normal, Color and Height.

Some examples of the different maps that make up the material—Roughness, Normal, Color and Height.

Here's the whole graph. Overall it's pretty straightforward.

Here's the whole graph. Overall it's pretty straightforward.

We start with our input images, where the user can select one of the default images or import their own. I also have options to round the corners of the image, add padding around the edges, or adjust the colors.

We start with our input images, where the user can select one of the default images or import their own. I also have options to round the corners of the image, add padding around the edges, or adjust the colors.

The next section creates the background fabric. The user needs to input the resolution of their input image so that the background can match the design and align them correctly.

The next section creates the background fabric. The user needs to input the resolution of their input image so that the background can match the design and align them correctly.

Now we create the thread tiles that make the pattern. We make a single thread shape and transform and recombine it. There are two tiles to choose from: a filled in square and a simpler X shape.

Now we create the thread tiles that make the pattern. We make a single thread shape and transform and recombine it. There are two tiles to choose from: a filled in square and a simpler X shape.

We assemble the flat color and height maps with two tile samplers with the same settings. We get the color input and masks for the samplers from the adjusted input image.

We assemble the flat color and height maps with two tile samplers with the same settings. We get the color input and masks for the samplers from the adjusted input image.

We also create the opacity and AO maps by combining different maps for the stitched and unstitched areas.

We also create the opacity and AO maps by combining different maps for the stitched and unstitched areas.

The final tool controls (in Substance Designer).

The final tool controls (in Substance Designer).