mirror of
https://github.com/PixarAnimationStudios/OpenSubdiv
synced 2024-11-28 06:11:07 +00:00
Fixed single-crease patch isolation now required without boundary isolation:
- added member to FeatureMask for single-crease option without inf-sharp - adjusted adaptive refinement to handle unisolated interior sharp edges
This commit is contained in:
parent
eb72dc847b
commit
184ae997d6
@ -318,6 +318,8 @@ namespace internal {
|
||||
int_type selectInfSharpIrregularCrease : 1;
|
||||
int_type selectInfSharpIrregularCorner : 1;
|
||||
|
||||
int_type selectUnisolatedInteriorEdge : 1;
|
||||
|
||||
int_type selectNonManifold : 1;
|
||||
int_type selectFVarFeatures : 1;
|
||||
};
|
||||
@ -355,6 +357,8 @@ namespace internal {
|
||||
selectInfSharpIrregularCrease = true;
|
||||
selectInfSharpIrregularCorner = true;
|
||||
|
||||
selectUnisolatedInteriorEdge = useSingleCreasePatch && !options.useInfSharpPatch;
|
||||
|
||||
selectNonManifold = true;
|
||||
selectFVarFeatures = options.considerFVarChannels;
|
||||
}
|
||||
@ -570,6 +574,13 @@ namespace {
|
||||
return doesInfSharpVTagHaveFeatures(compVTag, featureMask);
|
||||
} else if (isolateQuadBoundaries) {
|
||||
return true;
|
||||
} else if (featureMask.selectUnisolatedInteriorEdge) {
|
||||
// Needed for single-crease approximation to inf-sharp interior edge:
|
||||
for (int i = 0; i < 4; ++i) {
|
||||
if (vTags[i]._infSharpEdges && !vTags[i]._boundary) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (atLeastOneSmoothCorner && !compVTag._boundary) {
|
||||
|
Loading…
Reference in New Issue
Block a user