Repran said:
Hi all,
Would like to get your input on what the limitations of procedural textures are. From the top of my head I can list a couple of materials procedural textures do well (metal, wood, stone, marble, plastic, leather, cloth, skin, even fur!).
But what are the limitations? Maybe snake skin and turtle shells?
Steve
The limitations on procedural textures are not really of the type "you can make this, but not that". Rather, some things just lend themselves to a procedural description more than others. Snake skin and turtle shells would be some of the easier sorts of things to do procedurally because they are repetitive and have a nice structure to them. They "look mathematical", for lack of a better term.
This is not an exhaustive list, but it might help your understanding to see some of the advantages and disadvantages listed. Remember, a "procedural" texture is just one that is created from some combination of math functions or operations such as sin/cos,step functions,perlin noise, or whatever.
Pros:
1) Very small memory footprint before the texturemap itself is generated. The ultimate in image compression.
2) If CPU/GPU is fast enough, no texture memory is needed at all as it is generated "on the fly" in a pixel shader. This is the ideal situation.
3) If generated on the fly, procedural textures can have exactly the right level of detail.....one sample of the procedural texture can be calculated per pixel on the screen.
Cons:
1) It can be difficult to come up with a formula to get the exact look you are after. It's usually much easier to just have an artist create the texture. This is particularly true for things that show little noise or repetition, like text (silly example).
2) Tools for creating procedural textures are not mature. It is a challenge to expose the parameters of the procedure to the artists in such a way that they can tell what the effect will be. Good procedural textures are often found by luck.
3) Generating procedural textures on the fly can take a huge number of shader program instructions. It will almost always be slower than just looking up a pre-made texture.
4) Generating procedural textures at startup can take longer than loading them.