Download

Render farm shaders?, need IncrediBuild substitute!

Incredibuild is awesome… it fires right up on the other machine and uses the cores available for both systems when compiling shaders, but for $3000 its way out of my budget. What can i use that is lower cost or free even to share shader building and compiling to another computer?

Thank you.

If building shaders is THAT bad, either A: Please use material instances and shader permutation reduction so your not in the hundreds of megabytes/gigabytes of shaders in vram, or B: Get a new cpu.

Even with just a few hundred shaders (which is a very low number for an Unreal project,) compiling shaders on a 16-core CPU will take quite some time if you have to do it from scratch. The compiler is just quite slow; presumably because of all the optimization it tries to do.

If I had to distribute this work, maybe I’d look into replacing the shader compiler executable with an executable that shelled the commands into one of a number of other machines (perhaps in round-robin fashion) Sounds like a hack that might work, if you can keep the input files in sync.

Then again, this is kind-of what the unreal Swarm tries to do – I don’t know if shader compiling is Swarm enabled, but if it is, then the easiest thing to do would be to just set up the Swarm agent and coordinator that comes with the engine. It’s somewhat finicky to get set up and understand how it wants the world to look like, but once that’s done, it works pretty well for what I’ve used it for!

If your talking about the shader compile popup when compiling shaders for build/recompile when changing project settings, am on ryzen 3900x (12 core) and it takes about 2 seconds, so either you expect it to be instant, your cpu is an old xeon, or something is seriously wrong

It definitely not 2 seconds. Here we talk about complex materials which need to compile ~1000 (or more) shaders every time we change them. (Especially landscape materials)

It’s a miracle if you can do that in 2 secs in 3900x.

Shaders, not materials, if your compiling hundreds of materials, there is a very serious problem.

Shaders, only one material.
That’s how landscape material development is :). I’d like to know about an alternative.

Oh, landscapes…

when it says building shaders 4000 or 6000 whatever for example you buy a pack off the marketplace and just need one asset and watch it for 15minutes. this gets distributed to another computer if you use IncrediBuild, i called them and begged but its $3000 firm… so ouch nope. I come from 3dsmax world where we setup many pcs to render, i have Swarm working but it does not do what incrediBuild does there must be a substitute! my work machine is 9700k, its not a beast but not junk either (yet)

Just do this. Hundreds of material instances can be made instantly and not a single one will need to compile. In fact, you can generate new materials DURING THE GAME with material instances (this is useful for user generated content, where instead of making an actual new material, you just make a new material instance and plug the user’s content into the parameters).

I would say just replace the materials on the meshes with material instances, but if there’s a lot of them, that would be tedious. Plus, there may be things done that are completely unique to just that material.
However, for simple materials, you could make a blueprint to automate this, where it goes through each folder, finds materials, gets the textures in those materials, puts them in material instances, then replaces the materials on the meshes with the instances. I’ve done something similar to this, so it should be possible; read this post to get an idea (you just need to read the material and mesh sections).

ok thanks i though was using material instances but will recheck.