Skip to content

Commit

Permalink
Merge pull request #483 from GPUOpen-LibrariesAndSDKs/develop
Browse files Browse the repository at this point in the history
Merge version 2.2
  • Loading branch information
bsavery authored Jul 6, 2021
2 parents 439a201 + 40ebf7b commit 101208a
Show file tree
Hide file tree
Showing 60 changed files with 1,982 additions and 668 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@
[submodule "deps/ghc_filesystem"]
path = deps/ghc_filesystem
url = https://github.com/gulrak/filesystem
[submodule "deps/murmurhash"]
path = deps/murmurhash
url = https://github.com/aappleby/smhasher
39 changes: 39 additions & 0 deletions CHANGELOG.MD
Original file line number Diff line number Diff line change
@@ -1,5 +1,44 @@
# Change Log

## Version 2.1
### New Features:
- Subsurface Scattering and Volume shaders now work in RPR 2.0. This allows the rendering of organic materials, such as skin, which absorb light into their interior.
- Deformation motion blur gives accurate motion blur to objects which are being deformed, for example, a flag flapping in the wind or a ball squashing. Besides, motion blur export has been optimized, and a setting for disabling deformation motion blur has been added.
- The new RPR Toon Shader has been added. This enables cartoon style shading for a non-photorealistic look. Toon shaders can be used in a “simple” mode for just setting a color or a gradient of different colors for shadow vs lit areas of the object.
- Support for USD 21.05 has been added.
- Cryptomatte AOVs can now be exported from Houdini.


### Issues Fixed:
- Overbright edges of objects with Uber shaders in metalness mode ― fixed.
- Shaders with high roughness could have artifacts with reflection or refraction ― fixed.
- Users can now override the environment light background color in Houdini.
- The render’s “percent done” statistics could be incorrect if the minimum number of samples had not yet been reached ― fixed.
- An issue with the visibility of distant lights not being respected has been fixed.
- A crash was occurring on macOS in some cases when using the RPR Material Library for the first time ― fixed.
- RPR Materials nodes were not present in Houdini on Linux ― fixed.
- The speed of rendering via Houdini’s Husk utility with multiple render products has been increased.
- .rpr export fixes:
- .rpr export now exports USD depth AOV correctly;
- An issue with creating temporary directories when exporting .rpr files has been fixed;
- The $OS variable can now be used in the output path to change the path based on the operating system.
- Developer changes to hdRPR:
- The hdRPR render delegate can now override the kernel cache path with an environment variable;
- The batch or interactive render mode can now be switched on dynamically.
- MaterialX fixes:
- Logging with the MaterialX loader has been improved;
- Support for the Tangent node has been added;
- Support for the View Direction node has been added;
- Support for the RPR Emissive node has been added;
- The displacement scale has been fixed;
- An issue with the use of the mix node to mix surface shaders has been fixed.

### Known Issues:
- In RPR 2.0, heterogenous volumes, smoke and fire simulations or VDB files are not yet supported.
- Subsurface scattering and volume shader are currently disabled on macOS due to long compile times.
- Some AOVs may have artifacts on AMD cards with drivers earlier than 21.6.1


## Version 2.0.27
### New Features:
- Support for AMD Radeon™ RX 6700 XT graphics cards has been added.
Expand Down
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,3 +110,12 @@ Launch either usdview or Houdini's Solaris viewport and select RPR as the render
* `HDRPR_TRACING_DIR`

To change the default directory, add the environment variable `HDRPR_TRACING_DIR` pointing to the location in which you wish the trace files to be recorded. For example, set `HDRPR_TRACING_DIR=C:\folder\` to activate the tracing in `C:\folder\`.

Houdini
-----------------------------

##### RPR Material Library

1. Download [.mtlx version of RPR Material Library](https://drive.google.com/file/d/1i5jdYGS7gmrxw_Y0y7uotx4gxXVr8cMB/view?usp=sharing).

2. Follow instructions from INSTALL.md shipped with the material library.
5 changes: 4 additions & 1 deletion cmake/defaults/Options.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,7 @@ set(PXR_LIB_PREFIX ${CMAKE_SHARED_LIBRARY_PREFIX}
)

option(BUILD_SHARED_LIBS "Build shared libraries." ON)
option(PXR_BUILD_MONOLITHIC "Build a monolithic library." OFF)
option(PXR_BUILD_MONOLITHIC "Build a monolithic library." OFF)

option(MATERIALX_BUILD_PYTHON "Build the MaterialX Python package from C++ bindings. Requires Python 2.7 or greater." OFF)
option(MATERIALX_INSTALL_PYTHON "Install the MaterialX Python package as a third-party library when the install target is built." OFF)
34 changes: 23 additions & 11 deletions cmake/defaults/Packages.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -99,20 +99,32 @@ else()
find_package(OpenVDB QUIET)
endif()

if(OpenVDB_FOUND)
if(HoudiniUSD_FOUND)
find_package(OpenEXR QUIET COMPONENTS Half_sidefx)
endif()

macro(find_exr)
if(NOT OpenEXR_FOUND)
find_package(OpenEXR QUIET COMPONENTS Half)
endif()
set(SIDEFX_COMPONENTS ${ARGV})
list(TRANSFORM SIDEFX_COMPONENTS APPEND "_sidefx")

if(NOT OpenEXR_FOUND)
message(FATAL_ERROR "Failed to find Half library")
if(HoudiniUSD_FOUND)
find_package(OpenEXR QUIET COMPONENTS ${SIDEFX_COMPONENTS})
endif()

if(NOT OpenEXR_FOUND)
find_package(OpenEXR QUIET COMPONENTS ${ARGV})
endif()
endif()
else()
message(STATUS "Skipping OpenVDB support")
endmacro()

find_exr(Half IlmImf Iex)

set(RPR_EXR_EXPORT_ENABLED TRUE)
if(NOT OpenEXR_FOUND)
set(RPR_EXR_EXPORT_ENABLED FALSE)
endif()

find_exr(Half)

if(NOT OpenEXR_FOUND)
message(FATAL_ERROR "Failed to find Half library")
endif()

# ----------------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions cmake/defaults/Version.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@
#
# Versioning information
set(HD_RPR_MAJOR_VERSION "2")
set(HD_RPR_MINOR_VERSION "0")
set(HD_RPR_PATCH_VERSION "27")
set(HD_RPR_MINOR_VERSION "2")
set(HD_RPR_PATCH_VERSION "0")
1 change: 1 addition & 0 deletions cmake/modules/FindRif.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ find_library(RIF_LIBRARY

if(WIN32)
set(RIF_BINARIES
${RIF_LOCATION_LIB}/dxcompiler.dll
${RIF_LOCATION_LIB}/MIOpen.dll
${RIF_LOCATION_LIB}/RadeonImageFilters.dll
${RIF_LOCATION_LIB}/RadeonML_MIOpen.dll
Expand Down
17 changes: 15 additions & 2 deletions deps/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,16 @@ if(NOT MaterialX_FOUND)
# If MaterialX was not explicitly provided, use the one from a submodule
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
set(MATERIALX_PYTHON_LTO OFF)
set(MATERIALX_INSTALL_PYTHON OFF)
set(MATERIALX_BUILD_RENDER OFF)
set(MATERIALX_BUILD_GEN_GLSL OFF)
set(MATERIALX_BUILD_GEN_OSL OFF)
set(MATERIALX_BUILD_TESTS OFF)
add_subdirectory(MaterialX EXCLUDE_FROM_ALL) # EXCLUDE_FROM_ALL allows us to skip installation of mtlx static libraries

if(MATERIALX_BUILD_PYTHON AND MATERIALX_INSTALL_PYTHON)
add_subdirectory(MaterialX)
else()
add_subdirectory(MaterialX EXCLUDE_FROM_ALL) # EXCLUDE_FROM_ALL allows us to skip installation of mtlx static libraries
endif()

install(
FILES
Expand Down Expand Up @@ -70,4 +74,13 @@ if(HoudiniUSD_FOUND)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ghc_filesystem)
endif()

# Murmurhash
# ----------------------------------------------

set(MURMURHASH_DIR ${CMAKE_CURRENT_SOURCE_DIR}/murmurhash/src)
add_library(murmurhash STATIC
${MURMURHASH_DIR}/MurmurHash3.h
${MURMURHASH_DIR}/MurmurHash3.cpp)
target_include_directories(murmurhash PUBLIC ${MURMURHASH_DIR})

# ----------------------------------------------
2 changes: 1 addition & 1 deletion deps/RPR
Submodule RPR updated 92 files
+ RadeonProRender/binCentOS7/Hybrid.so
+ RadeonProRender/binCentOS7/RprTextureCompiler64
+ RadeonProRender/binCentOS7/RprsRender64
+ RadeonProRender/binCentOS7/libNorthstar64.so
+ RadeonProRender/binCentOS7/libRadeonProRender64.so
+ RadeonProRender/binCentOS7/libRprLoadStore64.so
+ RadeonProRender/binCentOS7/libTahoe64.so
+ RadeonProRender/binMacOS/RprTextureCompiler64
+ RadeonProRender/binMacOS/RprsRender64
+ RadeonProRender/binMacOS/libNorthstar64.dylib
+ RadeonProRender/binMacOS/libRadeonProRender64.dylib
+ RadeonProRender/binMacOS/libRprLoadStore64.dylib
+ RadeonProRender/binMacOS/libTahoe64.dylib
+ RadeonProRender/binUbuntu18/Hybrid.so
+ RadeonProRender/binUbuntu18/RprTextureCompiler64
+ RadeonProRender/binUbuntu18/RprsRender64
+ RadeonProRender/binUbuntu18/libNorthstar64.so
+ RadeonProRender/binUbuntu18/libRadeonProRender64.so
+ RadeonProRender/binUbuntu18/libRprLoadStore64.so
+ RadeonProRender/binUbuntu18/libTahoe64.so
+ RadeonProRender/binWin64/Hybrid.dll
+ RadeonProRender/binWin64/Northstar64.dll
+ RadeonProRender/binWin64/RadeonProRender64.dll
+ RadeonProRender/binWin64/RprLoadStore64.dll
+ RadeonProRender/binWin64/RprTextureCompiler64.exe
+ RadeonProRender/binWin64/RprsRender64.exe
+ RadeonProRender/binWin64/Tahoe64.dll
+3 −3 RadeonProRender/inc/Math/float2.h
+3 −3 RadeonProRender/inc/Math/float3.h
+3 −3 RadeonProRender/inc/Math/int2.h
+3 −3 RadeonProRender/inc/Math/mathutils.h
+4 −8 RadeonProRender/inc/Math/matrix.h
+3 −3 RadeonProRender/inc/Math/quaternion.h
+11 −0 RadeonProRender/inc/ProRenderGLTF.h
+65 −10 RadeonProRender/inc/RadeonProRender.cs
+53 −10 RadeonProRender/inc/RadeonProRender.h
+52 −4 RadeonProRender/inc/RadeonProRender_Baikal.h
+1 −6 RadeonProRender/inc/RadeonProRender_CL.h
+1 −6 RadeonProRender/inc/RadeonProRender_GL.h
+1 −6 RadeonProRender/inc/RadeonProRender_Metal.h
+1 −9 RadeonProRender/inc/RadeonProRender_VK.h
+57 −10 RadeonProRender/inc/RadeonProRender_v2.h
+23 −8 RadeonProRender/inc/RprLoadStore.cs
+20 −6 RadeonProRender/inc/RprLoadStore.h
+11 −0 RadeonProRender/inc/rprDeprecatedApi.h
+ RadeonProRender/libWin64/RadeonProRender64.exp
+ RadeonProRender/libWin64/RadeonProRender64.lib
+ RadeonProRender/libWin64/RprLoadStore64.exp
+ RadeonProRender/libWin64/RprLoadStore64.lib
+26 −1 RadeonProRender/rprTools/RPRStringIDMapper.cpp
+11 −0 RadeonProRender/rprTools/RPRStringIDMapper.h
+11 −0 RadeonProRender/rprTools/RadeonProRender.hpp
+11 −0 RadeonProRender/rprTools/RadeonProRenderCpp.cpp
+10 −0 RadeonProRender/rprTools/RprTools.cpp
+10 −1 RadeonProRender/rprTools/RprTools.h
+78 −63 RadeonProRender/rprTools/rprMaterialXML.cpp
+10 −1 RadeonProRender/rprTools/rprMaterialXML.h
+11 −0 RadeonProRender/rprTools/rprMtlxLoader.cpp
+11 −0 RadeonProRender/rprTools/rprMtlxLoader.h
+3 −8 license.txt
+4 −1 readme.md
+89 −0 release_notes.txt
+1 −6 tutorials/00_context_creation/main.cpp
+1 −6 tutorials/01_camera_setup/main.cpp
+1 −6 tutorials/02_mesh/main.cpp
+1 −6 tutorials/03_instance/main.cpp
+1 −6 tutorials/04_deformation_motion_blur/main.cpp
+1 −6 tutorials/10_light_point/main.cpp
+1 −6 tutorials/11_light_mesh/main.cpp
+1 −6 tutorials/12_light_environment/main.cpp
+1 −6 tutorials/20_material_textured/main.cpp
+1 −6 tutorials/21_material_layered/main.cpp
+1 −6 tutorials/22_material_uber/main.cpp
+1 −1 tutorials/23_material_uber_sss/main.cpp
+1 −6 tutorials/30_tiled_render/main.cpp
+1 −6 tutorials/31_framebuffer_access/main.cpp
+11 −0 tutorials/32_gl_interop/ShaderManager.cpp
+1 −6 tutorials/32_gl_interop/ShaderManager.h
+154 −31 tutorials/32_gl_interop/main.cpp
+1 −0 tutorials/32_gl_interop/premake4.lua
+1 −6 tutorials/33_aov/main.cpp
+1 −6 tutorials/40_postprocess_bloom/main.cpp
+1 −6 tutorials/41_postprocess_gamma/main.cpp
+1 −6 tutorials/50_curve/main.cpp
+1 −6 tutorials/51_volume/main.cpp
+1 −6 tutorials/60_mesh_export/main.cpp
+1 −6 tutorials/61_mesh_import/main.cpp
+1 −6 tutorials/62_matball_demo/main.cpp
+1 −6 tutorials/63_hybrid/main.cpp
+1 −6 tutorials/64_mesh_obj_demo/main.cpp
+16 −0 tutorials/common/common.h
+1 −1 tutorials/parameters_enumeration/parameters_enumeration.cpp
1 change: 1 addition & 0 deletions deps/murmurhash
Submodule murmurhash added at 61a053
Loading

0 comments on commit 101208a

Please sign in to comment.