I've implementeted the first tessellation part of the paper "Computing Smooth Surface Contours With Accurate Topology ( http://www.labri.fr/perso/pbenard/publications/contours/ ) as a modifier in blender.
Here is a video of the current progress. I've set freestyle to render contours and borders with line width starting at 1 and ending at 5:
Note that this might be a best case scenario.
The code is hosted on github at: https://github.com/DarkDefender/blender-npr-tess
(Look in "source/blender/modifiers/intern/MOD_mybesh.c")
You need opensubdiv 2.6.x to run it.
What is left to do is:
- Port the code to the latest opensubdiv version
- Lots of clean up in the code
- Optimize (the code is currently single threaded)
- Implement the second part of the paper.
Currently the code doesn't produce nice results for more complex meshes (like on suzanne). Because the opensubdiv version I use has a lot of bugs, (you can't subdivide a torus and there are errors in the computed limit surface on suzanne) I can't yet tell if it's a problem on my side or the opensubdiv side.
This is why I felt like this would be a good time to request help with porting the modifier to blender trunk.
Because this is my first blender project I have a strong feeling that I have done a lot of things overly complicated.
The help I specifically request is how and what functions I should use to call opensubdiv from blender proper. The old functions that I used previously has be removed from 3.x.x (IIRC). I'm a bit lost on how to do this with the new API to be honest...
I realize that this is quite a huge code dump and I will gladly answer any questions that might come up.
I would really like to have this included upstream (when it's ready) because I think that the improvments the paper does to the freestyle line chaining is needed if you want to use it in animation.