Skip to content

Commit

Permalink
Merge release v18.11
Browse files Browse the repository at this point in the history
  • Loading branch information
pixar-oss committed Oct 9, 2018
2 parents 9a827fc + 255a75d commit 6c50b29
Show file tree
Hide file tree
Showing 645 changed files with 25,134 additions and 6,186 deletions.
11 changes: 11 additions & 0 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ Advanced Build Configuration
============================

## Table of Contents
- [Building With Build Script](#building-with-build-script)
- [Building With CMake](#building-with-cmake)
- [Optional Components](#optional-components)
- [Imaging Plugins](#imaging-plugins)
Expand All @@ -12,6 +13,14 @@ Advanced Build Configuration
- [Optimization Options](#optimization-options)
- [Linker Options](#linker-options)

## Building With Build Script

The simplest way to build USD is to run the supplied ```build_usd.py```
script. This script will download required dependencies and build
and install them along with USD in a given directory.

See instructions and examples in [README.md](README.md#getting-and-building-the-code).

## Building With CMake

Users may specify libraries to build USD against and other build options by
Expand Down Expand Up @@ -227,6 +236,8 @@ when invoking cmake. This plugin is compatible with Houdini 16.0. The additional
| -------------- | ----------------------------------- | ------- |
| HOUDINI_ROOT | The root path to a Houdini SDK install.| 16.0 |

Note that the Houdini plugin is only tested on Linux.

For further information see our additional documentation on the Houdini plugins [here](http://openusd.org/docs/Houdini-USD-Plugins.html).

##### MaterialX Plugin
Expand Down
133 changes: 133 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,138 @@
# Change Log

## [18.11] - 2018-10-10

### Added
USD:
- [usdVol] UsdVol schema for representing volumes. (PR #567)
- [usdShade] Ability to define shaders in the shader definition registry
using UsdShade.
- [usdShaders] Shader definition registry plugin for core nodes defined in
the UsdPreviewSurface specification.

Imaging:
- [hd, usdImaging] Hydra support for UsdVol schema. (PR #567)
- [hd, hdSt] Topology visibility operations for meshes in Hydra.
- [hd, hdSt] Support for inverting the depth test of a draw target.
- [hd, hdSt] "Flat normals" computed buffer source for meshes.
- [hdx] ResolveNearestToCenter pick hit resolution method for ray picking.

- [usdview] Menu for switching AOVs for supported backends.
- [usdview] Menu for backend-specific settings.

Alembic plugin:
- [usdAbc] Behavior where an Xform with a single geometry or camera in an
Alembic file would be collapsed into a single prim in USD can now be disabled
by setting the environment variable `USD_ABC_XFORM_PRIM_COLLAPSE` to 0.
(PR #527)

Maya plugin:
- [usdMaya] Display filter for USD proxy shapes.
- [usdMaya, pxrUsdMayaGL] pxrHdImagingShape node that reduces overhead when
imaging scenes with many Hydra-backed shapes.
- [pxrUsdMayaGL] Support for Maya lights casting shadows between Hydra shapes,
and Hydra shapes to Maya shapes, but not Maya shapes to Hydra shapes.

Houdini plugin:
- [gusd] Experimental build support for Houdini plugin on Windows.
- [OP_gusd] Multi-seg export to USD output ROP.

### Changed
- Numerous fixes and cleanup changes throughout to improve performance,
convert code to more modern patterns, and remove unneeded uses of boost.
(PR #373, #453, #481, #484, #488)

USD:
- [usd] UsdAPISchemaBase is now an abstract base class as originally intended.
- [usdGeom] Improved performance of UsdGeomPointBased::ComputeExtent. In one
example, this provided a ~30% improvement. (PR #588)
- [usdGeom] Improved performance of computing extents for UsdGeomPointInstancer.
In one example with >5 million instances, extent computation time decreased
from ~25 seconds to ~3 seconds.
- [usdSkel] UsdSkelBakeSkinning bakes skinning at additional time samples
based on stage's configured sampling rate.
- [usdedit] Opening a .usdz file now forces read-only mode.
- [usdzip] "-l" or "-d" arguments will now provide information about existing
.usdz files.
- [usdzip] ARKit compliance checks now require valid sources for shader inputs
with connections and valid prims and/or collections for material bindings.

Imaging:
- [hd] Improved Hydra AOV API.
- [hd] Split reprs into the topology indices they affect.
- [hd] Properly set up both the shadow projection and view matrices. (PR #583)
- [hd] Optimization to not run garbage collection if a texture hasn't change.
- [hd, hdSt, usdImaging] Update wrap mode fallback behavior to useMetadata.
- [hdx] Improved shadow support in HdxTaskController. (PR #541)
- [hdx] "Enable Hardware Shading" entry point is now "Enable Scene Materials".
- [hdSt] Support to generate GLSL-compatible names for resources/primvars.
- [usdImagingGL] Better support for animated textures. (PR #488)
- [usdview] Better error reporting if an unsupported backend is selected.
(PR #635)
- [hdEmbree] Improved AO sampling (cosine-weighted sampling, stratified AO
samples LHS).

Maya plugin:
- [pxrUsdMayaGL] Many performance improvements in the Hydra batch renderer.
- [usdMaya, pxrUsdMayaGL] Using USD in live surface uses the normal at the
snap point.
- [usdMaya, pxrUsdTranslators] Various code cleanup in USD exporter.

Katana plugin:
- [usdKatana] Use bracketing sample closest to shutter open/close if no frames
found in shutter interval.
- [usdKatana] Honor UsdStage's authored timeCodesPerSecond and framesPerSecond.
If they differ, Katana will operate in frames, with current time, motion
samples, and shutter interval scaled appropriately.

Houdini plugin:
- [gusd] Rebind materials when creating sub-root references.
- [gusd] Optimizations in handling of stage mask operations.
- [OP_gusd] USD output ROP now allows binding to shaders referenced from other
models.

### Removed

Imaging:
- [hd] Removed Repr requirements from GetRenderTag API.

### Fixed
Build:
- [cmake] User-specified CMAKE_MODULE_PATH was being ignored during build.
(PR #614)
- [cmake] Installed headers could take precedence over source headers, leading
to build failures. (Issue #83)

USD:
- [tf] TfEnvSetting crash on MSVC 2017.
- [ar] ArDefaultResolver::AnchorRelativePath did not call IsRelativePath on
derived resolvers. (PR #426)
- [sdf] SdfCopySpec did not handle copying prim specs to variants and vice-versa.
- [sdf] Incorrect notification was sent when removing subtrees of inert specs.
- [usd] Prim payload was not automatically loaded when a deactivated ancestor
prim with a payload was activated. (Issue #604)
- [usd] Incorrect lists of time samples would be returned in certain cases
with value clips.
- [usd, usdzip] .usdz files were not fully compliant with the zip file format
specification.
- [usdUtils, usdzip] Creating an ARKit .usdz file with a .usda asset would
create an invalid file.
- [usdMtlx] MaterialX plugin build failures on Windows and macOS. (Issue #611)

Imaging:
- [hdx] Picking with disabled scene materials generating shader errors.
- [hdSt] Fix immediate draw batch invalidation on buffer migration.
- [hdSt] Fix garbage collection on buffer migration.
- [hdSt] Bindless texture loading not being deferred.
- [usdImaging] Wrong transforms were being used when using usdLux light
transforms (Issue #612).
- [usdImaging] Fix for usdImaging's TextureId not accounting for origin.

Houdini plugin:
- [gusd] Several fixes for building with Houdini 17. (PR #549)
- [gusd] Several fixes for stale caches and crashes.
- [gusd] Potential PackedUSD transform issues in Houdini 16.5.

## [18.09] - 2018-08-07

This release includes several major new features and changes, including:
Expand Down
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ if (NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
endif()
endif()

set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/defaults
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
${CMAKE_SOURCE_DIR}/cmake/defaults
${CMAKE_SOURCE_DIR}/cmake/modules
${CMAKE_SOURCE_DIR}/cmake/macros)

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Dependencies
| ---- | ------- | :------: |
| C++ compiler | GCC 4.8, Clang 3.5, MSVC 14.0(VS 2015), MSVC 14.1(VS 2017) | |
| C compiler | GCC 4.8, Clang 3.5, MSVC 14.0(VS 2015), MSVC 14.1(VS 2017) | |
| [CMake](https://cmake.org/documentation/) | 2.8.8 (Linux/OS X), 3.1.1 (Windows VS 2015), 3.12 (Windows VS 2017) | |
| [CMake](https://cmake.org/documentation/) | 2.8.8 (Linux), 3.12 (OS X/Windows) | |
| [Python](https://python.org) | 2.7.5 | x |
| [Boost](https://boost.org) | 1.55 (Linux), 1.61.0 (OS X/Windows VS 2015), 1.65.1 (Windows VS 2017) | |
| [Intel TBB](https://www.threadingbuildingblocks.org/) | 4.4 Update 6 | |
Expand Down
2 changes: 1 addition & 1 deletion cmake/defaults/Version.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@
# Versioning information
set(PXR_MAJOR_VERSION "0")
set(PXR_MINOR_VERSION "18")
set(PXR_PATCH_VERSION "9")
set(PXR_PATCH_VERSION "11")
3 changes: 0 additions & 3 deletions cmake/macros/Private.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -1015,11 +1015,8 @@ function(_pxr_python_module NAME)
${SUBDIR_INC_DIR}
)

# Include system headers before our own. We define several headers
# that conflict; for example, half.h in EXR versus gf
if (args_INCLUDE_DIRS)
target_include_directories(${LIBRARY_NAME}
BEFORE
PUBLIC
${args_INCLUDE_DIRS}
)
Expand Down
2 changes: 1 addition & 1 deletion cmake/macros/Public.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -147,8 +147,8 @@ function(pxr_cpp_bin BIN_NAME)

target_include_directories(${BIN_NAME}
PRIVATE
${cb_INCLUDE_DIRS}
${PRIVATE_INC_DIR}
${cb_INCLUDE_DIRS}
)

_pxr_init_rpath(rpath "${installDir}")
Expand Down
12 changes: 10 additions & 2 deletions cmake/modules/FindHoudini.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,22 @@ find_path(HOUDINI_INCLUDE_DIRS
"Houdini Development Kit Header Path"
)

if (UNIX)
set(HOUDINI_LIB_NAME "libHoudiniGEO.so")
set(HOUDINI_LIB_PATH_SUFFIX "dsolib/")
elseif(WIN32)
set(HOUDINI_LIB_NAME "libGEO.lib")
set(HOUDINI_LIB_PATH_SUFFIX "custom/houdini/dsolib/")
endif()

find_path(HOUDINI_LIB_DIRS
libHoudiniGEO.so
${HOUDINI_LIB_NAME}
HINTS
"${HOUDINI_ROOT}"
"$ENV{HOUDINI_ROOT}"
"${HOUDINI_BASE_DIR}"
PATH_SUFFIXES
dsolib/
${HOUDINI_LIB_PATH_SUFFIX}
DOC
"Houdini Development Kit Library Path"
)
Expand Down
8 changes: 7 additions & 1 deletion cmake/modules/FindMaterialX.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,14 @@ find_path(MATERIALX_INCLUDE_DIRS
"MaterialX Header Path"
)

if (WIN32)
set(MATERIALX_CORE_LIB_NAME MaterialXCore.lib)
else()
set(MATERIALX_CORE_LIB_NAME libMaterialXCore.a)
endif()

find_path(MATERIALX_LIB_DIRS
libMaterialXCore.a
"${MATERIALX_CORE_LIB_NAME}"
HINTS
"${MATERIALX_ROOT}"
"$ENV{MATERIALX_ROOT}"
Expand Down
137 changes: 137 additions & 0 deletions extras/usd/examples/usdGeomExamples/basisCurves.usda
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
#usda 1.0

(
upAxis = "Y"
doc = """This layer represents the various geometric forms that curves
may be used to represent."""
)


def Xform "Linear" {
uniform token[] xformOpOrder = ["xformOp:translate"]
float3 xformOp:translate = (0, 9, 0)
def Scope "Tubes"{
def BasisCurves "ConstantWidth" (){
uniform token[] xformOpOrder = ["xformOp:translate"]
float3 xformOp:translate = (3, 0, 0)

uniform token type = "linear"
int[] curveVertexCounts = [7]
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
float[] widths = [.5] (interpolation = "constant")
color3f[] primvars:displayColor = [(1, 0, 0)]
}
def BasisCurves "VaryingWidth" (){
uniform token[] xformOpOrder = ["xformOp:translate"]
float3 xformOp:translate = (6, 0, 0)

uniform token type = "linear"
int[] curveVertexCounts = [7]
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
float[] widths = [0, .5, .5, .8, .5, .5, 0] (interpolation = "varying")
color3f[] primvars:displayColor = [(0, 0, 1)]
}
}
def Scope "Ribbons"{
def BasisCurves "VaryingWidth" (){
uniform token[] xformOpOrder = ["xformOp:translate"]
float3 xformOp:translate = (12, 0, 0)

uniform token type = "linear"
int[] curveVertexCounts = [7]
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
float[] widths = [0, .5, .5, .8, .5, .5, 0] (interpolation = "varying")
normal3f[] normals = [(1, 0, 0), (.98, 0, .44), (.98, 0, .44), (.707, 0, .707), (.98, 0, .44), (.98, 0, .44), (1, 0, 0)] (interpolation = "varying")
color3f[] primvars:displayColor = [(0, 1, 0)]
}
def BasisCurves "ConstantWidth" (){
uniform token[] xformOpOrder = ["xformOp:translate"]
float3 xformOp:translate = (15, 0, 0)

uniform token type = "linear"
int[] curveVertexCounts = [7]
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
float[] widths = [.5] (interpolation = "constant")
normal3f[] normals = [(1, 0, 0), (.98, 0, .44), (.98, 0, .44), (.707, 0, .707), (.98, 0, .44), (.98, 0, .44), (1, 0, 0)] (interpolation = "varying")
color3f[] primvars:displayColor = [(1, 1, 1)]
}
}
}



def Scope "Cubic"{
def Scope "Tubes" {
def BasisCurves "ConstantWidth" (){
uniform token[] xformOpOrder = ["xformOp:translate"]
float3 xformOp:translate = (3, 0, 0)

uniform token type = "cubic"
uniform token basis = "bezier"
int[] curveVertexCounts = [7]
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
float[] widths = [.5] (interpolation = "constant")
color3f[] primvars:displayColor = [(1, 0, 0)]
}
def BasisCurves "VaryingWidth" (){
uniform token[] xformOpOrder = ["xformOp:translate"]
float3 xformOp:translate = (6, 0, 0)

uniform token type = "cubic"
uniform token basis = "bezier"
int[] curveVertexCounts = [7]
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
float[] widths = [0, .8, 0] (interpolation = "varying")
color3f[] primvars:displayColor = [(0, 0, 1)]
}
def BasisCurves "VertexWidth" (){
uniform token[] xformOpOrder = ["xformOp:translate"]
float3 xformOp:translate = (9, 0, 0)

uniform token type = "cubic"
uniform token basis = "bezier"
int[] curveVertexCounts = [7]
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
float[] widths = [0, .5, .5, .8, .5, .5, 0] (interpolation = "vertex")
color3f[] primvars:displayColor = [(1, 0, 1)]
}
}
def Scope "Ribbons"{
def BasisCurves "ConstantWidth" (){
uniform token[] xformOpOrder = ["xformOp:translate"]
float3 xformOp:translate = (12, 0, 0)

uniform token type = "cubic"
uniform token basis = "bezier"
int[] curveVertexCounts = [7]
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
float[] widths = [.5] (interpolation = "constant")
normal3f[] normals = [(1, 0, 0), (.98, 0, .44), (.707, 0, .707)] (interpolation = "varying")
color3f[] primvars:displayColor = [(0, 1, 0)]
}
def BasisCurves "VaryingWidth" (){
uniform token[] xformOpOrder = ["xformOp:translate"]
float3 xformOp:translate = (15, 0, 0)

uniform token type = "cubic"
uniform token basis = "bezier"
int[] curveVertexCounts = [7]
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
float[] widths = [.5, .8, .5] (interpolation = "varying")
normal3f[] normals = [(1, 0, 0), (.98, 0, .44), (.707, 0, .707)] (interpolation = "varying")
color3f[] primvars:displayColor = [(1, 1, 1)]
}
def BasisCurves "VertexWidth" (){
uniform token[] xformOpOrder = ["xformOp:translate"]
float3 xformOp:translate = (18, 0, 0)

uniform token type = "cubic"
uniform token basis = "bezier"
int[] curveVertexCounts = [7]
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
float[] widths = [0, .5, .5, .8, .5, .5, 0] (interpolation = "vertex")
normal3f[] normals = [(1, 0, 0), (.98, 0, .44), (.707, 0, .707)] (interpolation = "varying")
color3f[] primvars:displayColor = [(1, 1, 0)]
}
}
}
Loading

0 comments on commit 6c50b29

Please sign in to comment.