mirror of
https://github.com/PixarAnimationStudios/OpenSubdiv
synced 2025-01-10 16:40:11 +00:00
glEvalLimit example: add bilinear shape into test cases
This commit is contained in:
parent
fa3a6fc43b
commit
def029a273
@ -502,18 +502,25 @@ createOsdMesh(ShapeDesc const & shapeDesc, int level) {
|
|||||||
Far::StencilTable const * vertexStencils = NULL;
|
Far::StencilTable const * vertexStencils = NULL;
|
||||||
Far::StencilTable const * varyingStencils = NULL;
|
Far::StencilTable const * varyingStencils = NULL;
|
||||||
int nverts=0;
|
int nverts=0;
|
||||||
|
|
||||||
{
|
{
|
||||||
// Apply feature adaptive refinement to the mesh so that we can use the
|
bool adaptive = (sdctype == OpenSubdiv::Sdc::SCHEME_CATMARK);
|
||||||
// limit evaluation API features.
|
if (adaptive) {
|
||||||
Far::TopologyRefiner::AdaptiveOptions options(level);
|
// Apply feature adaptive refinement to the mesh so that we can use the
|
||||||
topologyRefiner->RefineAdaptive(options);
|
// limit evaluation API features.
|
||||||
|
Far::TopologyRefiner::AdaptiveOptions options(level);
|
||||||
|
topologyRefiner->RefineAdaptive(options);
|
||||||
|
} else {
|
||||||
|
Far::TopologyRefiner::UniformOptions options(level);
|
||||||
|
topologyRefiner->RefineUniform(options);
|
||||||
|
}
|
||||||
|
|
||||||
// Generate stencil table to update the bi-cubic patches control
|
// Generate stencil table to update the bi-cubic patches control
|
||||||
// vertices after they have been re-posed (both for vertex & varying
|
// vertices after they have been re-posed (both for vertex & varying
|
||||||
// interpolation)
|
// interpolation)
|
||||||
Far::StencilTableFactory::Options soptions;
|
Far::StencilTableFactory::Options soptions;
|
||||||
soptions.generateOffsets=true;
|
soptions.generateOffsets=true;
|
||||||
soptions.generateIntermediateLevels=true;
|
soptions.generateIntermediateLevels=adaptive;
|
||||||
|
|
||||||
vertexStencils =
|
vertexStencils =
|
||||||
Far::StencilTableFactory::Create(*topologyRefiner, soptions);
|
Far::StencilTableFactory::Create(*topologyRefiner, soptions);
|
||||||
|
@ -40,8 +40,6 @@ static std::vector<ShapeDesc> g_defaultShapes;
|
|||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
static void initShapes() {
|
static void initShapes() {
|
||||||
// g_defaultShapes.push_back( ShapeDesc("bilinear_cube", bilinear_cube, kBilinear) );
|
|
||||||
|
|
||||||
g_defaultShapes.push_back( ShapeDesc("catmark_cube_corner0", catmark_cube_corner0, kCatmark ) );
|
g_defaultShapes.push_back( ShapeDesc("catmark_cube_corner0", catmark_cube_corner0, kCatmark ) );
|
||||||
g_defaultShapes.push_back( ShapeDesc("catmark_cube_corner1", catmark_cube_corner1, kCatmark ) );
|
g_defaultShapes.push_back( ShapeDesc("catmark_cube_corner1", catmark_cube_corner1, kCatmark ) );
|
||||||
g_defaultShapes.push_back( ShapeDesc("catmark_cube_corner2", catmark_cube_corner2, kCatmark ) );
|
g_defaultShapes.push_back( ShapeDesc("catmark_cube_corner2", catmark_cube_corner2, kCatmark ) );
|
||||||
@ -87,5 +85,7 @@ static void initShapes() {
|
|||||||
g_defaultShapes.push_back( ShapeDesc("catmark_helmet", catmark_helmet, kCatmark ) );
|
g_defaultShapes.push_back( ShapeDesc("catmark_helmet", catmark_helmet, kCatmark ) );
|
||||||
g_defaultShapes.push_back( ShapeDesc("catmark_pawn", catmark_pawn, kCatmark ) );
|
g_defaultShapes.push_back( ShapeDesc("catmark_pawn", catmark_pawn, kCatmark ) );
|
||||||
g_defaultShapes.push_back( ShapeDesc("catmark_rook", catmark_rook, kCatmark ) );
|
g_defaultShapes.push_back( ShapeDesc("catmark_rook", catmark_rook, kCatmark ) );
|
||||||
|
|
||||||
|
g_defaultShapes.push_back( ShapeDesc("bilinear_cube", bilinear_cube, kBilinear) );
|
||||||
}
|
}
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user