Author Topic: Edge Detect node broken?  (Read 3905 times)

I'm trying to bring my procedural substance into UE4 and I've noticed the edge detect node removes all the detail from the entire chain of nodes it's in.
Here is my substance graph

In case you can't make it out I have two nearly identical trees to make the different size tiles.
They go: TilesRandom>(levels)>Distance>EdgeDetect>BlurHQGrayscale>(Dirt_5)Warp>(Crystal_2)DirectionalWarp
Then a levels node for the top chain and a blend. Then I blend some bnw_spots_3 and then out to the other channels.

When I import this substance into UE4 I get this:

Which essentially removes everything from those first two node chains that contain the edgedetect nodes but keeps the info from the bnw_spots_3.
I tried bypassing the edge detect node like so:

And when I bring that into UE4 everything works fine:

I've seen some other recent posts here with a similar issue.
And so I tried switching my engine and also turning down my edge roundness to 0. Though unlike the OP in the above post I still don't get even the slightest change from adjusting those values.

Any idea how I could fix or work around this? Thanks. :)
Last Edit: February 09, 2016, 02:11:24 pm

Hey, it is because the edge detect node outputs 16 bits maps while the UE Substance engine only supports 8 bits.
if you like to get your hands dirty you can try this:

drag n drop a edge detect node and do right click open reference
in the explorer, copy the edge detect graph and paste it in your own graph

In the copied graph change the node which is in 16 bits to "relative to parent" in the ouput format
close the edge detect sbs WITHOUT SAVING IT

it should be less precise, bu it should work.

Okay so I tried to do what you suggested but I'm not totally clear on some of the steps.

I right-clicked the edge detect node and opened the reference. Then I crop selected it all and copy-pasted it into a new graph. I checked every node in the graph and the only ones that are 16bit are a couple levels nodes and a blur node. The output node doesn't even have a output format option.

So I changed those few nodes to 8bit, but now what?
Am I supposed to just copy and paste that whole graph into my project and use it instead of the edge detect node? Or can I save this new graph as a new user node somehow or something? Or does changing this somehow overwrite the original edge detect node?

Thanks for the help so far though. :)

I found out how to copy the edge detect graph without cropping and duplicating the nodes themselves by right clicking the graph in the explorer and copying the whole thing at once. This allowed my to essentially copy the node. I pasted it into a new graph and called it EdgeDetectV2. In that new (no longer read only) version of edge detect I changed anything that was set to 16bit to relative to input. I then saved it and dragged the sbs directly from the explorer into my material graph. I replaced the original edge detect node with my new non-16bit node (EdgeDetectV2) It worked fine in substance, exactly like the normal edge detect node. But when I bring it into UE4 it's still totally absent of all edge detect detail just like my first post here.

Any ideas? I'm completely lost on this issue.


can you share the sbs so we can test ?


We have a few reports on this issue from other users as well. The devs are looking into the issue. Here are 2 other threads showcasing a similar issue with edge detect.

We will report back as soon as we hear more from the devs.


Head of Substance Demo Art Team
Twitter: The3DNinja

Awesome thanks! I'll keep an eye out for the update.