Tessellation Factor that preserves vertexes

Started by
1 comment, last by PhillipHamlyn 7 years, 3 months ago

Hi,

I have a working tessellation shader but am not getting the results I hoped for. The shader works Ok but the visual effect is problematic. I base my tessellation factor on a distance from the viewer and can see the new triangles being created as I move around my model. However the generated vertexes also get destroyed as I move to higher tessellation factors and this causes some horrible visual effects. I had hoped to google up a tessellation factor which would add vertexes, but not remove previously generated ones, but I can't find anything that describes it.

In a naieve manual tessellation scheme I would subdivide my control points into triangles, then get the centroid and subdivide again (my triangles are all quad based so this would give a reasonably even distribution of roughly equalateral triangles). Each step of further subdivision would build on the previous one and no generated vertexes are lost as I make the model more detailed.

The hardware tessellator doesnt attempt this scheme - it retriangulates my control point interior in a mathematically correct way to achieve the best number of even triangles - but in doing so it does not attempt to preserve or build on the previous tessellation output.

Is there a way to achieve a steady tessellation along the naieve lines I describe ? Is it just a matter of controlling my tessellation factors "manually" (having a set of known values which achieve my expected results) rather than allowing the tessellation factor to be calculated entirely based on distance ?

Thanks,

Phillip.

Advertisement

I guess you have to double or half the tesselation factor instead of smoothly increasing / decreasing.

So that you get 2, 3, 5, 9... verts per edge when zooming in and 9, 5, 3, 2 when zomming out - you get what i mean.

This way the middle vertex is preserved as long as it's visible, but new vertices just pop up (or disappear) and there is no smooth transition anymore.

JoeJ,

Thanks - thats what I was missing. I control the Tess factor like I do a LOD and increase by doubles.

Thanks for the insight. I've put the calc in and I have the result I was after.

This topic is closed to new replies.

Advertisement