mirror of
https://github.com/PixarAnimationStudios/OpenSubdiv
synced 2024-11-08 13:30:04 +00:00
Release 3.6.0
This commit is contained in:
parent
55a981d60b
commit
7d0ab5530f
@ -98,6 +98,7 @@ if (DOCUTILS_FOUND AND Python_Interpreter_FOUND)
|
||||
release_33.rst
|
||||
release_34.rst
|
||||
release_35.rst
|
||||
release_36.rst
|
||||
release_notes.rst
|
||||
release_notes_2x.rst
|
||||
sdc_overview.rst
|
||||
|
@ -102,6 +102,7 @@
|
||||
<p></p>
|
||||
<li><a href="release_notes.html">Releases</a>
|
||||
<ul>
|
||||
<li><a href="release_36.html">Release 3.6</a></li>
|
||||
<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>
|
||||
|
163
documentation/release_36.rst
Normal file
163
documentation/release_36.rst
Normal file
@ -0,0 +1,163 @@
|
||||
..
|
||||
Copyright 2023 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.6
|
||||
=======================
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
:backlinks: none
|
||||
|
||||
New Features
|
||||
------------
|
||||
|
||||
The purpose of this release is to address concerns which
|
||||
improve support for current typical use cases and
|
||||
provide support for significant new use cases.
|
||||
|
||||
Modern Graphics APIs and Parallel Computation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
OpenSubdiv is organized as a set of components for working with
|
||||
subdivision surface representations, i.e. Bfr, Far, Vtr, Sdc along with
|
||||
a collection of back-end components in Osd supporting the use of
|
||||
specific low-level subsystems to work with subdivision surface data.
|
||||
|
||||
These back-end components in Osd have taken many forms including in
|
||||
some cases specific complete GPU shaders along with controller classes
|
||||
to manage compilation and execution of these shaders.
|
||||
|
||||
In practice it has been more effective for Osd to simply supply the
|
||||
functions needed to operate on subdivision surface data, allowing
|
||||
the client application or client library to take care of using these
|
||||
functions from client provided shaders and computation kernels using
|
||||
client provided execution controllers.
|
||||
|
||||
This has been the direction for the Osd library for some time and the
|
||||
changes implemented in this release make this even more straightforward.
|
||||
|
||||
The existing methods:
|
||||
|
||||
- Osd::GLSLPatchShaderSource::GetPatchBasisShaderSource()
|
||||
- Osd::HLSLPatchShaderSource::GetPatchBasisShaderSource()
|
||||
- Osd::MTLPatchShaderSource::GetPatchBasisShaderSource()
|
||||
|
||||
continue to return shader source strings at runtime which contain
|
||||
definitions and functions allowing client shader code to evaluate
|
||||
values and first and second derivatives on the piecewise parametric
|
||||
patches resulting from subdivison refinement.
|
||||
|
||||
The identical code is now available at compile time as:
|
||||
|
||||
- opensubdiv/osd/patchBasis.h
|
||||
|
||||
and is essentially a "shader" interface that can be used from client
|
||||
kernels including those implemented using TBB, CUDA, C++, etc.
|
||||
|
||||
Similarly, the new methods:
|
||||
|
||||
- Osd::GLSLPatchShaderSource::GetPatchDrawingShaderSource()
|
||||
- Osd::HLSLPatchShaderSource::GetPatchDrawingShaderSource()
|
||||
- Osd::MTLPatchShaderSource::GetPatchDrawingShaderSource()
|
||||
|
||||
return shader source strings at runtime which contain definitions
|
||||
and functions allowing clients to draw the piecewise parametric
|
||||
patches resulting from subdivision, e.g. using GPU tessellation
|
||||
shaders or GPU mesh shaders.
|
||||
|
||||
The returned shader source has been stripped of resource binding
|
||||
and other potentially problematic defintions since these are usually
|
||||
best handled by client shader code.
|
||||
|
||||
These methods have been tested successfully with new client code
|
||||
using Vulkan and DirectX 12 in addition to existing client code
|
||||
using OpenGL, Metal, DirectX 11, etc.
|
||||
|
||||
Updated Third-party APIs and Tools
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
While the methods described above will be the most effective way
|
||||
to use OpenSubdiv, some of the existing back-end components have been
|
||||
updated to accommodate evolving third-party APIs and tools.
|
||||
|
||||
Specifically, the TBB implementation has been updated to allow
|
||||
use with the oneTBB API while continuing to maintain
|
||||
compatibility with earlier releases of TBB.
|
||||
|
||||
Also, there have been minor fixes to the CMake build to accommodate
|
||||
using the Ninja build system and also systems with OpenCL 3.0.
|
||||
|
||||
API Additions
|
||||
-------------
|
||||
|
||||
See associated `Doxygen <doxy_html/index.html>`__ for full details.
|
||||
|
||||
Additions to Osd::PatchShaderSource
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
- GLSLPatchShaderSource::GetPatchDrawingShaderSource()
|
||||
- HLSLPatchShaderSource::GetPatchDrawingShaderSource()
|
||||
- MTLPatchShaderSource::GetPatchDrawingShaderSource()
|
||||
|
||||
Osd extensions for patch evaluation from client shaders and compute kernels
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
- struct OsdPatchArray and OsdPatchArrayInit()
|
||||
- struct OsdPatchCoord and OsdPatchCoordInit()
|
||||
- struct OsdPatchParam and OsdPatchParamInit()
|
||||
- OsdPatchParamGetFaceId()
|
||||
- OsdPatchParamGetU()
|
||||
- OsdPatchParamGetV()
|
||||
- OsdPatchParamGetTransition()
|
||||
- OsdPatchParamGetBoundary()
|
||||
- OsdPatchParamGetNonQuadRoot()
|
||||
- OsdPatchParamGetDepth()
|
||||
- OsdPatchParamGetParamFraction()
|
||||
- OsdPatchParamIsRegular()
|
||||
- OsdPatchParamIsTriangleRotated()
|
||||
- OsdPatchParamNormalize()
|
||||
- OsdPatchParamUnnormalize()
|
||||
- OsdPatchParamNormalize(Triangle)
|
||||
- OsdPatchParamUnnormalizeTriangle()
|
||||
- OsdEvaluatePatchBasisNormalized()
|
||||
- OsdEvaluatePatchBasis()
|
||||
|
||||
Other Changes
|
||||
-------------
|
||||
|
||||
Deprecation Announcements
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
- The methods Osd::TbbEvaluator::SetNumThreads() and Osd::OmpEvaluator::SetNumThreads() have been marked deprecated.
|
||||
|
||||
Improvements
|
||||
~~~~~~~~~~~~
|
||||
- Updated Osd patch drawing shader source to exclude legacy shader constructs to improve compatibility with Vulkan, DX12, etc. (GitHub #1320)
|
||||
- Installed Osd patch evaluation headers to allow use from client shaders and compute kernels (GitHub #1321)
|
||||
- Updated CMake build to locate TBB using TBB's CMake config in order to support oneTBB (GitHub #1319)
|
||||
- Updated CMake FindOpenCL module to support parsing version information from recent OpenCL headers (GitHub #1322)
|
||||
- Removed obsolete .travis.yml (GitHub #1324)
|
||||
|
||||
Bug Fixes
|
||||
~~~~~~~~~
|
||||
- Fixed inconsistent warning levels for MSVC builds when using Ninja (GitHub #1318)
|
||||
- Fixed documentation build errors when using Ninja (GitHub #1323)
|
||||
- Fixed build errors resulting from oneTBB API changes (GitHub #1317)
|
@ -22,7 +22,7 @@
|
||||
language governing permissions and limitations under the Apache License.
|
||||
|
||||
|
||||
3.0 - 3.5 Release Notes
|
||||
3.0 - 3.6 Release Notes
|
||||
-----------------------
|
||||
|
||||
.. contents::
|
||||
@ -31,6 +31,28 @@
|
||||
|
||||
----
|
||||
|
||||
Release 3.6
|
||||
~~~~~~~~~~~
|
||||
|
||||
Release 3.6.0 - Sep 2023
|
||||
==============================
|
||||
|
||||
Release 3.6.0 is a significant release with new features, several
|
||||
configuration improvements, and bug fixes.
|
||||
For more information on the following, see `Release 3.6 <release_36.html>`__
|
||||
|
||||
**Changes**
|
||||
- Updated Osd patch drawing shader source to exclude legacy shader constructs to improve compatibility with Vulkan, DX12, etc. (GitHub #1320)
|
||||
- Installed Osd patch evaluation headers to allow use from client shaders and compute kernels (GitHub #1321)
|
||||
- Updated CMake build to locate TBB using TBB's CMake config in order to support oneTBB (GitHub #1319)
|
||||
- Updated CMake FindOpenCL module to support parsing version information from recent OpenCL headers (GitHub #1322)
|
||||
- Removed obsolete .travis.yml (GitHub #1324)
|
||||
|
||||
**Bug Fixes**
|
||||
- Fixed inconsistent warning levels for MSVC builds when using Ninja (GitHub #1318)
|
||||
- Fixed documentation build errors when using Ninja (GitHub #1323)
|
||||
- Fixed build errors resulting from oneTBB API changes (GitHub #1317)
|
||||
|
||||
Release 3.5
|
||||
~~~~~~~~~~~
|
||||
|
||||
|
@ -25,13 +25,13 @@
|
||||
#ifndef OPENSUBDIV3_VERSION_H
|
||||
#define OPENSUBDIV3_VERSION_H
|
||||
|
||||
#define OPENSUBDIV_VERSION v3_5_1
|
||||
#define OPENSUBDIV_VERSION v3_6_0
|
||||
|
||||
#define OPENSUBDIV_VERSION_NUMBER 30501
|
||||
#define OPENSUBDIV_VERSION_NUMBER 30600
|
||||
|
||||
#define OPENSUBDIV_VERSION_MAJOR 3
|
||||
#define OPENSUBDIV_VERSION_MINOR 5
|
||||
#define OPENSUBDIV_VERSION_PATCH 1
|
||||
#define OPENSUBDIV_VERSION_MINOR 6
|
||||
#define OPENSUBDIV_VERSION_PATCH 0
|
||||
|
||||
namespace OpenSubdiv {
|
||||
namespace OPENSUBDIV_VERSION {
|
||||
|
Loading…
Reference in New Issue
Block a user