The possible reason to the Virtual Height Field Mesh flicker problem

VHM is great for things like snow trails but the flicker problem is a huge pain in the ■■■, so I’ve experimented with my own version of “VHM” and maybe I findout why and how to fix.

Please bear with my poor English.

To my understanding, the VHM is consist with “tiles”, which tessellates depending on the view distance, so I made a plane with 8 LODs, from 2 triangles to 2^8 triangles, and this wil be my basic “tessellated tile”.

Then align them in an X-Y formation, each aside another seamlessly, then with the LOD, it looks just like VHM or tessellation, well kind of.

Then use the RVT height to make the displacement effect to the tiles, and since the planes are seamless, together they look like a single huge curved surface, just like VHM does. But now the flicker problem appears too, just like VHM.

I realize this is because the displacement is too high,the triangles are too far away to their original height, so when their original meshes are out of sight (way below the lower edge of the screen), the culling system will decide those poor triangles should not be rendered, dispite their displacements.

So, I change the initial height for each tile plane, use a linetrace to make them just above the landscape mesh a little, now since every tile is in the camera’s frustrum, the flicker problem is no more. Now I have a perfect home-made “VHM”, well, kind of…I’m using this technique to make snow trail, looks promising.

I don’t know if the Ture VHM is using the similar method for the “tiles”, I just hope my expierence could help the VHM dev team.