Depth Based Blending for Tessellation "Invalid node used in vertex/hull/domain shader input!"

HI guys, I’ve spent the last few days building on an ocean/coast shader, and i’m trying to make it so that the waves are less intense close to the shore, but get more aggressive and large out at sea. I was planning on using this to produce a heightmap of the water depth.

I thought this would work fine, but UE4 kicks up an error when i try to plug anything using “PixelDepth” and “SceneDepth” into the world displacement node. All I can think of is to render the heightmap out as an actual texture and use that in the graph instead, but I was really hoping i could make the entire system work wherever you place it without any setup. Looking around online hasn’t given me any form of solutions, so here I am.

Thanks in advance for any help!

Hey, did you ever have any luck finding a solution to this? I’m having the same problem, except I’m using the PrecomputedAOmask function to generate my heightmap/mask, which the world displacement node also doesn’t like.

Have you tried using Distance Fields to accomplish what you’re doing? I was using distance fields to make some tessellated swamp goo around objects that intersected with the water plane:

They worked perfectly for me until I brought in a landscape actor. It seems that the landscapes in Unreal generate some large, fugly, low res distance fields. However, since the mask your generating is large in scale you may have some success?

Try enabling Distance Fields in your project settings and creating a mask on your ocean material with something like this:

And make sure to un-tick ‘affect distance field lighting’ on your ocean mesh.

Or if you’ve found your own solution let me know!

same here

[SM5] Function Distance_Blend: (Node PixelDepth) Invalid node used in hull/domain shader input!

unless I remove Pixel Depth, which is part of an UE4 shader function