Creating tileable marble textures with the GIMP

To create textures for my Pantheon Deorum image, I needed a way to make marble textures using the GIMP image editing program. I adapted some techniques from existing Photoshop tutorials. The whole process is presented in this short tutorial. The final result should look similar to this and is fully tileable:

Marble Texture made with the GIMP

Step 1

Create a new image with your desired size. In this tutorial, 256 x 256:

New Image

Step 2

Create Solid Noise (Filters → Render → Clouds → Solid Noise) with the following settings:

Solid Noise Settings

You may need to adjust the X- and Y-sizes as well as the Detail setting for different levels of marble detail or for different image sizes. Larger images require larger X- and Y-sizes to have the same level of detail. You should now have something that looks like this:

Solid Noise Results

Step 3

Invert the image (Colors → Invert). Apply the Difference Clouds filter (Filters → Render → Clouds → Difference Clouds) with the same detail setting and X- and Y-sizes as you used for the Solid Noise. If your version of GIMP does not have the Difference Clouds filter, then see Alternate Step 3.

Alternate Step 3: (If you don't have the Difference Clouds filter) Duplicate the background layer which was produced at the end of Step 2. Invert the duplicate layer (Colors → Invert) and set it's Blending Mode to Difference. Now Merge Down so there is only one layer. This produces a result that somewhat resembles Difference Clouds.

Regardless of whether you used Step 3 or Alternate Step 3, the result should look like this:

Difference Clouds

Step 4

Use Levels (Colors → Levels) with the following settings:

Levels Settings

These settings cause many pixels to be mapped to a brighter value and squeezes the values from black to middle gray to a smaller range. The end result is that the layer becomes brighter and the dark veins are a lot thinner but well defined:

Result after Levels is applied

Step 5

Duplicate the layer and Rotate the duplicate by 90 degrees in either direction (Layer → Transform → Rotate clockwise / counterclockwise by 90 degress). Then set this top layer's Blending Mode to Screen. Play around with the opacity until you get a result you like. The duplicate layer breaks up the uniform looking veins and makes it look a bit less synthetic.

Duplicate layer rotated 90 degrees and set to Screen

This will produce the image seen at the beginning of the tutorial:

Final Marble Texture Result

The last two steps were adapted from / inspired by the Realistic Marble Texture tutorial for Photoshop found at (the link seems to be down now as of 2010/07/05 17:19). After you are satisfied, you can use this as a tileable marble texture wherever you need one.

About Peter Yu I am a research and development professional with expertise in the areas of image processing, remote sensing and computer vision. I received BASc and MASc degrees in Systems Design Engineering at the University of Waterloo. My working experience covers industries ranging from district energy to medical imaging to cinematic visual effects. I like to dabble in 3D artwork, I enjoy cycling recreationally and I am interested in sustainable technology. More about me...

Feel free to contact me with any questions about this site at [user]@[host] where [user]=web and [host]

Copyright © 1997 - 2021 Peter Yu