Home Unreal Engine

tessellating a mesh based on special texture with dots for vertexes?

gnoop
interpolator
Offline / Send Message
gnoop interpolator
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

  • poopipe
    Offline / Send Message
    poopipe high dynamic range
    theoretically yes - unreal supports creation of mesh geometry at runtime
    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

  • gnoop
    Offline / Send Message
    gnoop interpolator
    poopipe said:
     generating point fields based on curvature maps
    Yeah, it's one of the possible  appliances I am thinking of .  Not curvature but rather  silhouette lines for distant mountain terrain to put most of the vertexes on that line  instead of wasting them in regularly tessellated mesh.     You could easily get the silhouette line in the texture by baking a light from a point light source.

    As of meshing my idea is  that the texture could provide exact vertex index  in other channel and which ones   should  be connected by edges from another special  distance field   or maybe the edges be explicitly drawn in third channel.( not sure if it could be helpful).   Vertex normals  could be just borrowed from lod02 since LO01 is supposed to use same normal map
Sign In or Register to comment.