Skip to content

Commit 6c50b29

Browse files
committed
Merge release v18.11
2 parents 9a827fc + 255a75d commit 6c50b29

File tree

645 files changed

+25134
-6186
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

645 files changed

+25134
-6186
lines changed

BUILDING.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ Advanced Build Configuration
22
============================
33

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

16+
## Building With Build Script
17+
18+
The simplest way to build USD is to run the supplied ```build_usd.py```
19+
script. This script will download required dependencies and build
20+
and install them along with USD in a given directory.
21+
22+
See instructions and examples in [README.md](README.md#getting-and-building-the-code).
23+
1524
## Building With CMake
1625

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

239+
Note that the Houdini plugin is only tested on Linux.
240+
230241
For further information see our additional documentation on the Houdini plugins [here](http://openusd.org/docs/Houdini-USD-Plugins.html).
231242

232243
##### MaterialX Plugin

CHANGELOG.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,138 @@
11
# Change Log
22

3+
## [18.11] - 2018-10-10
4+
5+
### Added
6+
USD:
7+
- [usdVol] UsdVol schema for representing volumes. (PR #567)
8+
- [usdShade] Ability to define shaders in the shader definition registry
9+
using UsdShade.
10+
- [usdShaders] Shader definition registry plugin for core nodes defined in
11+
the UsdPreviewSurface specification.
12+
13+
Imaging:
14+
- [hd, usdImaging] Hydra support for UsdVol schema. (PR #567)
15+
- [hd, hdSt] Topology visibility operations for meshes in Hydra.
16+
- [hd, hdSt] Support for inverting the depth test of a draw target.
17+
- [hd, hdSt] "Flat normals" computed buffer source for meshes.
18+
- [hdx] ResolveNearestToCenter pick hit resolution method for ray picking.
19+
20+
- [usdview] Menu for switching AOVs for supported backends.
21+
- [usdview] Menu for backend-specific settings.
22+
23+
Alembic plugin:
24+
- [usdAbc] Behavior where an Xform with a single geometry or camera in an
25+
Alembic file would be collapsed into a single prim in USD can now be disabled
26+
by setting the environment variable `USD_ABC_XFORM_PRIM_COLLAPSE` to 0.
27+
(PR #527)
28+
29+
Maya plugin:
30+
- [usdMaya] Display filter for USD proxy shapes.
31+
- [usdMaya, pxrUsdMayaGL] pxrHdImagingShape node that reduces overhead when
32+
imaging scenes with many Hydra-backed shapes.
33+
- [pxrUsdMayaGL] Support for Maya lights casting shadows between Hydra shapes,
34+
and Hydra shapes to Maya shapes, but not Maya shapes to Hydra shapes.
35+
36+
Houdini plugin:
37+
- [gusd] Experimental build support for Houdini plugin on Windows.
38+
- [OP_gusd] Multi-seg export to USD output ROP.
39+
40+
### Changed
41+
- Numerous fixes and cleanup changes throughout to improve performance,
42+
convert code to more modern patterns, and remove unneeded uses of boost.
43+
(PR #373, #453, #481, #484, #488)
44+
45+
USD:
46+
- [usd] UsdAPISchemaBase is now an abstract base class as originally intended.
47+
- [usdGeom] Improved performance of UsdGeomPointBased::ComputeExtent. In one
48+
example, this provided a ~30% improvement. (PR #588)
49+
- [usdGeom] Improved performance of computing extents for UsdGeomPointInstancer.
50+
In one example with >5 million instances, extent computation time decreased
51+
from ~25 seconds to ~3 seconds.
52+
- [usdSkel] UsdSkelBakeSkinning bakes skinning at additional time samples
53+
based on stage's configured sampling rate.
54+
- [usdedit] Opening a .usdz file now forces read-only mode.
55+
- [usdzip] "-l" or "-d" arguments will now provide information about existing
56+
.usdz files.
57+
- [usdzip] ARKit compliance checks now require valid sources for shader inputs
58+
with connections and valid prims and/or collections for material bindings.
59+
60+
Imaging:
61+
- [hd] Improved Hydra AOV API.
62+
- [hd] Split reprs into the topology indices they affect.
63+
- [hd] Properly set up both the shadow projection and view matrices. (PR #583)
64+
- [hd] Optimization to not run garbage collection if a texture hasn't change.
65+
- [hd, hdSt, usdImaging] Update wrap mode fallback behavior to useMetadata.
66+
- [hdx] Improved shadow support in HdxTaskController. (PR #541)
67+
- [hdx] "Enable Hardware Shading" entry point is now "Enable Scene Materials".
68+
- [hdSt] Support to generate GLSL-compatible names for resources/primvars.
69+
- [usdImagingGL] Better support for animated textures. (PR #488)
70+
- [usdview] Better error reporting if an unsupported backend is selected.
71+
(PR #635)
72+
- [hdEmbree] Improved AO sampling (cosine-weighted sampling, stratified AO
73+
samples LHS).
74+
75+
Maya plugin:
76+
- [pxrUsdMayaGL] Many performance improvements in the Hydra batch renderer.
77+
- [usdMaya, pxrUsdMayaGL] Using USD in live surface uses the normal at the
78+
snap point.
79+
- [usdMaya, pxrUsdTranslators] Various code cleanup in USD exporter.
80+
81+
Katana plugin:
82+
- [usdKatana] Use bracketing sample closest to shutter open/close if no frames
83+
found in shutter interval.
84+
- [usdKatana] Honor UsdStage's authored timeCodesPerSecond and framesPerSecond.
85+
If they differ, Katana will operate in frames, with current time, motion
86+
samples, and shutter interval scaled appropriately.
87+
88+
Houdini plugin:
89+
- [gusd] Rebind materials when creating sub-root references.
90+
- [gusd] Optimizations in handling of stage mask operations.
91+
- [OP_gusd] USD output ROP now allows binding to shaders referenced from other
92+
models.
93+
94+
### Removed
95+
96+
Imaging:
97+
- [hd] Removed Repr requirements from GetRenderTag API.
98+
99+
### Fixed
100+
Build:
101+
- [cmake] User-specified CMAKE_MODULE_PATH was being ignored during build.
102+
(PR #614)
103+
- [cmake] Installed headers could take precedence over source headers, leading
104+
to build failures. (Issue #83)
105+
106+
USD:
107+
- [tf] TfEnvSetting crash on MSVC 2017.
108+
- [ar] ArDefaultResolver::AnchorRelativePath did not call IsRelativePath on
109+
derived resolvers. (PR #426)
110+
- [sdf] SdfCopySpec did not handle copying prim specs to variants and vice-versa.
111+
- [sdf] Incorrect notification was sent when removing subtrees of inert specs.
112+
- [usd] Prim payload was not automatically loaded when a deactivated ancestor
113+
prim with a payload was activated. (Issue #604)
114+
- [usd] Incorrect lists of time samples would be returned in certain cases
115+
with value clips.
116+
- [usd, usdzip] .usdz files were not fully compliant with the zip file format
117+
specification.
118+
- [usdUtils, usdzip] Creating an ARKit .usdz file with a .usda asset would
119+
create an invalid file.
120+
- [usdMtlx] MaterialX plugin build failures on Windows and macOS. (Issue #611)
121+
122+
Imaging:
123+
- [hdx] Picking with disabled scene materials generating shader errors.
124+
- [hdSt] Fix immediate draw batch invalidation on buffer migration.
125+
- [hdSt] Fix garbage collection on buffer migration.
126+
- [hdSt] Bindless texture loading not being deferred.
127+
- [usdImaging] Wrong transforms were being used when using usdLux light
128+
transforms (Issue #612).
129+
- [usdImaging] Fix for usdImaging's TextureId not accounting for origin.
130+
131+
Houdini plugin:
132+
- [gusd] Several fixes for building with Houdini 17. (PR #549)
133+
- [gusd] Several fixes for stale caches and crashes.
134+
- [gusd] Potential PackedUSD transform issues in Houdini 16.5.
135+
3136
## [18.09] - 2018-08-07
4137

5138
This release includes several major new features and changes, including:

CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ if (NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
1717
endif()
1818
endif()
1919

20-
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/defaults
20+
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
21+
${CMAKE_SOURCE_DIR}/cmake/defaults
2122
${CMAKE_SOURCE_DIR}/cmake/modules
2223
${CMAKE_SOURCE_DIR}/cmake/macros)
2324

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Dependencies
4949
| ---- | ------- | :------: |
5050
| C++ compiler | GCC 4.8, Clang 3.5, MSVC 14.0(VS 2015), MSVC 14.1(VS 2017) | |
5151
| C compiler | GCC 4.8, Clang 3.5, MSVC 14.0(VS 2015), MSVC 14.1(VS 2017) | |
52-
| [CMake](https://cmake.org/documentation/) | 2.8.8 (Linux/OS X), 3.1.1 (Windows VS 2015), 3.12 (Windows VS 2017) | |
52+
| [CMake](https://cmake.org/documentation/) | 2.8.8 (Linux), 3.12 (OS X/Windows) | |
5353
| [Python](https://python.org) | 2.7.5 | x |
5454
| [Boost](https://boost.org) | 1.55 (Linux), 1.61.0 (OS X/Windows VS 2015), 1.65.1 (Windows VS 2017) | |
5555
| [Intel TBB](https://www.threadingbuildingblocks.org/) | 4.4 Update 6 | |

cmake/defaults/Version.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@
2424
# Versioning information
2525
set(PXR_MAJOR_VERSION "0")
2626
set(PXR_MINOR_VERSION "18")
27-
set(PXR_PATCH_VERSION "9")
27+
set(PXR_PATCH_VERSION "11")

cmake/macros/Private.cmake

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,11 +1015,8 @@ function(_pxr_python_module NAME)
10151015
${SUBDIR_INC_DIR}
10161016
)
10171017

1018-
# Include system headers before our own. We define several headers
1019-
# that conflict; for example, half.h in EXR versus gf
10201018
if (args_INCLUDE_DIRS)
10211019
target_include_directories(${LIBRARY_NAME}
1022-
BEFORE
10231020
PUBLIC
10241021
${args_INCLUDE_DIRS}
10251022
)

cmake/macros/Public.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ function(pxr_cpp_bin BIN_NAME)
147147

148148
target_include_directories(${BIN_NAME}
149149
PRIVATE
150-
${cb_INCLUDE_DIRS}
151150
${PRIVATE_INC_DIR}
151+
${cb_INCLUDE_DIRS}
152152
)
153153

154154
_pxr_init_rpath(rpath "${installDir}")

cmake/modules/FindHoudini.cmake

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,22 @@ find_path(HOUDINI_INCLUDE_DIRS
8181
"Houdini Development Kit Header Path"
8282
)
8383

84+
if (UNIX)
85+
set(HOUDINI_LIB_NAME "libHoudiniGEO.so")
86+
set(HOUDINI_LIB_PATH_SUFFIX "dsolib/")
87+
elseif(WIN32)
88+
set(HOUDINI_LIB_NAME "libGEO.lib")
89+
set(HOUDINI_LIB_PATH_SUFFIX "custom/houdini/dsolib/")
90+
endif()
91+
8492
find_path(HOUDINI_LIB_DIRS
85-
libHoudiniGEO.so
93+
${HOUDINI_LIB_NAME}
8694
HINTS
8795
"${HOUDINI_ROOT}"
8896
"$ENV{HOUDINI_ROOT}"
8997
"${HOUDINI_BASE_DIR}"
9098
PATH_SUFFIXES
91-
dsolib/
99+
${HOUDINI_LIB_PATH_SUFFIX}
92100
DOC
93101
"Houdini Development Kit Library Path"
94102
)

cmake/modules/FindMaterialX.cmake

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,14 @@ find_path(MATERIALX_INCLUDE_DIRS
6363
"MaterialX Header Path"
6464
)
6565

66+
if (WIN32)
67+
set(MATERIALX_CORE_LIB_NAME MaterialXCore.lib)
68+
else()
69+
set(MATERIALX_CORE_LIB_NAME libMaterialXCore.a)
70+
endif()
71+
6672
find_path(MATERIALX_LIB_DIRS
67-
libMaterialXCore.a
73+
"${MATERIALX_CORE_LIB_NAME}"
6874
HINTS
6975
"${MATERIALX_ROOT}"
7076
"$ENV{MATERIALX_ROOT}"
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
#usda 1.0
2+
3+
(
4+
upAxis = "Y"
5+
doc = """This layer represents the various geometric forms that curves
6+
may be used to represent."""
7+
)
8+
9+
10+
def Xform "Linear" {
11+
uniform token[] xformOpOrder = ["xformOp:translate"]
12+
float3 xformOp:translate = (0, 9, 0)
13+
def Scope "Tubes"{
14+
def BasisCurves "ConstantWidth" (){
15+
uniform token[] xformOpOrder = ["xformOp:translate"]
16+
float3 xformOp:translate = (3, 0, 0)
17+
18+
uniform token type = "linear"
19+
int[] curveVertexCounts = [7]
20+
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
21+
float[] widths = [.5] (interpolation = "constant")
22+
color3f[] primvars:displayColor = [(1, 0, 0)]
23+
}
24+
def BasisCurves "VaryingWidth" (){
25+
uniform token[] xformOpOrder = ["xformOp:translate"]
26+
float3 xformOp:translate = (6, 0, 0)
27+
28+
uniform token type = "linear"
29+
int[] curveVertexCounts = [7]
30+
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
31+
float[] widths = [0, .5, .5, .8, .5, .5, 0] (interpolation = "varying")
32+
color3f[] primvars:displayColor = [(0, 0, 1)]
33+
}
34+
}
35+
def Scope "Ribbons"{
36+
def BasisCurves "VaryingWidth" (){
37+
uniform token[] xformOpOrder = ["xformOp:translate"]
38+
float3 xformOp:translate = (12, 0, 0)
39+
40+
uniform token type = "linear"
41+
int[] curveVertexCounts = [7]
42+
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
43+
float[] widths = [0, .5, .5, .8, .5, .5, 0] (interpolation = "varying")
44+
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")
45+
color3f[] primvars:displayColor = [(0, 1, 0)]
46+
}
47+
def BasisCurves "ConstantWidth" (){
48+
uniform token[] xformOpOrder = ["xformOp:translate"]
49+
float3 xformOp:translate = (15, 0, 0)
50+
51+
uniform token type = "linear"
52+
int[] curveVertexCounts = [7]
53+
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
54+
float[] widths = [.5] (interpolation = "constant")
55+
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")
56+
color3f[] primvars:displayColor = [(1, 1, 1)]
57+
}
58+
}
59+
}
60+
61+
62+
63+
def Scope "Cubic"{
64+
def Scope "Tubes" {
65+
def BasisCurves "ConstantWidth" (){
66+
uniform token[] xformOpOrder = ["xformOp:translate"]
67+
float3 xformOp:translate = (3, 0, 0)
68+
69+
uniform token type = "cubic"
70+
uniform token basis = "bezier"
71+
int[] curveVertexCounts = [7]
72+
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
73+
float[] widths = [.5] (interpolation = "constant")
74+
color3f[] primvars:displayColor = [(1, 0, 0)]
75+
}
76+
def BasisCurves "VaryingWidth" (){
77+
uniform token[] xformOpOrder = ["xformOp:translate"]
78+
float3 xformOp:translate = (6, 0, 0)
79+
80+
uniform token type = "cubic"
81+
uniform token basis = "bezier"
82+
int[] curveVertexCounts = [7]
83+
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
84+
float[] widths = [0, .8, 0] (interpolation = "varying")
85+
color3f[] primvars:displayColor = [(0, 0, 1)]
86+
}
87+
def BasisCurves "VertexWidth" (){
88+
uniform token[] xformOpOrder = ["xformOp:translate"]
89+
float3 xformOp:translate = (9, 0, 0)
90+
91+
uniform token type = "cubic"
92+
uniform token basis = "bezier"
93+
int[] curveVertexCounts = [7]
94+
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
95+
float[] widths = [0, .5, .5, .8, .5, .5, 0] (interpolation = "vertex")
96+
color3f[] primvars:displayColor = [(1, 0, 1)]
97+
}
98+
}
99+
def Scope "Ribbons"{
100+
def BasisCurves "ConstantWidth" (){
101+
uniform token[] xformOpOrder = ["xformOp:translate"]
102+
float3 xformOp:translate = (12, 0, 0)
103+
104+
uniform token type = "cubic"
105+
uniform token basis = "bezier"
106+
int[] curveVertexCounts = [7]
107+
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
108+
float[] widths = [.5] (interpolation = "constant")
109+
normal3f[] normals = [(1, 0, 0), (.98, 0, .44), (.707, 0, .707)] (interpolation = "varying")
110+
color3f[] primvars:displayColor = [(0, 1, 0)]
111+
}
112+
def BasisCurves "VaryingWidth" (){
113+
uniform token[] xformOpOrder = ["xformOp:translate"]
114+
float3 xformOp:translate = (15, 0, 0)
115+
116+
uniform token type = "cubic"
117+
uniform token basis = "bezier"
118+
int[] curveVertexCounts = [7]
119+
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
120+
float[] widths = [.5, .8, .5] (interpolation = "varying")
121+
normal3f[] normals = [(1, 0, 0), (.98, 0, .44), (.707, 0, .707)] (interpolation = "varying")
122+
color3f[] primvars:displayColor = [(1, 1, 1)]
123+
}
124+
def BasisCurves "VertexWidth" (){
125+
uniform token[] xformOpOrder = ["xformOp:translate"]
126+
float3 xformOp:translate = (18, 0, 0)
127+
128+
uniform token type = "cubic"
129+
uniform token basis = "bezier"
130+
int[] curveVertexCounts = [7]
131+
point3f[] points = [(0, 0, 0), (1, 1, 0), (1, 2, 0), (0, 3, 0), (-1, 4, 0), (-1, 5, 0), (0, 6, 0)]
132+
float[] widths = [0, .5, .5, .8, .5, .5, 0] (interpolation = "vertex")
133+
normal3f[] normals = [(1, 0, 0), (.98, 0, .44), (.707, 0, .707)] (interpolation = "varying")
134+
color3f[] primvars:displayColor = [(1, 1, 0)]
135+
}
136+
}
137+
}

0 commit comments

Comments
 (0)