Patches precision

48 views
Skip to first unread message

Andrea Venturoli

unread,
Feb 7, 2024, 1:57:10 PM2/7/24
to OpenSubdiv Forum
Hello.

I've been using OpenSubDiv since a couple of weeks.
I'm in need of converting Subdivision surfaces to NURBS patches and I already got it working.

However I need to know the deviation between the patches I get from OpenSubdiv and the theorical limit surface: is there a way to compute this value?
I found no mention of this in the docs or other posts...

I'm mainly interested in the maximum distance between the two; at this stage normal/derivatives deviation is not important.
I know this should be zero for regular areas, so I'm obviously interested in irregular ones; also, if I understand correctly, Gregory patches are more precise, but still an approximation, so they would not solve.

Basically I need this value to stay under a given limit, so, ideally, I'd need to somehow calculate in advance the number of adaptive iterations needed.
Failing that, I guess it would be possible to refine, check deviation and eventually repeat...

Does the library provide such an information?
Or is there any technical paper that can illustrate how to compute it myself?

Thanks in advance.

David G Yu

unread,
Mar 13, 2024, 8:07:07 PM3/13/24
to OpenSubdiv Forum
Hi,

Nice that you got the basics working so quickly!

There isn't an existing method that provides the answer you are looking for.

Recommend taking a look through the references (OpenSubdiv References) to consider different approaches of evaluating and approximating subdivision surfaces.

Gregory patches are not inherently more precise rather they are supported in OpenSubdiv as a way of presenting a smooth approximation of the irregular parts of the subdivision surface even when the approximation itself might be imprecise.

There is some discussion of setting adaptive refinement levels and options in the release notes here: Separate Levels of Feature Isolation.

Hope that helps!
-David
Reply all
Reply to author
Forward
0 new messages