{"id":13574569,"url":"https://github.com/ospray/hdospray","last_synced_at":"2025-04-04T15:31:29.745Z","repository":{"id":73526599,"uuid":"171917221","full_name":"ospray/hdospray","owner":"ospray","description":"Rendering plugin for Pixar's USD Hydra","archived":false,"fork":false,"pushed_at":"2024-08-21T09:26:53.000Z","size":12393,"stargazers_count":120,"open_issues_count":13,"forks_count":14,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-11-05T09:44:55.510Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ospray.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-21T17:43:35.000Z","updated_at":"2024-10-09T06:08:27.000Z","dependencies_parsed_at":"2023-06-26T01:44:01.527Z","dependency_job_id":"e1b06c08-1652-49f6-b90a-63e38654cc59","html_url":"https://github.com/ospray/hdospray","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ospray%2Fhdospray","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ospray%2Fhdospray/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ospray%2Fhdospray/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ospray%2Fhdospray/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ospray","download_url":"https://codeload.github.com/ospray/hdospray/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247202780,"owners_count":20900840,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T15:00:52.715Z","updated_at":"2025-04-04T15:31:24.737Z","avatar_url":"https://github.com/ospray.png","language":"C++","funding_links":[],"categories":["Table of Contents","Libraries \u0026 Tools","Hydra"],"sub_categories":["Data Visualization and Rendering","Hydra"],"readme":"# OSPRay for Hydra\n\nOSPRay interactive rendering plugin for USD Hydra\n\n\u003cp align=\"center\"\u003e\n\n\u003cimg src=\"images/hdospray_alab.jpg\" style=\"padding: 0px 0px 0px 0px; box-shadow: 0px 0px 24px rgba(0,0,0,0.4); \"\u003e\n\n\u003c/p\u003e\n\nRendering of the ALab scene using OSPRay for Hydra. The ALab asset is\nCopyright 2022 Animal Logic Pty Limited. All rights reserved.\n\n## OSPRay for Hydra\n\nOSPRay for Hydra is an open source plugin for Pixar’s USD to extend the\nHydra rendering framework with [Intel® OSPRay](https://www.ospray.org).\nOSPRay for Hydra enables interactive, path traced rendering by utilizing\nOSPRay’s renderers and [Intel® Open Image\nDenoise](http://openimagedenoise.org). OSPRay for Hydra and OSPRay are\nreleased under the permissive Apache 2.0 license.\n\nAs part of the [Intel oneAPI Rendering\nToolkit](https://software.intel.com/en-us/rendering-framework), OSPRay\nis highly-optimized for Intel® CPU architectures ranging from laptops to\nlarge-scale distributed HPC systems. OSPRay for Hydra leverages the\nIntel® Rendering Framework to deliver interactive rendering for\nlarge-scale models at high levels of fidelity, as demonstrated at\nSIGGRAPH 2018 using over [100GB of production\nassets](https://itpeernetwork.intel.com/intel-open-source-libraries-hollywood).\n\n### Support and Contact\n\nOSPRay for Hydra is still in beta, with new features and existing issues\nbeing worked on regularly. USD is also under active development and is\noften fast changing. We tag the OSPRay for Hydra releases to match\nspecified USD releases, but cannot always anticipate all of the changes\nand resulting issues for users. Please report any issues you may run\ninto to our [issue tracker](https://github.com/ospray/hdospray/issues).\nWe always welcome suggestions and especially pull requests\\!\n\n# Building OSPRay for Hydra\n\nOSPRay for Hydra source is available on GitHub at [OSPRay for\nHydra](http://github.com/ospray/hdospray). The master branch is\ntypically the most stable branch and contains tagged releases.\n\nTags are of the form `hdospray-vx.x.x-usdvx.x.x`, with `vx.x.x` being\nthe release of OSPRay for Hydra and `usdv` being the version of USD it\nis built against. This is required due to the frequently changing\ninternals of hydra.\n\nCurrently OSPRay for Hydra is regularly tested on Ubuntu 22.04, and has\nbeen tested on Windows 10 and MacOS 13.6.\n\n## Prerequisites\n\nUSD has a large number of dependencies depending on your configuration.\nWe provide a superbuild for linux/mac which builds USD and other\ndependencies. At a base you will need the following system libraries,\nthough you may need others depending on what USD modules you are\nbuilding and what system you are running: - c/c++ compiler (gcc 6.3.1+)\n- cmake 3.1.1+ - (for USD python support including usdview) python\n(3.7.x+ recommended), with PySide2/PySide6, numpy, and PyOpenGL. ‘pip\ninstall PySide6 PyOpenGL’\n\nIf you are building standalone, you will need: -\n[USD 23.08, 23.02, 22.08, 21.08,\nor 20.08](https://graphics.pixar.com/usd/docs/index.html) - Other USD\nversions between these discrete releases may work, but are untested. -\nFor a full list of USD dependencies, see the USD page. -\n[OSPRay 3.1.0](http://www.ospray.org/) - We recommend using ospray’s\nsuperbuild to build dependencies such as embree, ospcommon, and openvkl.\nOpenImageDenoise can also be enabled through superbuild. - rkcommon is a\nlibrary dependency of OSPRay and hdOSPRay, and built as part of OSPRay’s\nsuperbuild.\n\n## Optional Dependencies\n\n  - Houdini SDK (tested against 18.5, 19.0, 19.5). To use, enable\n    SUPERBUILD\\_USE\\_HOUDINI in superbuild.\n  - [OpenImageDenoise](https://github.com/OpenImageDenoise/oidn.git)\n      - Open Image Denoise needs be be enabled in the OSPRay build.\n\n## Superbuild on Linux/MacOS\n\nOSPRay for Hydra contains a cmake superbuild script that builds external\ndependencies for you and is the recommended way of building OSPRay for\nHydra on Linux/Mac. Alternatively, instructions for manually building\neach component is also given. Currently, USD 23.08 is the default.\n\n    mkdir build\n    cd build\n    cmake -DCMAKE_INSTALL_PREFIX=\u003cinstall_dir\u003e ../scripts/superbuild/ (or use ccmake to specify option through gui)\n    cmake --build . -j \u003cnumthreads\u003e\n\nBy default, all install files will be installed into\n\u003cbuild dir\u003e/install. A setup script can then be called to set paths:\n\n    source \u003cinstall_dir\u003e/setup_hdospray.sh\n    usdview \u003cusdfile\u003e --renderer OSPRay\n\n## Manual Compiling USD on Linux/MacOS\n\nTo build USD, see the [USD GitHub\nsite](https://github.com/PixarAnimationStudios/USD). If you wish to use\nusdview, you must also enable imaging and python.  \nThe options and compilers used can vary from our example, but make sure\nthat TBB use is consistent across your build of USD, OSPRay for Hydra,\nand OSPRay. The command we use for building USD manually is:\n\n    python \u003cUSD_SOURCE\u003e/build_scripts/build_usd.py --python --usd-imaging --openimageio \u003cUSD_BUILD_DIR\u003e\n\nTo set TBB explicitly, go to `\u003cUSD_BUILD_DIR\u003e`/build/USD and set TBB\nlibraries and include directories using cmake.\n\n## Compiling OSPRay on Linux/MacOS\n\nYou can use the distributed binaries of OSPRay or build it yourself. We\nrecommend using the OSPRay superbuild system according the instructions\nlisted on [github](https://github.com/ospray/OSPRay). Make sure that TBB\nis the same used by USD. You can force using system TBB using the\nsuperbuild by going to `\u003cOSPRAY_BUILD_DIR\u003e`, and setting the cmake\nvariable `DOWNLOAD_TBB` to OFF. GPU Support needs to be manually\nenabled, see OSPRay docs.\n\n## Compiling OSPRay for Hydra on Linux/MacOS\n\nOSPRay for Hydra plugin uses a CMake build system which links in USD and\nbuilds externally from the USD source directory, but configures CMake as\nif it were inside the USD repository in order to build the plugin using\nUSD internals. It must therefore be built against a version of USD that\nmatches OSPRay for Hydra, which is specified in the versioning tag of\nOSPRay for Hydra.\n\n  - Download/clone the git repo for OSPRay for Hydra\n    \n        $ git clone https://github.com/ospray/hdospray.git\n\n  - Create a build directory and call CMake\n    \n        $ cd hdospray\n        $ mkdir build\n        $ cd build\n        $ ccmake ..\n\n  - Set `CMAKE_INSTALL_PREFIX` to the installation directory of USD.\n\n  - Set `pxr_DIR` to the install directory of USD which contains\n    `pxrConfig.cmake`\n\n  - Set `ospray_DIR` to the directory containing your\n    `osprayConfig.cmake`\n    \n      - This can be found in the root directory of the distributed\n        binaries or if you are building and installing from source it\n        can be found in `\u003cinstall\u003e/lib/cmake/ospray-\\*/`\n\n  - Set `openvkl_DIR` to install directory of OpenVKL. These will be the\n    same as `ospray_DIR` if you downloaded the OSPRay binaries, or in\n    OSPRay’s superbuild directory under\n    install/openvkl/lib/cmake/openvkl\\*.\n\n  - Set `rkcommon_DIR` to install directory of rkCommon. These will be\n    the same as `ospray_DIR` if you downloaded the OSPRay binaries, or\n    in OSPRay’s superbuild directory under\n    install/rkcommon/lib/cmake/rkcommon\\*.\n\n  - Set `embree_DIR` to install directory of Embree. These will be the\n    same as `ospray_DIR` if you downloaded the OSPRay binaries, or in\n    OSPRay’s superbuild directory under\n    install/embree/lib/cmake/embree\\*.\n\n  - Compile and install OSPRay for Hydra\n    \n        $ make -j install\n\nThe plugin should now be in `\u003cusd install\ndirectory\u003e/plugin/usd/hdOSPRay`\n\n## Compiling OSPRay for Hydra on Windows\n\nCompliation on windows is similar to Linux/Mac.\n\n# Documentation\n\n## Running\n\nOnce built, the plugin should be located in your install directory under\n`plugin/usd/HdOSPRay`. A setup script is provided for setting env vars.\nIf you built usd with usdimaging, you can run `usdview \u003cscenefile\u003e` and\nselect `view-\u003eHydra` and then `Renderer-\u003eOSPRay`.\n\nHoudini setup is specific to each platform, but has been tested with\nHoudini 19.5.640. For Mac/Linux, there is a houdini\\_setup script in\nyour Houdini installation directory. This should be sourced, and then\nsource the hdospray\\_setup.sh script and you should be able to select\nOSPRay as a hydra delegate in the drop down menu in stage view. For\nwindows, it is recommended to copy the bin and plugin directories from\nyour hdOSPRay build to the respective directories in the Houdini\ninstall.\n\nOSPRay can be set to the default renderer by either\n\n  - Setting the `HD_DEFAULT_RENDERER` environment variable\n    \n        $ export HD_DEFAULT_RENDERER=OSPRay\n\n  - Specifying `--renderer OSPRay` as a command line argument to usdview\n\n### Environment variables\n\nMost of these options are also exposed through the usdview GUI under\nHydra Settings.\n\n  - `HDOSPRAY_DEVICE`\n    \n    cpu (default) or gpu device.\n\n  - `HDOSPRAY_USE_DENOISER`\n    \n    If built in, enable the denoiser\n\n  - `HDOSPRAY_SAMPLES_PER_FRAME`\n    \n    Number of samples per pixel.\n\n  - `HDOSPRAY_SAMPLES_TO_CONVERGENCE`\n    \n    Will progressively render frames until this many samples per pixel,\n    then stop rendering.\n\n  - `HDOSPRAY_INTERACTIVE_TARGET_FPS`\n    \n    Set interactive scaling to match target fps when interacting. 0\n    Disables interactive scaling.\n\n  - `HDOSPRAY_LIGTH_SAMPLES`\n\nNumber of light samples at every path intersection. A value of -1 leads\nto sampling all light sources in the scene. *Does not affect scivis\nrenderer.*\n\n  - `HDOSPRAY_AMBIENT_OCCLUSION_SAMPLES`\n    \n    Number of ambient occlusion samples to compute per pixel. *Does not\n    affect path tracer.*\n\n  - `HDOSPRAY_CAMERA_LIGHT_INTENSITY`\n    \n    Globally modify the intensity of all lights.\n\n  - `HDOSPRAY_USE_PATH_TRACING`\n    \n    Use Monte Carlo path tracer instead of faster Whitted-style\n    renderer.\n\n  - `HDOSPRAY_MAX_PATH_DEPTH`\n    \n    Maximum ray depth. Will affect the number of diffuse bounces as well\n    as transparency.\n\n  - `HDOSPRAY_USE_SIMPLE_MATERIAL`\n    \n    Use a simple diffuse + phone material instead of principled\n    material.\n\n  - `HDOSPRAY_INIT_ARGS`\n    \n    Specify arguments sent on to OSPRay for initialization. e.g. enable\n    MPI.\n\n  - `HDOSPRAY_PIXELFILTER_TYPE`\n    \n    The type of pixel filter used by OSPRay: 0 (point), 1 (box), 2\n    (gauss), 3 (mitchell), and 4 (blackmanHarris).\n\n  - `HDOSPRAY_FORCE_QUADRANGULATE`\n    \n    Force Quadrangulate meshes for debug.\n\n## Features\n\n  - Denoising using [Open Image Denoise](http://openimagedenoise.org)\n  - Distributed multi-node rendering over MPI\n  - UVTextures\n  - Pixel Filters\n  - usdLux lights: disk, distant, dome, quad, sphere.\n  - Triangle meshes\n  - Quad meshes\n  - Subdivision surfaces\n  - Ray traced shadows and ambient occlusion.\n  - Path tracing\n  - Physically-based materials\n  - Principled shader (similar to Disney BSDF shader)\n\n# News, Updates, and Announcements\n  - Jul 16, 2024: Version v1.1.0\n\n        - USD 23.08 support\n        - OSPRay 3.1\n\n  - Oct 25, 2023: Version v1.0.0\n    \n        - USD 23.02 support\n        - OSPRay 3.0\n        - GPU support\n        - Superbuild now part of core repo\n        - Macosx and Windows build support\n        - Fixes for Windows DLL loading\n        - Houdini binary release builds\n        - Resource loading now uses Hio\n        - Openimageio dependency removal\n        - Support for loading usdz files directly\n        - Custom OSPRay materials\n        - Changes to interactive rendering mode for smoother camera movement\n        - Depth buffer transform to non-linear for DCC compositing\n        - Various bug fixes\n\n  - Jan 5, 2023: Version v0.11.0\n    \n        - Texture Transforms\n        - UDIM textures\n        - Texture channel masks\n        - Tonemapper settings\n        - Interactive rendering reworked\n        - Bug fixes\n\n  - Sep 20, 2022: Version v0.10.1\n    \n        - USD 22.08 support. 21.08 is still default in superbuild for houdini. \n        - Golden image tests added\n        - Github actions workflow added for CI\n        - Bug fixes\n\n  - June 10, 2022: Version v0.10\n    \n        - USD 21.08 support, which is now the default in superbuild.  20.08 still supported if enabled.\n        - Instance, Element, and Primitive ID buffers added\n        - Testing added with image comparisons\n        - Added facevarying texture and color support.\n\n  - Feb 15, 2022: Version v0.9\n    \n        - Adding depth AOV\n        - Adding normals AOV\n        - Additional material parameters\n        - Fixing generic texcoord naming\n        - Update to OSPRay 2.9\n        - Adding cylinder light\n        - Adding camera depth of field\n        - Minimal support for geomsubset materials\n        - Ptex support currently deprecated in OSPRay.  Will be re-enabled upon OSPRay module_ptex release.\n\n  - August 24, 2021: Version v0.8\n    \n        - Update to USD 20.08.\n        - Houdini support.\n        - Color buffer AOV support.\n        - Superbuild script added.\n        - Added camera light visibility flags.\n        - Add thin materials.\n\n  - May 28, 2021: Version v0.7\n    \n        - Update to OSPRay 2.6.0\n        - Ptex support re-enabled.\n        - Numerous light and material updates. Added disk lights.\n        - Toggle for light enabled vs visible.\n        - Animation update fixes.\n        - Support for curves.\n\n  - October 12, 2020: Version v0.6\n    \n        - Update to OSPRay 2.4.0\n        - Added support for opacity textures.\n        - Added adaptive view port scaling. The viewport is\n          now scaled to reach a given interactive framerate (e.g., 10fps).\n        - Fixed some bigs with animated shapes (e.g., ARKit data sets).\n        - Added support to toggle the visibility of light sources and shapes.\n\n  - July 31, 2020: Version v0.5\n    \n      - Update to OSPRay 2.2.0.\n      - Added UsdLux light support.\n      - Asynchronous rendering.\n      - Dynamic resolution for greater interaction.\n      - Pixel Filters.\n      - Subdivision surfaces interpolation mode fixes.\n\n  - June 15, 2020: Version v0.4\n    \n      - Update to OSPRay 2.1.0.\n      - Update to USD 20.05.\n\n  - September 15, 2019: Version v0.3\n    \n      - Subdivision surfaces support.\n      - GUI options for usdview.\n      - Various bug fixes.\n\n  - April 30, 2019: Version v0.2.2\n    \n      - Various bug fixes.\n      - OSPRay version updated to 1.8.5.\n      - CMake targets.\n      - Added animation support.\n\n  - Mar 7, 2019: Version v0.2.1\n    \n      - Bug fixes.\n      - Ptex updates.\n      - Documentation.\n\n  - Feb 28, 2019: Version v0.2.0\n    \n      - Initial Beta release version 0.2.0 is now available on the\n        [HdOSPRay GitHub\n        page](https://github.com/ospray/hdospray/releases/v0.2.0). This\n        replaces the previous repository and versioning which was on my\n        personal github account.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fospray%2Fhdospray","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fospray%2Fhdospray","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fospray%2Fhdospray/lists"}