细分方案:
for (int i = 0; i < numElevate; ++i)
{
patches -> degreeElevate();
}
for (int i = 0; i < numHref; ++i)
{
patches -> uniformRefine();
}
升阶和加密的次序影响最终结果。
GISMO_DEBUG:
Patch 0: control points
0 100 0
0 50 00 0 0
Refine 1 time:
GISMO_DEBUG: Patch 0: control points
0 100 0
0 75 0
0 25 0
0 0 0
refine twice:
GISMO_DEBUG: Patch 0: control points 0 100 0
0 87.5 0
0 62.5 0
0 37.5 0
0 12.5 0
0 0 0
degree elevate 1:
GISMO_DEBUG: Patch 0: control points 0 100 0
0 66.6667 0
0 33.3333 0
0 0 0
degree elevate 2:
GISMO_DEBUG: Patch 0: control points 0 100 0
0 75 0
0 50 0
0 25 0
0 0 0
degree elevate 1, refine 1
GISMO_DEBUG: Patch 0: control points 0 100 0
0 83.3333 0
0 50 0
0 16.6667 0
0 0 0
refine 1, degree elevate 1
GISMO_DEBUG: Patch 0: control points 0 100 0
0 83.3333 0
0 66.6667 0
0 33.3333 0
0 16.6667 0
0 0 0