Visual Procedural Texture Editor

NumberFlow is now for sale in the asset store. See this topic for more info.

Check out the web player demo!

I’ve been working on a project that includes a procedural texture editor right inside Unity. This stuff is purely mathematical, it has nothing to do with Allegorithmic or anything like that.

You fool around with nodes representing mathematical operations like addition, multiplication, sines, Perlin noise, and so on. The resulting formula is computed per texel, producing a float value which is used to pick a color from some gradient. It supports multiple layers with various blend modes, though even with a single layer you can get quite complex results.

This thing is part of my current game plus tutorial project, but I’m wondering whether I should split it into a project of its own. Would people be interested in this tool or a dedicated tutorial about it on the Asset Store?

Here are a few examples.

What do you think about it?

This looks really cool, if it’s not much I’d buy it just to mess around with it.

Awesome… I could definitely generate flame sprites with this…

Really cool tool! When it’s ready I’d love to have a play with it :slight_smile:

Very nice!

Can it take regular images as inputs ?

:slight_smile: Glad there’s interest! One of the reasons for creating this was figuring out how to make node-based editors like Strumpy Shader Editor.

Flame sprites are definitely possible! Here’s a very crude flame effect I just whipped up, simply three layers of Y plus turbulence added, reusing the gradient of the fire ball from above. I’m sure you can get far better results if you put some time in it.

It doesn’t work with existing textures as it’s not aimed at post-processing or filtering images. But depending on your needs, you could combine the generated and existing textures in code or in a shader.

nice job

That sure looks interesting. Will keep an eye on this :slight_smile:

yea this looks really awesome. R the textures output into a texture format and what is the size of the files compare to traditional textures.

The texture generators are Unity assets and contain a few kilobytes of data, depending on how much layers and nodes are used. You can use them to fill textures of any size and format, both in the editor and in game. Animating textures can be done this way too, though large and complex stuff can get too expensive to compute at high frame rates.

I’ve always been fascinated with procedural texture generation. There was a project that had this ( http://www.theproduct.de/ ) but they never finished it, and I was always disappointed in that.

I think CPUs these days are fast enough, and internet connections slow enough, that having your assets be a few K, instead of hundreds, is a worthwhile thing.

Good luck to you on this project!

That is definite cool… i almost thought about using ICE in Softimage to generate an animated flame to be put on billboard planes… :slight_smile:

Compared to werkkzeug, my work is far more modest and simple, restricted to basic mathematics. So no signboards or other complex design stuff. Of course, you can still make lots of nice materials and effects. I’m using it in my current project to generate random marble patterns, for example.

The main point of this editor is that it’s all directly in Unity, so a standalone executable version doesn’t really interest me right now.

Oh, yeah, I understand. Conversion would be hellish, anyway, especially if you use UnityScript.

Yeah, and swirly marble textures are the best thing to do procedurally anyway, as long as you have a modest math ability. They can produce very small textures as opposed to taking it from a photograph and editing in Photoshop or GIMP.

I’m programming in C#, but still it’s using the Unity GUI and Undo stuff, so not trivial to port. Actually, I want to make this into a tutorial too, showing off how to do advanced editor scripting. So if I put this on the Asset Store I might include a tutorial with it. Or make that a separate product, I’m not sure what’s the best approach.

I’ve added a Lerp function node so I can experiment with more complex blending. An added benefit is that at the extremes only one of the branches needs to be computed. This can potentially speed things up quite a bit.

Lerping X and Y based on square distance from center:

Lerping X and Y based on turbulence:

Lerping X and turbulence based on a smooth checker pattern:

Ooohhh…nice. Shinies

O.o must see more shinies

How far off are you from initial release? I’d love an early adapters discount :slight_smile: in asset store if still in beta stage.