Merge pull request #1120 from barfowl/docs_release_34

Updated documentation for 3.4 release notes and past release dates
This commit is contained in:
David G Yu 2019-06-10 17:06:26 -07:00 committed by GitHub
commit e64cc8d4b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 285 additions and 35 deletions

View File

@ -95,6 +95,7 @@ if (DOCUTILS_FOUND AND PYTHONINTERP_FOUND)
release_31.rst
release_32.rst
release_33.rst
release_34.rst
release_notes.rst
release_notes_2x.rst
sdc_overview.rst

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

View File

@ -94,6 +94,7 @@
<p></p>
<li><a href="release_notes.html">Releases</a>
<ul>
<li><a href="release_34.html">Release 3.4</a></li>
<li><a href="release_33.html">Release 3.3</a></li>
<li><a href="release_32.html">Release 3.2</a></li>
<li><a href="release_31.html">Release 3.1</a></li>

View File

@ -0,0 +1,216 @@
..
Copyright 2019 Pixar
Licensed under the Apache License, Version 2.0 (the "Apache License")
with the following modification; you may not use this file except in
compliance with the Apache License and the following modification to it:
Section 6. Trademarks. is deleted and replaced with:
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor
and its affiliates, except as required to comply with Section 4(c) of
the License and to reproduce the content of the NOTICE file.
You may obtain a copy of the Apache License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the Apache License with the above modification is
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the Apache License for the specific
language governing permissions and limitations under the Apache License.
Overview of Release 3.4 (draft)
===============================
.. contents::
:local:
:backlinks: none
New Features
------------
Triangular Patches for Loop Subdivision
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Added support for drawing and evaluation of Loop subdivision meshes with
triangular patches. This includes the full set of Far and Osd interfaces
for both evaluation and drawing.
+-----------------------------------+-----------------------------------+
| .. image:: images/loop_rel_1.png | .. image:: images/loop_rel_2.png |
| :align: center | :align: center |
| :width: 95% | :width: 95% |
| :target: images/loop_rel_1.png | :target: images/loop_rel_2.png |
+-----------------------------------+-----------------------------------+
The feature set supported for Loop subdivision now matches that of Catmark,
including creases, face-varying patches, non-manifold topology, etc.
+----------------------------------+----------------------------------------------------------------+
| .. image:: images/loop_rel_3.png | .. image:: images/loop_rel_4.png |
| :align: center | :align: center |
| :width: 95% | :width: 95% |
| :target: images/loop_rel_3.png| :target: images/loop_rel_4.png |
+----------------------------------+----------------------------------------------------------------+
Quartic triangular patches are used to exactly match the limit surface of
Loop subdivision where the mesh is regular and approximated where irregular.
As is the case with use of the Catmark scheme, application of Loop subdivision
to dense, poorly modeled meshes may lead to unexpectedly poor performance or
surface quality.
Major Improvements to Introductory Documentation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A significant rewrite of the `Subdivision Surfaces <subdivision_surfaces.html>`__
page is included in this release. The new documentation emphasizes the *piecewise
parameteric surface* nature of subdivision surfaces and the implications of
supporting *arbitary topology*.
+---------------------------------------+---------------------------------------+
| .. image:: images/val6_regular.jpg | .. image:: images/val6_irregular.jpg |
| :align: center | :align: center |
| :width: 95% | :width: 95% |
| :target: images/val6_regular.jpg | :target: images/val6_irregular.jpg |
+---------------------------------------+---------------------------------------+
As a true surface primitive, the distinction between the control points and the
limit surface and the corresponding operations of *subdivision* and *tessellation*
that are applied to them is made clear.
Sparse Patch Tables
~~~~~~~~~~~~~~~~~~~
Interfaces in Far for the construction of PatchTables and the required adaptive
refinement have been extended to apply to an arbitrary subset of faces. This
allows patches for either large meshes or meshes that may otherwise benefit
from some kind of partioning (e.g. areas of static and dynamic topology) to be
managed in an arbitrary number of groups. In the extreme, a PatchTable forming
the tree of patches for a single base face can be constructed.
Client data buffers for the base mesh do not need to be partitioned and base mesh
topology can be shared by multiple instances of Far::TopologyRefiner used to
create corresponding instances of Far::PatchTables.
See the new `Far tutorial 5.2 <far_tutorial_5_2.html>`__ for a simple example.
Support for Double Precision in Far
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Classes and interfaces in Far have been adapted to allow support for double
precision via templates parameterized for float or double. Class templates for
major classes such as Far::StencilTable have been introduced and the original
classes preserved for compatibility. Other classes such as Far::PatchTable have
had methods overloaded or replaced with template functions to support both single
and double precision. Internally, all use of floating point constants and math
library functions has been adapted to maximize accuracy appropriate to the
precision of the template instance.
Interfaces in Osd have not been extended. The extensions in Far provide the
basis for extensions in Osd, but demand is limited. For those benefiting from
such Osd extensions, contributions are welcomed.
See the revised `Far tutorial 5.1 <far_tutorial_5_1.html>`__ that constructs a
Far::PatchTable for a simple example.
API Additions
-------------
See associated `Doxygen <doxy_html/index.html>`__ for full details.
Osd::MeshBits
~~~~~~~~~~~~~
- enumeration MeshEndCapBilinearBasis
Osd::PatchArray
~~~~~~~~~~~~~~~
- GetDescriptorRegular()
- GetDescriptorIrregular()
- GetPatchTyperRegular()
- GetPatchTyperIrregular()
- GetStride()
Osd extensions common to all shaders
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- TBD
Far construction and refinement of topology
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- overloaded TopologyRefinerFactory::Create()
- extensions to TopologyRefiner::RefineAdaptive()
Far extensions for triangular patches
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- enum PatchDescriptor::Type::GREGORY_TRIANGLE
- PatchParam::NormalizeTriangle()
- PatchParam::UnnormalizeTriangle()
- PatchParam::IsTriangleRotated()
Construction and interface of Far::PatchTable
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- overloaded PatchTableFactory::Create()
- PatchTableFactory::GetRefineAdaptiveOptions()
- member PatchTableFactory::Options::includeBaseLevelIndices
- member PatchTableFactory::Options::includeFVarBaseLevelIndices
- member PatchTableFactory::Options::generateVaryingTables
- member PatchTableFactory::Options::generateVaryingLocalPoints
- member PatchTableFactory::Options::setPatchPrecisionDouble
- member PatchTableFactory::Options::setFVarPatchPrecisionDouble
- PatchTable::GetFVarPatchDescriptorRegular()
- PatchTable::GetFVarPatchDescriptorIrregular()
- PatchTable::GetFVarValueStride()
Construction and use of Far stencil tables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- overloaded StencilTable::UpdateValues()
- enum LimitStencilTableFactory::Mode
- member LimitStencilTableFactory::Options::interpolationMode
- member LimitStencilTableFactory::Options::fvarChannel
Far class templates for double precision
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- class StencilReal
- class StencilTableReal
- class StencilTableFactoryReal
- class LimitStencilReal
- class LimitStencilTableReal
- class LimitStencilTableFactoryReal
- class PrimvarRefinerReal
Far member functions converted to templates for double precision
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- PatchParam::Normalize()
- PatchParam::Unnormalize()
- PatchTable::EvaluateBasis()
- PatchTable::EvaluateBasisVarying()
- PatchTable::EvaluateBasisFaceVarying()
- PatchTable::GetLocalPointStencilTable()
- PatchTable::GetLocalPointVaryingStencilTable()
- PatchTable::GetLocalPointFaceVaryingStencilTable()
- PatchMap::FindPatch()
Other Changes
-------------
Improvements
~~~~~~~~~~~~
- 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)

View File

@ -22,7 +22,7 @@
language governing permissions and limitations under the Apache License.
3.0 - 3.3 Release Notes
3.0 - 3.4 Release Notes
-----------------------
.. contents::
@ -31,39 +31,71 @@
----
Release 3.3.3
=============
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 <release_34.html>`__
**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.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 Issue #976)
- Fixed a regression in PatchTable construction for face-varying patches (GitHub Issue #972)
- Fixed a bug in the initialization of Far::SourcePatch (GitHub Issue #971)
- 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
=============
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 Issue #966)
- 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
=============
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 Issue #947)
- Fixed problems with face-varying patches in uniform PatchTables (GitHub Issue #946)
- Fixed integer overflow bugs for large meshes in PatchTable factories (GitHub Issue #957)
- Fixed computation of PatchParam for triangle refinement (GitHub Issue #962)
- 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
@ -71,8 +103,8 @@ Release 3.3.1 is a minor bug-fix release
- Disabled GL tests during CI runs on Linux
- Improved stability of examples/glImaging in CI runs by testing GL version
Release 3.3.0
=============
Release 3.3.0 - Aug 2017
========================
Release 3.3.0 is significant release adding an Osd implementation for Apple's Metal API
@ -84,8 +116,8 @@ Release 3.3.0 is significant release adding an Osd implementation for Apple's Me
- 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.0
=============
Release 3.2.0 - Feb 2017
========================
Release 3.2.0 is a minor release containing API additions and bug fixes
@ -102,8 +134,8 @@ Release 3.2.0 is a minor release containing API additions and bug fixes
**Bug Fixes**
- Fixed a double delete of GL program in Osd::GLComputeEvaluator
Release 3.1.1
=============
Release 3.1.1 - Jan 2017
========================
Release 3.1.1 is a minor bug-fix release.
@ -112,8 +144,8 @@ Release 3.1.1 is a minor bug-fix release.
- 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
=============
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
@ -147,8 +179,8 @@ code and configuration improvements. For more information on the following, ple
- Fixed bug with refinement using Chaikin creasing
- Fixed bugs with HUD sliders in the example viewers
Release 3.0.5
=============
Release 3.0.5 - Mar 2016
========================
Release 3.0.5 is a minor stability release with performance and correctness bug fixes.
@ -156,8 +188,8 @@ Release 3.0.5 is a minor stability release with performance and correctness bug
- 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
=============
Release 3.0.4 - Feb 2016
========================
Release 3.0.4 is a minor stability release which includes important performance
and bug fixes.
@ -175,8 +207,8 @@ and bug fixes.
- 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
=============
Release 3.0.3 - Oct 2015
========================
Release 3.0.3 is a minor stability release which includes important performance
and bug fixes.
@ -196,16 +228,16 @@ and bug fixes.
- Fixed WIN32_LEAN_AND_MEAN typo
- Fixed Loop-related shader issues glFVarViewer
Release 3.0.2
=============
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
=============
Release 3.0.1 - Aug 2015
========================
Release 3.0.1 is a minor release focused on stability and correctness.
@ -232,8 +264,8 @@ Release 3.0.1 is a minor release focused on stability and correctness.
- Disabled the fractional tessellation spacing option in example viewers
since this mode is currently not supported
Release 3.0.0
=============
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