- "propagate corners" added as new enumeration to Sdc::Options
- topology tags within FVar channel initialized and propagated
- face-varying Interpolate() method updated to deal with creases
- removed old alternative to Catmark feature adaptive selection
- removed unused methods from Vtr::SparseSelector
- made use of Level::VTag's new "incomplete" member in both
- semi-sharp edges prevented from decreasing by averaging with inf-sharp
- averaging now includes only semi-sharp edges around the vertex
- see regression/shapes/catmark_chaikin2
- added an option to Far::StencilTablesFactory to generate stencils for
coarse control vertices
- refactored interpolation code out into Far::PatchTables
- corrected tangent interpolation
- code cleanup & comments
- bi-cubic patches should be mostly covered, although portions of the interpolation code
need to be refactored out into Far::PatchTables as vertex templated functions (following
patterns established in the Far::TopologyRefiner)
- end-cap patches still have to be done (prob. going to drop Gregory in favor of bilinear)
- Presto needs a fully bilinear code path (no patches) - really ???
Sync'ing the 'dev' branch with the 'feature_3.0dev' branch at commit 68c6d11fc36761ae1a5e6cdc3457be16f2e9704a
The branch 'feature_3.0dev' is now locked and preserved for historical purposes.
* assembler kernels are based on the C implementation in neonKernel.cpp
* enable assembler kernel functions in neonComputeController.cpp with #define USE_ASM_KERNELS 1
* added public functions to `FarMeshFactory` that duplicate, rearrange, and split vertices
* added supporting protected functions to `FarCatmarkSubdivisionTablesFactory` and `FarPatchTablesFactory`
This makes it possible to use use bilinear subdivisions which
corresponds to Blender's simple subdivisions.
Most of the changes doesn't break any existing API because of
using default values. it's only C-API function which now expects
an extra argument.
This doesn't entirely work because it uses adaptive evaluator
which gives some unwanted curvatures when using bilinear scheme.
Basically title says it all, now it's possible to pass
subdivision scheme to the OsdUtilMesh::Initialize().
It's a last argument with default to CATMARK so it doesn't
break existing code.
Unused argument `pass` was defined in the CUDA kernel and it was never
passed to this function from the C++ code. This argument is also wasn't
used by the function itself.
Solved by checking on run-time whether texture buffer objects
are supported.
When building with GLEW library doing compile-time check is
not enough, because actual information about existing features
is only known on runtime.
This only makes ti so CPU backend works, GLSL backends still
requires some work if we want them to make working. Not sure
it worth doing this now.
* added `OsdMeshInterface::GetFarMesh` and `OsdMesh::GetFarMesh` to match `OsdGLMesh` and `OsdD3D11Mesh`
* added `interleaved` argument to `OsdMesh::Refine` to match `OsdMeshInterface::Refine`