Displaced vertices disappear when the main object goes off screen.

Using shader graph I made a displacement shader that allows me to make a nice tree crown out of a simple mesh:

But heres the problem - the moment the top mesh goes off screen, the whole crown disappears, which looks absolutely unacceptable, not to speak of how abrubtly it happens:

So I’m asking if anyone knows if there is a way to prevent the whole crown from disappearing like this.

Unity generally applies frustum culling based on the mesh bounds. So your shader artificially displaces content of the mesh that Unity is not aware of. You can set the mesh bounds yourself to a larger AABB so you can ensure the whole mesh is rendered. By default the mesh.bounds is simply calculated from the vertices in the mesh. Mesh.bounds is specified in object space (so in local space of the mesh).

So make the bounds large enough and the issue should be gone. Though you should be reasonable about the size of the bounds. Otherwise if the bounds is much larger than the actual mesh, the mesh may get rendered, even it is far off screen or even behind the camera. Since it’s your displacement shader, you should know how much the mesh grows. If there is some fuzziness to the size, just make sure the box is large enough to completely encapsulate the mesh. Any part of the mesh that “sticks out” of the bounds could potentially suddenly disappear once the whole bounds if off screen.