glEvalLimit example: add bilinear shape into test cases

This commit is contained in:
Takahito Tejima 2015-07-29 14:21:54 -07:00
parent fa3a6fc43b
commit def029a273
2 changed files with 14 additions and 7 deletions

View File

@ -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);

View File

@ -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) );
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------