3.0 - 3.4 Release Notes

3.0 - 3.4 Release Notes



Release 3.4

Release 3.4.0 - Jun 2019

Release 3.4.0 is a significant release with several new features, bug fixes, and general code and configuration improvements. For more information on the following, please see Release 3.4

New Features
  • Triangular Patches for Loop subdivision
  • Improvements to Introductory Documentation
  • Sparse Patch Tables and Adaptive Refinement
  • Full Support for Double Precision in Far
Changes
  • Added new build script (GitHub #1068)
  • Added support for newer DirectX SDKs (GitHub #1066)
  • Patch arrays extended to support combined regular and irregular types (GitHub #995)
  • Far::PatchTables and adaptive refinement supported for Bilinear scheme (GitHub #1035)
  • New Far::PatchTableFactory method to determine adaptive refinement options ((GitHub #1047)
  • New Far::PatchTableFactory options to align primvar buffers of uniform tables (GitHub #986)
  • Far::StencilTable::UpdateValues() overloaded to support separate base buffer (GitHub #1011)
  • Far::LimitStencilTableFactory updated to create face-varying tables (GitHub #1012)
  • Regular patches on boundaries no longer require additional isolation (GitHub #1025)
  • Inclusion of OpenSubdiv header files in source code now consistent (GitHub #767)
  • Re-organization of and additions to Far tutorials (GitHub #1083)
  • examples now use common command-line conventions and parsing (GitHub #1056)
Bug Fixes
  • Fixed Far::PrimvarRefiner internal limitFVar() prototype (GitHub #979)
  • Fixed Far::StencilTable append when base StencilTable empty (GitHub #982)
  • Patches around non-manifold vertices now free of cracks (GitHub #1013)

Release 3.3

Release 3.3.3 - Jul 2018

Release 3.3.3 is bug-fix release addressing regressions from release 3.3.2

Bug Fixes
  • Fixed a regression in PatchTable construction with varying patches (GitHub #976)
  • Fixed a regression in PatchTable construction for face-varying patches (GitHub #972)
  • Fixed a bug in the initialization of Far::SourcePatch (GitHub #971)

Release 3.3.2 - Jun 2018

Release 3.3.2 is a minor release with potentially significant performance improvements to the patch pre-processing stages

Changes
  • Improved performance of PatchTable construction (GitHub #966)
  • The resulting improved accuracy will produce slight numerical differences in computations involving patches, e.g. StencilTable and PatchTable evaluation
Bug Fixes
  • Far::PatchTableFactory now supports PatchTable construction with ENDCAP_BILINEAR_BASIS specified

Release 3.3.1 - Feb 1018

Release 3.3.1 is a minor bug-fix release

Bug Fixes
  • Fixed GLSL/HLSL/Metal patch shader code to resolve degenerate normals (GitHub #947)
  • Fixed problems with face-varying patches in uniform PatchTables (GitHub #946)
  • Fixed integer overflow bugs for large meshes in PatchTable factories (GitHub #957)
  • Fixed computation of PatchParam for triangle refinement (GitHub #962)
Changes
  • Added build options: NO_GLFW and NO_GLFW_X11
  • Added additional shapes with infinitely sharp creases to the Metal and DX11 example viewers
  • Disabled GL tests during CI runs on Linux
  • Improved stability of examples/glImaging in CI runs by testing GL version

Release 3.3.0 - Aug 2017

Release 3.3.0 is significant release adding an Osd implementation for Apple's Metal API

New Features
  • Added an Osd implementation for Apple's Metal API
  • Added the mtlViewer example
Changes
  • Fixed several instances of local variable shadowing that could cause build warnings
  • Updated continuous-integration build scripts and added testing on macOS

Release 3.2

Release 3.2.0 - Feb 2017

Release 3.2.0 is a minor release containing API additions and bug fixes

New Features
  • Extended Far::StencilTableFactory to support face-varying
  • Extended Osd Evaluator classes to support evaluation of 1st and 2nd derivatives
  • Added an option to disable generation of legacy sharp corner patches
Changes
  • Corrected numerous spelling errors in doxygen comments
  • Updated glFVarViewer with improved error detection and command line parsing
  • Added option to build using MSVC with static CRT
Bug Fixes
  • Fixed a double delete of GL program in Osd::GLComputeEvaluator

Release 3.1

Release 3.1.1 - Jan 2017

Release 3.1.1 is a minor bug-fix release.

Bug Fixes
  • Fixed a bug with non-manifold face-varying topology causing a crash during patch table creation
  • Fixed GLEW compilation and linking with dynamic GLEW libraries on Windows
  • Fixed GLFW linking with GLFW 3.2 on X11 platforms

Release 3.1.0 - Oct 2016

Release 3.1.0 is a significant release with several new features, bug fixes, and general code and configuration improvements. For more information on the following, please see Release 3.1

New Features
  • Bicubic Face-Varying Patches
  • Varying and Face-Varying Evaluation
  • Second Order Derivative Evaluation
  • Separate Levels of Feature Isolation
  • Sharp Patches for Infinitely Sharp Features
Changes
  • Enabled the use of CMake's folder feature
  • Removed the use of iso646 alternative keywords ('and', 'or', 'not', etc.) to improve portability
  • Added numerical valued preprocessor directives (OPENSUBDIV_VERSION_MAJOR, etc.) to <opensubdiv/version.h>
  • Improved documentation for Far::PatchParam and added Unnormalize() to complement Normalize()
  • Added additional topology queries to Far::TopologyLevel
  • Updated glFVarViewer and glEvalLimit viewer to make use of bicubic face-varying patches
  • Updated glViewer and dxViewer to add a toggle for InfSharpPatch
  • Updated dxPtexViewer for improved feature parity with glPtexViewer
  • Improved far_regression to exercise shapes independent of Hbr compatibility
  • Added support for Appveyor continuous integration testing
  • Removed cmake/FindIlmBase
  • Removed mayaPolySmooth example
Bug Fixes
  • Fixed Ptex version parsing and compatibility issues
  • Fixed compatibility issues with VS2015
  • Fixed bug interpolating face-varying data with Bilinear scheme
  • Fixed bug with refinement using Chaikin creasing
  • Fixed bugs with HUD sliders in the example viewers

Release 3.0

Release 3.0.5 - Mar 2016

Release 3.0.5 is a minor stability release with performance and correctness bug fixes.

Bug Fixes
  • The previous release reduced transient memory use during PatchTable construction, but increased the amount of memory consumed by the resulting PatchTable itself, this regression has been fixed.
  • The example Ptex texture sampling code has been fixed to prevent sampling beyond the texels for a face when multisample rasterization is enabled.

Release 3.0.4 - Feb 2016

Release 3.0.4 is a minor stability release which includes important performance and bug fixes.

New Features
  • Added accessor methods to Far::LimitStencilTable to retrieve limit stencil data including derivative weights
  • Added support for OpenCL event control to Osd::CLVertexBuffer and Osd::CLEvaluator
Changes
  • Major reduction in memory use during Far::PatchTable construction for topologies with large numbers of extraordinary features
  • Improved performance for GL and D3D11 tessellation control / hull shader execution when drawing BSpline patches with the single crease patch optimization enabled
Bug Fixes
  • Restored support for drawing with fractional tessellation
  • Fixed far_tutorial_6 to refine primvar data only up to the number of levels produced by topological refinement
  • Fixed build warnings and errors reported by Visual Studio 2015

Release 3.0.3 - Oct 2015

Release 3.0.3 is a minor stability release which includes important performance and bug fixes.

New Features
  • Smooth normal generation tutorial, far_tutorial_8
Changes
  • Major performance improvement in PatchTable construction
  • Improved patch approximations for non-manifold features
Bug Fixes
  • Fixed double delete in GLSL Compute controller
  • Fixed buffer layout for GLSL Compute kernel
  • Fixed GL buffer leak in Osd::GLPatchTable
  • Fixed out-of-bounds data access for TBB and OMP stencil evaluation
  • Fixed WIN32_LEAN_AND_MEAN typo
  • Fixed Loop-related shader issues glFVarViewer

Release 3.0.2 - Aug 2015

Release 3.0.2 is a minor release for a specific fix.

Bug Fixes
  • Fixed drawing of single crease patches

Release 3.0.1 - Aug 2015

Release 3.0.1 is a minor release focused on stability and correctness.

Changes
  • Added a references section to the documentation, please see References
  • Removed references to AddVaryingWithWeight from examples and tutorials
  • Added more regression test shapes
  • Addressed general compiler warnings (e.g. signed vs unsigned comparisons)
  • Addressed compiler warnings in the core libraries reported by GCC's -Wshadow
  • Eased GCC version restriction, earlier requirement for version 4.8 or newer is no longer needed
  • Replaced topology initialization assertions with errors
  • Improved compatibility with ICC
  • Improved descriptive content and formatting of Far error messages
  • Improved build when configured to include no GPU specific code
Bug Fixes
  • Fixed handling of unconnected vertices to avoid out of bounds data access
  • Fixed non-zero starting offsets for TbbEvalStencils and OmpEvalStencils
  • Fixed Far::StencilTableFactory::Options::factorizeIntermediateLevels
  • Fixed Far::PatchTablesFactory::Options::generateAllLevels
  • Fixed the behavior of VTX_BOUNDARY_NONE for meshes with bilinear scheme
  • Fixed some template method specializations which produced duplicate definitions
  • Disabled depth buffering when drawing the UI in the example viewers
  • Disabled the fractional tessellation spacing option in example viewers since this mode is currently not supported

Release 3.0.0 - Jun 2015

Release 3.0.0 is a major release with many significant improvements and changes. For more information on the following, please see Release 3.0

New Features
  • Faster subdivision using less memory
  • Support for non-manifold topology
  • Face-Varying data specified topologically
  • Elimination of fixed valence tables
  • Single-crease patch for semi-sharp edges
  • Additional irregular patch approximations
  • Introduction of Stencil Tables
  • Faster, simpler GPU kernels
  • Unified adaptive shaders
  • Updated coding style with namespaces
  • More documentation and tutorials
Bug Fixes
  • Smooth Face-Varying interpolation around creases

Release 3.0.0 RC2

New Features
  • Documentation updates
  • far_tutorial_3 updates for the multiple face-varying channels
  • maya example plugin interpolates a UV channel and a vertex color channel
Bug Fixes
  • Fixed a LimitStencilTableFactory bug, which returns an invalid table
  • PatchParam encoding changed to support refinement levels up to 10
  • Added Xinerama link dependency
  • Fixed MSVC 32bit build problem
  • Fixed minor cmake issues
  • Fixed glViewer/farViewer stability bugs

Release 3.0.0 RC1

Changes
  • Far::TopologyRefiner was split into several classes to clarify and focus the API.
  • Interpolation of Vertex and Varying primvars in a single pass is no longer supported.
  • The Osd layer was largely refactored.

Previous 2.x Release Notes

Previous releases