Hello. I've been experimenting with materials and textures in Unity, specifically trying to combine them to form some sort of procedural material, such as a tiled floor where the type of stones that make up the tiles are randomized. Basically what I want to do is take a bunch of texture data for different types of random substances (such as granite, sandstone, and concrete), and combine them to form a single set of textures for a material, including different colors, normal map data, etc.
I am wondering what is the most efficient way to do this, via a C# script or a by somehow using a custom shader (not even sure if a shader can handle procedural stuff like this, although I imagine that the GPU would be much faster)? Also, what kind of performance impact would this have if I decided to try and do this for every single asset when I enter a new scene? Thanks.