Why can't we use a bitmap (photoshop modified) to replace shader calculations in a material?

Hi, I have a question that may sound stupid.

Starting with a simple example, say I have a raw texture that I want to tweak. Maybe I want to multiply its red channel to the roughness or something. You get the idea.

In a lot of materials shown by Epic or on the internet, I see a lot of such tweak is done in the material shader of the engine. I assume this kind of shader calculation would have negative impact on realtime performance for our game.

So, why can’t we just use photoshop/substance designer to do such tweak, output a texture file, import it to the engine, which is only an one step calculation in the material shader. Isn’t this method less costly for realtime rendering?

I’ve attached a picture to explain:

Yes, That would result in less calculations.
Potentially resulting in better GPU performance.

But I beleive that it done like that for more flexibility, Examples: Changing the base colour on the fly, Changing the noise texture to something different, Changing the noise texture blending.

I don’t beleive you should worry about details like this to early as they tend to be small performance loss to gain a lot of flexibility, But I don’t think you should ignore common/good material practices.
You would be better off profiling the graphics (either with the built in graphics profiller or a GPU brand one(check my sig)) to find where to focus your efforts.

TLDR: Flexibility


Thank you for your answering and advice. It helps :slight_smile:

Take example of detail texturing. You add high frequency details from small texture on top of low resolution base texture. If you would want to bake this to single texture you would need super high res textures.(>8k)

For mobile it will actually render the node tree to a texture like that.

No it wont.