-
Notifications
You must be signed in to change notification settings - Fork 29
Description
Project description
OpenPGL is an open-source library that provides production-ready implementations of state-of-the-art path guiding algorithms, which can be easily integrated into a renderer.
Path guiding is an importance sampling strategy that improves rendering efficiency by incorporating additional information about a scene’s light distribution into the importance sampling process (e.g., for directions, distances, or scattering decisions). The resulting sampling strategies improve a renderer's sampling quality, enabling efficient rendering of challenging light transport setups, including complex indirect lighting, volumetric multiscattering, and even caustics.
While various academic research works on path guiding exist, reimplementing and integrating them into a production system can often be tedious. Especially making the presented algorithms robust enough for daily production use and combining them with specialized production rendering features, such as path simplification (a.k.a. roughening), light linking, or virtual light sources, can be challenging, especially when aiming towards an always-on or zero-additional-parameter solution.
This is where OpenPGL comes into place. It offers renderer developers a collection of state-of-the-art path-guiding algorithms that have been further extended to be robust and efficient enough for production environments. The library provides a range of different representations (directional quad-trees, parallax-aware von Mises-Fisher mixtures) and fitting algorithms to learn a scene’s light distribution during rendering. In its current state, OpenPGL is highly optimized for x86 and ARM CPUs using SIMD vectorization, and GPU ports supporting CUDA, SYCL, HIP, and Metal are work in progress.
Overall, OpenPGL’s goal is to become, for path-guiding, what Embree is for ray tracing: a unified, open-source library to address the production challenges of path-guiding across the industry.
The project has already been adopted by multiple professional renderers, including Blender’s Cycles, Chaos’s VRay, SideFX’s Karma, Illumination’s in-house renderer, and Disney’s Hyperion. Implementations for scientific rendering systems, such as PBRT and Mitsuba, also exist, allowing researchers to integrate, test, and compare new algorithms directly.
The project was initiated in 2022 by Intel as part of the Intel oneAPI Rendering Toolkit, but was recently discontinued due to restructuring and shifting priorities. Given the project's widespread adoption and usefulness to the VFX industry, we want to bring OpenPGL under the ASWF umbrella.
Sponsor from TAC
Kimball Thurston
Proposed Project Stage
Sandbox
Please explain how this project is aligned with the mission of the Academy Software Foundation?
From the start, OpenPGL was planned as an open-source project, with the focus of helping the whole professional (VFX-)rendering community (i.e., similar to Intel’s Embree for ray tracing). Through its open-source nature, OpenPGL gives the rendering community/industry a common place/platform to work together and share path guiding related solutions and challenges. Instead of working on multiple in-house re-implementations and solutions, OpenPGL offers a common working ground. Implementations of new path guiding solutions can thereby be tested and validated by multiple people (renderers, studios), and solutions for challenges identified by one renderer/studio can be shared directly with others, giving the industry the chance to focus on extending the limits of rendering and creating nice visuals.
Through the close connection to the rendering research community, OpenPGL gives adopters the possibility to quickly evaluate newly presented path guiding research results, or even collaborate directly with researchers to provide them easy access to production content/environments.
What is the project’s license for code contributions and methodology for code contributions?
OpenPGL is under the Apache 2.0 license. Code contributions are either made directly by the lead developers or submitted via GitHub PRs from external contributors, which are reviewed by the main developers.
What tool or platform is utilized for source control (GitHub, etc.), and what is the location
(e.g., URL)?
OpenPGL uses GitHub for source code control. Currently, the main repository for the library is located at https://github.com/RenderKit/openpgl, while the example integration of OpenPGL into a fork of the PBRT renderer is hosted at https://github.com/OpenPathGuidingLibrary/pbrt-v4.
What are the external dependencies of the project, and what are the licenses of those dependencies?
At the moment, the OpenPGL library has the following dependencies:
Link libraries:
Intel’s oneTBB/TBB - Apache 2.0
Intel’s OpenImageDenoise (OIDN) - Apache 2.0 (This dependency is optional, depending on the used features of OpenPGL)
Source code:
Intel’s Embree - Apache 2.0 (OpenPGL uses/includes some of the Embree source code to manage SIMD code)
NanoFlann - BSD
What roles does the project have (e.g., maintainers, committers?) Who are the current
core committers of the project, or which can a list of committers be found?
At the moment, the maintainer and main committer to OpenPGL is Sebastian Herholz. Over the years, multiple individual commits have been made by members of the rendering community and researchers. The list of contributors can be found on GitHub (https://github.com/RenderKit/openpgl/graphs/contributors). Moving OpenPGL from Intel to the ASWF increases the likelihood that other vendors (e.g., Nvidia and Apple) will actively contribute to the future development of the library, as well as other rendering companies. We did an initial poll at SIGGRAPH 20205.
What mailing lists are currently used by the project?
Currently, OpenPGL does not have a public mailing list. Communication has been delivered using official Intel channels or GitHub issues.
What tool or platform is leveraged by the project for issue tracking?
OpenPGL uses GitHub issues for issue tracking.
Does the project have an OpenSSF Best Practices Badge? Do you foresee any
challenges in obtaining one?
While OpenPGL already meets most requirements, it has not actively pursued the OpenSFF Best Practice Badge. We see no problem in fulfilling any missing criteria to achieve the badge.
What is the project’s website? Is there a wiki?
Currently, the OpenPGL website links directly to its GitHub repository, where the frequently updated Readme.md file documents new features and changes to the library.
What social media accounts are used by the project?
Open PGL does not use a dedicated social media account. News about updates was usually announced by Intel using its social media accounts.
What is the project’s release methodology and cadence?
OpenPGL’s release methodology follows a new-feature-and-bug-fix cadence. Whenever a set of new features is added to the library or reported bugs are fixed, the library is tested/validated by developers or industry collaborators (e.g., Blender, Illumination, Disney). After passing these tests, a new release is made public.
Are any trademarks, registered or unregistered, leveraged by the project? Have any
trademark registrations been filed by the project or any third party anywhere in the world?
Any potential naming and trademark issues have been resolved between Intel and the Linux Foundation, and all required agreements have been signed (please contact John Mertic for details).
What existing maintainers and contributors does the project have? Are there
organizations involved that are committing resources to the project; if so
please describe.
As mentioned before, the maintainer and main contributor of OpenPGL is Sebastian Herholz (ex-Intel, soon Blender).
Until now, Intel has been committing resources to the project (in the form of development time). In the future, this Blender will commit Sebastian’s development time to the OpenPGL project.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status