高品質な準モンテカルロ ライブラリ「OpenQMC」が公開されました。Framestoreの社内レンダラーで使用されている物のようです。Framestoreでは元々RenderManからArnoldに移行して使用していたようですが、シェーダーやライトなど様々な開発しているうちに独自社レンダラー開発に至ったようです。
https://github.com/AcademySoftwareFoundation/openqmc
OpenQMC
OpenQMCは、高品質な準モンテカルロ(QMC)点のサンプリングと擬似乱数生成のためのライブラリです。グラフィックスアプリケーション向けに設計され、Framestoreの独自レンダラーFreakの一部として、VFX制作で積極的に活用されています。

説明
このC++14(CPU、GPU)ヘッダーのみのライブラリは、高品質なQMCサンプルポイントを提供するAPIを提供します。このAPIは、実稼働コードベースで見られる様々な一般的なユースケースとの互換性を目指しています。また、ノイズを最小化するための複数の最先端バックエンド実装も提供します。
本プロジェクトには3つの主要な目的があります。
- 柔軟なサンプリングAPIの標準化
- 高性能な実装の提供
- 高品質な結果の提供
本プロジェクトが目指さないもの。
- 網羅的なシーケンスの実装
- 教育目的の実装の提供
プロジェクトの特徴。
- 異なるアーキテクチャ(CPU、GPUなど)のサポート
- 静的インターフェース/ゼロコスト抽象化
- 様々なサンプリングユースケースへの対応
- プログレッシブ/アダプティブピクセルサンプリングのサポート
- 深度および波面レンダリングへの適応
- 空間ブルーノイズディザリングの組み込み
- 明快で拡張可能なコードベース
- ユニットテストと統計的テスト
- 最新のCMakeベースビルドシステム
- ヘッダーのみ構成とバイナリ構成
- ライブラリやSTLへの依存なし
- ツール、ドキュメント、サンプルを含む
このAPIにより、バイアスフリーの結果と業界最高水準の収束率を得ながら、グラフィックスアルゴリズムの記述に集中できます。プロジェクト管理者は、開発者があらゆる場面で自信を持ってQMCサンプリングを活用することを望んでいます。これがOpenQMC APIとドメイン分岐の概念が目指すものです。
このプロジェクトは実戦で実証済みです。Framestoreはこのライブラリの派生版を積極的に活用し、視覚的に豊かな長編映画用VFXコンテンツを制作しており、今後もこのオープンな取り組みへのさらなる改善に貢献し続けることを約束します。
