Huge Material Compiling Times

We have a 13 layered landscape material and were encountering huge shader compile times.
Is this normal or are we not suppose to have this many layers ?

Dear Robert,

Compiling Landscape Materials is the thing that takes the longest for me out of anything I do with the material editor.

Internally, the Landscape system tends to create many many instances of various parts of the material tailored to the different actual shapes of the landscape.

At least that’s what happened for me in UE3 version.

So depending on your landscape size and the number of layers, a huge compile time makes sense to me.

I actually try to avoid recompiling/computing my landscape material for this reason :slight_smile:

I would imagine reducing this compile time would require fundamental changes to how the Landscape system uses landscape materials, rather than anything to do with just the Material Editor.


#Are You Using Layer Blend?

I am expecting to see a big node in your picture with 13 layers as part of a layer blend

Are you using that node?

That might help your compile times!

The output from layerblend goes into your diffuse channel

you can make a layer blend of the normal maps for your normal map material channel

Rama

PS: It bears testing whether a layerblend would help with your compile times, even if it is not your preferred method.

You would have a singe big node with 13 inputs and the single output going to your diffuse :slight_smile:

you would optionally also have 13 inputs for a layerblend going to single output of normal map

See, i tried this node before and it results in an immediate crash with "Assertion failed: InputPins.Num() == ExpressionInputs.Num() " when i try and add layers. I reported it with the crash tool. I just figured it wasn’t finished.

Any secrets ? Or did my build just miss out ?

LayerBlend node was working in UE3 so it is quite finished. :slight_smile:

You have to add each layer via an array in the editor node properties panel.

Make sure the name matches!

You can test this node in a new, simple landscape test to make sure you get it workn right

setting the “preview weight” will let you know that you got the name right :slight_smile:


#You Need Layer Blend

Layer Blend node performs optimizations no other node does, for Landscapes, which will cause your game to run better.

You must get this node working, especially for 13 layers!

Let us know if this also improves your compile times :slight_smile:

Yeah, after adding a layer and renaming the layer name it crashes as soon as i finish typing and click away, or hit enter.

Well that crash should be a separate topic.

Please make a new post and post an image or the text of your crash call stack.

Epic Devs need to know about this in an isolated and clear fashion :slight_smile:

#Repro

Have you tried this whole process with a new landscape

where you made 3 landscape layers with simple names

and then done these steps mentioned in my answer?

That will be important info for your other post as well :slight_smile:

Rama

Hi Robert,

What are your system specs (including processor)? And exactly how long is the material taking for you to compile?

Sorry i forgot

  • Specs
  • OS: Windows 7 x64
  • CPU: AMD Phenom II x6 1045T 2.7ghz
  • RAM: 4 GB
  • Graphics Card: ATI HD6770 w/ 1 GB
  • UAC: Off
  • Visual Studio 2012 Ult

  • *Compile Time Elapsed *
  • Depends on which layers are showing, and the kind of landscape res but anywhere from 43,000+ seconds to 35,000+ seconds

Use a material instance of your landscape material. I wont need to compile unless you change the parent material.

Hello,

This is a question from the beta version of the engine. We are marking this answered for tracking purposes. If you are experiencing an issue similar to this please post a new question.

Thank you.