Material VertexNormalWS

Hi everyone,

I have a simple Material (100 KB) which is using VertexNormalWS expression to increase the mesh size from Noise expression. The result is going to be a puffy “cartoonish cloud/smoke”. When “camera clipping” occurs, the result is quite unpleasant and I am wondering if there is any workaround this?

Kind regards

When the camera is in normal position and mesh stays in full camera view, everything is drawn OK.

"Camera clipping"

Download material

Try turning on crack free displacement and turn off adaptive tessellation (under the material properties pane). This should get rid of that issue. Tessellation can be annoying to work with at times, but when it works, it’s nice. You might need to play with the tessellation multiplier though to find a happy medium.

EDIT: Also, keep in mind that when you turn off the adaptive tessellation, your mesh will have a “fixed” resolution to it now and won’t automatically reduce/increase polygons as you get further/closer away from it. So like I was saying about playing with the tess multiplier, you’ll probably want to incorporate some kind of range function. Here’s an example of what I mean. Make sure to set the near/far (50/100 scalars) to realistic distance values and play with your min/max tess multipliers that lead into the lerp. If you’re using really large amounts of displacement, you’ll probably want to keep the min tess multiplier at 2 or more, otherwise you could see some weird morphing as you get closer/further from the object and it doesn’t have enough mesh resolution to accurately displace it all.

Thank you IronicParadox,

I will further experiment tomorrow. Thank you for taking your time to help out.

Best regards,

No problem, good luck! Oh and also, depending on how simple/complex of a tessellated model you’re trying to pull off, you might not even have to worry about a range function like I showed. If it’s something like a handful of little puffy cloud going from 100 polygons to 500, it’s not really that necessary to worry about it. However, if it’s something going from 1k to 30k, and there are going to be a ton of them on screen, you definitely might want to implement some kind of range function to it.