How created my own Procedural Textures for Unity3d

How created my own Procedural Textures for Unity3d

Nov 18

I had been reading a lot about Perlin noise and other noise generation techniques, and I was pretty excited about the possibilities for endlessly variable textures that could be created on the fly. I hadn’t noticed anything like this in the Unity Asset Store, so I thought I could make something that other people could benefit from as well.

So I got to work, creating an editor that created nice marble textures and tiled wooden boards. I planned to move on to more complex textures (like tiling brick and normal texture support), but I thought this was a good place to start.

Now that’s some knotty pine!

Here is what it looks like in a scene, which is an amazing small 42k (and loads fast too):

42k is pretty small considering an empty scene is 30k

I was thinking, this is going to be a huge hit with Unity developers! Then while researching on how to support normal maps I came upon the fact, that Unity already has their own format to support procedural textures and the results looked damn good too: Substances Procedural Materials in Unity. This came out in 2011? Why didn’t anybody tell me?

Oh well, it was really neat to mess with Perlin noise, specifically how to add turbulence to the noise to give it much more natural looking results. I would suggest this page: http://lodev.org/cgtutor/randomnoise.html for further reading on the subject.

So this is probably where I will leave the project, but let me know if anyone out there is interested in a less sophisticated and less expensive version of the tools already offered by Allegorithmic… maybe I could offer different options?

The project is now available on Github:
Download the Procedural Texture Project

4 comments

  1. Roy Nieterau

    Does this run at a reasonable speed? Are you willing to share the code?

  2. A word to the wise when using Unity with GitHub, GitHub has a nice project template for Unity which includes a specialise .ignorefile for Git.

    This will exclude such folders as Temp and Library as you don’t need to maintain them as they are generated when you open Unity for a project.

    Will just keep the size of your repo down to what’s needed 😀

Leave a Reply