Procedural materials and computing ressources

Hello all,

I’ve always seen that procedural materials are more efficient than image textures (faster, takes less memory, etc…). But what is the limit ?

I’ve been working on a procedural shader, and it’s getting more and more complex, for now I haven’t noticed any drops in performance, but I have a fairly good computer.

Do you think there’s a point where it becomes just more efficient to use a texture instead of a procedural shader ? Do you know of any tests, or do you have any examples ? If not, how could I test that (render time ?).

Thx a lot !

Welcome to BA :slight_smile:

Nope- they’re faster in the viewport, they are much slower to render.

It’s always more efficient, in terms of rendering. That’s why people bake their procedurals to images

2 Likes

Hello !

There are two main things to look for when rendering, you have render times, and memory consumption. If renders are too long you can’t finish your work, and if the memory is full it won’t render either.

Images textures are the fastest to render by far, but they consume a lot of memory, especially if you need big images for closeups and details.

Procedurals takes much less memory, but since all the procedural textures are evaluated on each pixels * samples ( if you render with cycles) * frames they basically make the render slower.

In general it’s not the most extreme slowdown, but if you have complex operations you might find out that a render that took 1mn with images or without any textures might end up taking 2mn30 with complex , fully procedural materials.

That really depends on the case obviously.

If you want to test, fist what is the render engine you’re using ?
1/ To test with cycles, first make sure noise threshold are disabled, denoising also, then set the samples to something relatively low like 50. Try to have something that renders in 1/2mn …

2/ Do a test with your procedural material.

3/ do a material override :
image
And put a basic material there , compare the render times.

4/ if you want to evaluate textures images , just download a pbr image set from ambiantcg, slap that on the basic material and compare rendertimes.
Probably the image will look ugly but the calculations are probably going to be the same with proper textures anyway.

Hope that helps !

2 Likes

Thank you both for your answers.
I actually didn’t know that at all, I used to always go for image textures for more realism and ease of use. But still memory is always an issue. I’m gonna run some tests.

Thanks again !