diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 1c168285f..df00b7a0a 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -23,7 +23,6 @@ jobs: secrets: inherit with: image: ospray/docker-images:arch - level-zero-version: public/1.15.1 # for ispcrt cmd: | export CC=clang export CXX=clang++ @@ -34,7 +33,6 @@ jobs: secrets: inherit with: image: ospray/docker-images:arch - level-zero-version: public/1.15.1 # for ispcrt cmd: | export CC=clang export CXX=clang++ @@ -57,7 +55,6 @@ jobs: secrets: inherit with: runs-on: '["build", "NAS", "mpi"]' - level-zero-version: public/1.15.1 # for ispcrt cmd: | scripts\build\win.ps1 -G "Visual Studio 17 2022" -buildType Debug -DBUILD_OSPRAY_CI_EXTRAS=ON -DBUILD_ISPCRT_FROM_SOURCE=ON -DBUILD_EMBREE_FROM_SOURCE=ON -DBUILD_ISA_AVX512=OFF -DBUILD_OIDN=OFF -DBUILD_OSPRAY_MODULE_MPI=ON -DBUILD_OSPRAY_MODULE_MULTIDEVICE=ON artifact-out: build-windows-debug-all diff --git a/CHANGELOG.md b/CHANGELOG.md index 86dcb0f1e..9d38887ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,19 +3,19 @@ Version History ### Changes in v3.1.0: -- Improve noise in reflections of ThisGlass - Principled and Luminous materials support emissive textures +- Add native support for disc and oriented disc geometry +- Add support for mirror repeat and clamp to edge texture wrap modes +- GPU device now also supports motion blur +- Improve noise in reflections of ThinGlass - Improve adaptive accumulation: working with GPU, fix correlations - Fix indirectly seen albedo and normal buffer -- Fix empty image on Windows when focusDistance=0 -- Fix missing SDK headers for `ISPCDevice*` - Fix artifacts when using specular texture for Principled -- Add native support for disc and oriented disc geometry - Fixes for PixelFilter - Parameter was ignored (always using the default Gaussian) - Avoid a shift/misalignment within the pixel for first sample -- GPU device now also supports motion blur -- Add support for mirror repeat and clamp to edge texture wrap modes +- Fix empty image on Windows when `focusDistance=0` +- Fix missing SDK headers for `ISPCDevice*` - The new minimum versions of dependencies: - Embree v4.3.1 - Open VKL v2.0.1 @@ -286,7 +286,7 @@ Version History Toolkit - OSPRay now requires minimum Open VKL v0.13.0 to bring the following improvements: - - Support half precision float (fp16) voxel data in strutured + - Support half precision float (fp16) voxel data in structured volumes (regular and spherical) and VDB volume - Supporting tricubic filtering via `VKL_FILTER_TRICUBIC` filter for VDB volume diff --git a/README.md b/README.md index 6a2dbd5e2..0a4b3c49d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ OSPRay ====== -This is release v3.1.0 (devel) of Intel® OSPRay. For changes and new -features see the [changelog](CHANGELOG.md). Visit http://www.ospray.org -for more information. +This is release v3.1.0 of Intel® OSPRay. For changes and new features +see the [changelog](CHANGELOG.md). Visit http://www.ospray.org for more +information. OSPRay Overview =============== @@ -81,7 +81,7 @@ before you can build OSPRay you need the following prerequisites: Linux development tools. - Additionally you require a copy of the [Intel® Implicit SPMD Program - Compiler (ISPC)](http://ispc.github.io), version 1.21.1 or later. + Compiler (ISPC)](http://ispc.github.io), version 1.23.0 or later. Please obtain a release of ISPC from the [ISPC downloads page](https://ispc.github.io/downloads.html). If ISPC is not found by CMake its location can be hinted with the variable `ispcrt_DIR`. @@ -98,19 +98,19 @@ before you can build OSPRay you need the following prerequisites: variable `RKCOMMON_TASKING_SYSTEM` to `OpenMP` or `Internal`. - OSPRay also heavily uses Intel [Embree](https://www.embree.org/), - installing version 4.3.0 or newer is required. If Embree is not found + installing version 4.3.1 or newer is required. If Embree is not found by CMake its location can be hinted with the variable `embree_DIR`. - OSPRay supports volume rendering (enabled by default via `OSPRAY_ENABLE_VOLUMES`), which heavily uses Intel [Open - VKL](https://www.openvkl.org/), version 2.0.0 or newer is required. If + VKL](https://www.openvkl.org/), version 2.0.1 or newer is required. If Open VKL is not found by CMake its location can be hinted with the variable `openvkl_DIR`, or disable `OSPRAY_ENABLE_VOLUMES`. - OSPRay also provides an optional module implementing the `denoiser` image operation, which is enabled by `OSPRAY_MODULE_DENOISER`. This module requires Intel [Open Image - Denoise](https://openimagedenoise.github.io/) in version 2.1.0 or + Denoise](https://openimagedenoise.github.io/) in version 2.2.0 or newer. You may need to hint the location of the library with the CMake variable `OpenImageDenoise_DIR`. @@ -159,7 +159,7 @@ version) and [Embree](https://github.com/embree/embree/releases/). To build OSPRay’s GPU module you need - a SYCL compiler, either the open source [oneAPI DPC++ Compiler - 2023-09-22](https://github.com/intel/llvm/releases/tag/nightly-2023-09-22) + 2023-10-26](https://github.com/intel/llvm/releases/tag/nightly-2023-10-26) or the latest [Intel oneAPI DPC++/C++ Compiler](https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html#dpcpp-cpp) - a recent [CMake](http://www.cmake.org), version 3.25.3 or higher @@ -340,18 +340,6 @@ CMake is easy: - You should now have `libospray.[so,dylib]` as well as a set of [example applications](#tutorials). -### Entitlements on Mac OS X - -Mac OS X requires notarization of applications as a security mechanism, -and [entitlements must be -declared](https://developer.apple.com/documentation/bundleresources/entitlements) -during the notarization process. OSPRay’s `denoiser` uses OIDN, which -uses just-in-time compilation through -[oneDNN](https://github.com/oneapi-src/oneDNN) and thus requires the -following entitlement: - -- [`com.apple.security.cs.allow-jit`](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_cs_allow-jit) - ### Compiling OSPRay on Windows On Windows using the CMake GUI (`cmake-gui.exe`) is the most convenient @@ -433,9 +421,9 @@ Documentation ============= The following [API -documentation](https://www.ospray.org/OSPRay_readme_devel.pdf "OSPRay Documentation") +documentation](https://www.ospray.org/OSPRay_readme.pdf "OSPRay Documentation") of OSPRay can also be found as a [pdf -document](https://www.ospray.org/OSPRay_readme_devel.pdf "OSPRay Documentation"). +document](https://www.ospray.org/OSPRay_readme.pdf "OSPRay Documentation"). For a deeper explanation of the concepts, design, features and performance of OSPRay also have a look at the IEEE Vis 2016 paper @@ -1941,7 +1929,8 @@ like an environment map). The [path tracer](#path-tracer) will consider illumination by [geometries](#geometries) which have a light emitting material assigned -(for example the [Luminous](#luminous) material). +(for example the [Luminous](#luminous) or [Principled](#principled) +material). Materials --------- @@ -2101,6 +2090,7 @@ table below. | float | sheenTint | 0 | how much sheen is tinted from sheenColor toward baseColor | | float | sheenRoughness | 0.2 | sheen roughness in \[0–1\], 0 is perfectly smooth | | float | opacity | 1 | cut-out opacity/transparency, 1 is fully opaque | +| vec3f | emissiveColor | black | color (and intensity) of the emitted light | Parameters of the Principled material. @@ -2390,6 +2380,10 @@ because it is always `OSP_INTENSITY_QUANTITY_RADIANCE`). Parameters accepted by the Luminous material. +The emission can be textured by passing a `map_color` +[texture](#texture) handle, [texture +transformations](#texture-transformations) are supported as well. +
Rendering of a yellow Luminous material. @@ -3135,7 +3129,7 @@ additional project dependency at compile time. The module implements a “`denoiser`” frame operation, which denoises the entire frame before the frame is completed. OIDN will automatically select the fastest device, using a GPU when available. The device selection be overridden by the -environment valiable `OIDN_DEFAULT_DEVICE`, possible values are `cpu`, +environment variable `OIDN_DEFAULT_DEVICE`, possible values are `cpu`, `sycl`, `cuda`, `hip`, or a physical device ID Rendering diff --git a/doc/api.md b/doc/api.md index 123628a67..8e1f90708 100644 --- a/doc/api.md +++ b/doc/api.md @@ -3076,7 +3076,7 @@ additional project dependency at compile time. The module implements a "`denoiser`" frame operation, which denoises the entire frame before the frame is completed. OIDN will automatically select the fastest device, using a GPU when available. The device selection be overridden by the -environment valiable `OIDN_DEFAULT_DEVICE`, possible values are `cpu`, +environment variable `OIDN_DEFAULT_DEVICE`, possible values are `cpu`, `sycl`, `cuda`, `hip`, or a physical device ID diff --git a/scripts/superbuild/CMakeLists.txt b/scripts/superbuild/CMakeLists.txt index 057de89e6..ca5e08151 100644 --- a/scripts/superbuild/CMakeLists.txt +++ b/scripts/superbuild/CMakeLists.txt @@ -130,7 +130,7 @@ endif() option(BUILD_EMBREE_FROM_SOURCE "Build Embree or use pre-built version?" OFF) set(EMBREE_VERSION "4.3.1" CACHE STRING "Which version of Embree to build?") -if (EMBREE_VERSION STREQUAL "4.3.0") +if (EMBREE_VERSION STREQUAL "4.3.1") if (BUILD_EMBREE_FROM_SOURCE) set(EMBREE_HASH "bdab87b285efa1a9f1f57fe74b2743c659c487fee7e32221db43a6b8f5e36e5f") else()