Release 3.5.0

This commit is contained in:
David G Yu 2022-09-26 11:17:44 -07:00
parent 8f2560ed6e
commit 8ffa2b6566
7 changed files with 221 additions and 6 deletions

View File

@ -97,6 +97,7 @@ if (DOCUTILS_FOUND AND Python_Interpreter_FOUND)
release_32.rst
release_33.rst
release_34.rst
release_35.rst
release_notes.rst
release_notes_2x.rst
sdc_overview.rst

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

View File

@ -25,7 +25,7 @@
Introduction
------------
.. image:: http://graphics.pixar.com/opensubdiv/docs/images/opensubdiv_splash_v3_4_0.png
.. image:: http://graphics.pixar.com/opensubdiv/docs/images/opensubdiv_splash_v3_5_0.png
:width: 100%
:align: center

View File

@ -102,6 +102,7 @@
<p></p>
<li><a href="release_notes.html">Releases</a>
<ul>
<li><a href="release_35.html">Release 3.5</a></li>
<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>

View File

@ -0,0 +1,172 @@
..
Copyright 2022 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.5
=======================
.. contents::
:local:
:backlinks: none
New Features
------------
Simplified Surface Evaluation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The new *Bfr* interface provides an alternative to *Far* and *Osd* for
evaluating the limit surface -- treating a subdivision mesh as a
`piecewise parameteric surface primitive
<subdivision_surfaces.html#piecewise-parametric-surfaces>`__.
The *Bfr* interface is named for *Base Face Representation* as all
concepts and classes relate to the individual faces of the original
unrefined mesh, i.e. its "base faces". Each base face has a piece of
limit surface associated with it (*Bfr::Surface*) that is parameterized
(*Bfr::Parameterization*) and so can be evaluated and tessellated:
.. image:: images/bfr_release_notes.jpg
:align: center
:width: 50%
:target: images/bfr_release_notes.jpg
The limit surface for each face can be identified and evaluated
independently of any other faces without any global pre-processing of
a connected mesh. The resulting evaluation interface is much simpler, more
flexible and more scalable than those assembled with the table-based
class in *Far* -- providing a preferable alternative for many CPU-based
use cases (though not all).
See the `Bfr Overview <bfr_overview.html>`__ documentation for more
details.
Tessellation Patterns
~~~~~~~~~~~~~~~~~~~~~
In addition to evaluation, the *Bfr* interface includes a *Tessellation*
class that provides tessellation patterns for all faces of a base mesh.
A *Tessellation* does not encapsulate the entire tessellation process but
simply provides topological patterns to assemble such a process.
All faces of a mesh have a *Parameterization* which can be used to define
a *Tessellation* with the specification of one or more tessellation rates.
A single tessellation rate defines simple uniform tessellations:
+-------------------------------------------+-------------------------------------------+-------------------------------------------+
| .. image:: images/bfr_tess_quad_tris.png | .. image:: images/bfr_tess_pent_tris.png | .. image:: images/bfr_tess_uni_tri_5.png |
| :align: center | :align: center | :align: center |
| :width: 100% | :width: 100% | :width: 100% |
| :target: images/bfr_tess_quad_tris.png | :target: images/bfr_tess_pent_tris.png | :target: images/bfr_tess_uni_tri_5.png |
+-------------------------------------------+-------------------------------------------+-------------------------------------------+
while tessellation rates for each edge provide more complex non-uniform
patterns:
+-----------------------------------------------+-----------------------------------------------+-----------------------------------------------+
| .. image:: images/bfr_tess_nonuni_quad_A.png | .. image:: images/bfr_tess_nonuni_pent_A.png | .. image:: images/bfr_tess_nonuni_tri_A.png |
| :align: center | :align: center | :align: center |
| :width: 100% | :width: 100% | :width: 100% |
| :target: images/bfr_tess_nonuni_quad_A.png | :target: images/bfr_tess_nonuni_pent_A.png | :target: images/bfr_tess_nonuni_tri_A.png |
+-----------------------------------------------+-----------------------------------------------+-----------------------------------------------+
A small set of options is also available to define the resulting patterns
(e.g. the preservation of quad faces with quad-based subdivision schemes
(*above left and center*)) and to generate its output in a more favorable
form.
Tessellation patterns do not support the full flexibility of typical
hardware tessellation (e.g. no fractional tessellation) but do provide
some useful alternatives to hardware tessellation (e.g. the quad
preservation previously noted, and more uniform triangles for triangular
patches (*above right*)).
The *Tessellation* class is also completely independent of evaluation
in *Bfr*, and so can be used with any other evaluation interface.
See the `Tessellation <bfr_overview.html#bfr-navlink-tessellation>`__
subsection of the *Bfr Overview* for more details.
API Additions
-------------
See associated `Doxygen <doxy_html/index.html>`__ for full details.
New classes in namespace Bfr
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- class Parameterization
- class Surface
- class SurfaceFactory
- class SurfaceFactoryCache
- class SurfaceFactoryMeshAdapter
- class RefinerSurfaceFactory
- class Tessellation
Additions to Far::TopologyLevel
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- TopologyLevel::IsVertexCorner()
- TopologyLevel::IsVertexRegular()
- TopologyLevel::IsVertexInfSharp()
- TopologyLevel::IsVertexSemiSharp()
- TopologyLevel::IsEdgeInfSharp()
- TopologyLevel::IsEdgeSemiSharp()
Additions to nested Options classes in Far
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- PatchTableFactory::Options::SetMaxIsolationLevel()
- TopologyRefiner::UniformOptions::SetRefinementLevel()
- TopologyRefiner::AdaptiveOptions::SetMaxIsolationLevel()
- TopologyRefiner::AdaptiveOptions::SetMaxSecondaryLevel()
Other Changes
-------------
Deprecation Announcements
~~~~~~~~~~~~~~~~~~~~~~~~~
- Hbr is deprecated and will be removed from subsequent releases
Improvements
~~~~~~~~~~~~
- Suppression of GCC compiler warnings (GitHub #1253, #1254, #1270)
- Additional methods for Far::TopologyLevel (GitHub #1227, #1255)
- Improved mixed partial derivative at Gregory patch corners (GitHub #1252)
- Minor improvements to Far tutorials (GitHub #1226, #1241)
- Added CMake config (GitHub #1242)
- Updated CMake minimum version to 3.12 (GitHub #1237, #1261)
- Updated documentation build scripts for Python 3 (#1265, #1266)
- Updated 'stringify' build tool for improved cross compilation support
(GitHub #1267)
- Added 'NO_MACOS_FRAMEWORKS' build option (GitHub #1238)
- Updated Azure pipelines agents for Unbuntu and macOS (GitHub #1247, #1256)
- Removed obsolete AppVeyor and Travis CI scripts (GitHub #1259)
Bug Fixes
~~~~~~~~~
- Cache active program for Osd::GLComputeEvaluator (GitHub #1244)
- Fixed member initialization warnings in Osd::D3D11ComputeEvaluator
(GitHub #1239)
- Fixed GLSL shader source to remove storage qualifiers from struct members
(GitHub #1271)
- Fixed use of CMake variables for Apple builds (GitHub #1235)
- Fixed build errors when using OpenGL without GLFW (GitHub #1257)
- Fixed links to embedded videos (GitHub #1231)

View File

@ -22,7 +22,7 @@
language governing permissions and limitations under the Apache License.
3.0 - 3.4 Release Notes
3.0 - 3.5 Release Notes
-----------------------
.. contents::
@ -31,6 +31,47 @@
----
Release 3.5
~~~~~~~~~~~
Release 3.5.0 - Sep 2022
========================
Release 3.5.0 is a significant release with new features, several
configuration improvements, and a few other improvements and bug fixes.
For more information on the following, see `Release 3.5 <release_35.html>`__
**Deprecation Announcements**
- Hbr is deprecated and will be removed from subsequent releases
**New Features**
- Simplified Surface Evaluation (Bfr)
- Tessellation Patterns (Bfr)
**Changes**
- Suppression of GCC compiler warnings (GitHub #1253, #1254, #1270)
- Additional methods for Far::TopologyLevel (GitHub #1227, #1255)
- Improved mixed partial derivative at Gregory patch corners (GitHub #1252)
- Minor improvements to Far tutorials (GitHub #1226, #1241)
- Added CMake config (GitHub #1242)
- Updated CMake minimum version to 3.12 (GitHub #1237, #1261)
- Updated documentation build scripts for Python 3 (#1265, #1266)
- Updated 'stringify' build tool for improved cross compilation support
(GitHub #1267)
- Added 'NO_MACOS_FRAMEWORKS' build option (GitHub #1238)
- Updated Azure pipelines agents for Unbuntu and macOS (GitHub #1247, #1256)
- Removed obsolete AppVeyor and Travis CI scripts (GitHub #1259)
**Bug Fixes**
- Cache active program for Osd::GLComputeEvaluator (GitHub #1244)
- Fixed member initialization warnings in Osd::D3D11ComputeEvaluator
(GitHub #1239)
- Fixed GLSL shader source to remove storage qualifiers from struct members
(GitHub #1271)
- Fixed use of CMake variables for Apple builds (GitHub #1235)
- Fixed build errors when using OpenGL without GLFW (GitHub #1257)
- Fixed links to embedded videos (GitHub #1231)
Release 3.4
~~~~~~~~~~~

View File

@ -25,13 +25,13 @@
#ifndef OPENSUBDIV3_VERSION_H
#define OPENSUBDIV3_VERSION_H
#define OPENSUBDIV_VERSION v3_4_4
#define OPENSUBDIV_VERSION v3_5_0
#define OPENSUBDIV_VERSION_NUMBER 30404
#define OPENSUBDIV_VERSION_NUMBER 30500
#define OPENSUBDIV_VERSION_MAJOR 3
#define OPENSUBDIV_VERSION_MINOR 4
#define OPENSUBDIV_VERSION_PATCH 4
#define OPENSUBDIV_VERSION_MINOR 5
#define OPENSUBDIV_VERSION_PATCH 0
namespace OpenSubdiv {
namespace OPENSUBDIV_VERSION {