I wonder if any way exists In U4 for doing this? Not in run- time but rather like a special automatic first lod creating technique? I mean instead of doing typical height map based adaptive tessellation a special texture that could point where each new vertex should be spawned exactly. Its vertex ID /order and its relative elevation ?
Since every 3d package could spawn particles on certain surface texel value my guess it should be possible with mesh vertexes too . So you model only lod02 , do one more texture and the engine generate lod01 on its own , in pre-loading time maybe .
My guess is that special texture could have more info then just height and exact vertex placement could give more optimized mesh than adaptive tessellation.
Thinking about it in kind of Substance Designer terms my idea is spawning just regular matrix of vertexes in small equal intervals at first and then sampling a texture with kind of distance fields/ gravity traps/radial gradients around supposed final vertex position so it could give a vector for vertex shifting from regular matrix to positions pointed in such texture.
Is it crazy idea? Can be done in U4?
Replies
practically - you really, really wouldn't want to do it in blueprints. Generating the points wouldn't be too awful to implement but the surface meshing algorithm is way beyond what you'd want to do with node based scripting.
It's a solid idea in principle though I think - I did some experiments a while ago generating point fields based on curvature maps in python and got a pretty significant reduction in vertex count compared to traditional grid based tessellation, The hard bit is wrapping a mesh over the generated point field - I've used this algorithm a couple of times but you'd need to interrupt it and provide your own point field.
https://www.cs.cmu.edu/~quake/triangle.html