Mitsuba 3:オープンソースの研究向けレンダラ

オープンソースの研究用レンダラMitsubaのバージョン2が発表されたのが3年ほど前。



次のバージョンのMistuba 3が発表されました↓

Mitsuba 3: A Retargetable Forward and Inverse Renderer



Mitsuba 3は研究指向のリターゲット可能なレンダリングシステムであり、Dr.Jit Just In TimeコンパイラによるポータブルなC++ 17で記述されています。Mitsuba 3は、EPFLのRealisticGraphicsLabによって開発されました。

Mitsuba 3は、微分トラッキング、LLVMまたはCUDAを介した動的コンパイル、様々なラディアンス表現(モノクロ、RGB、またはスペクトル光、場合によっては偏光)などのオプションを選択でき、様々な形態へコンパイルできます。

Mitsuba 3は小さなコアライブラリと、マテリアルや光源からレンダリングアルゴリズムに至るまでの全ての機能を実装したプラグインの集合で構成されています。Mitsuba 3は、旧バージョンのMitsuba 0.6とのシーン互換性の維持に努めています。

Dr.Jitととは何かというと、微分可能レンダリングのために開発された新しい実行時コンパイラ(Just In Timeコンパイラ)だそうで、SIGGRAPH 2022で発表されるらしい↓

Dr.Jit: A Just-In-Time Compiler for Differentiable Rendering




スポンサーリンク


Mitsuba 3は既にソースコードがGitHubで公開されており、READMEにより詳しい概要説明がある↓

Mitsuba Renderer 3

Mitsuba 3は、スイスのEPFL(スイス連邦工科大学ローザンヌ校)で開発された順方向(forward)および逆方向(inverse)の光輸送シミュレーションのための研究指向のレンダリングシステムです。コアライブラリと、マテリアルや光源からレンダリングアルゴリズムに至るまでの全ての機能を実装したプラグインの集合として構成されています。

Mitsuba 3はリターゲット可能で、基盤となる実装とデータ構造を様々な異なるタスクへ変換して実行できます。例えば、同じコードでスカラーRGB輸送(1度に1つの光線を扱う古典的手法)とGPU上での微分可能スペクトル輸送の両方をシミュレートできます。これは全て、このプロジェクトのために特別に開発された専用のJIT(Just In Time)コンパイラ Dr.Jitでビルドされます。


スポンサーリンク

主な機能

  • クロスプラットフォーム:Mitsuba 3はLinux (x86_64), macOS (aarch64, x86_64), Windows (x86_64)でテスト済みです。
  • ハイパフォーマンス:基盤となるDr.Jitコンパイラはレンダリングコードをカーネルに融合し、CPUをターゲットとするLLVMバックエンドと、レイトレーシングハードウェアアクセラレーションを備えたNVIDIA GPUをターゲットとするCUDA/OptiXバックエンドを使用して最先端のパフォーマンスを実現します。
  • Pythonファースト:Mitsuba3はPythonと深く統合されています。マテリアルやテクスチャだけでなく、全てのレンダリングアルゴリズムをPythonで開発でき、システムをすぐにJITコンパイル(さらにオプションで微分も)できます。これにより、コンピュータグラフィックスやその他分野の研究に必要な実験が可能です。
  • 微分:Mitsuba 3は微分可能レンダラです。つまり、カメラのポーズ、ジオメトリ、BSDF、テクスチャ、ボリュームなどの入力パラメータについて、シミュレーション全体の導関数を計算できます。Mitsuba 3には、EPFLで開発された最新の微分可能レンダリングのアルゴリズムを実装されています。
  • スペクトルと偏光:Mitsuba 3は、単色レンダラー、RGBベースのレンダラー、スペクトルレンダラーとして使用でき、各形態で必要に応じてオプションで偏光の影響を考慮できます。

Mitsuba 3は既にチュートリアル動画もとても充実している↓



ドキュメントはこちら。Mitsuba 3はpipですぐインストールできるのがイマドキな感じですね。

Blenderアドオンはこちら↓

Mitsuba Blender Add-on


スポンサーリンク

関連記事

Zbrushでメカ物を作るチュートリアル動画

ラクガキの立体化 1年半ぶりの続き

OpenCV 3.1から追加されたSfMモジュール

UnityのAR FoundationでARKit 3

Google App Engineのデプロイ失敗

SegNet:ディープラーニングによるSemantic Segmentation手法

MPC社によるゴジラ(2014)のVFXブレイクダウン

OpenCVでカメラ画像から自己位置認識 (Visual Odometry)

書籍『仕事ではじめる機械学習』を読みました

AMIMOTO(PVM版)で作成したインスタンスをAMIMOTO (HVM版)へ移行する

Web経由でRaspberry PiのGPIOを操作したい

Mechanizeで要認証Webサイトをスクレイピング

RSSフィードを読込んで表示するWordpressプラグイン『RSSImport』

Physically Based Rendering

Amazon EC2ログイン用の秘密鍵を無くした場合の対処方法

Maya には3 種類のシェーダSDKがある?

TVML (TV program Making language)

ZBrushでカスタムUIを設定する

OpenGVの用語

ZBrushでアヴァン・ガメラを作ってみる 下アゴと頭部を作り込む

OpenCLに対応したオープンソースの物理ベースレンダラ『LuxRender(ルクスレンダー)』

NeRF (Neural Radiance Fields):深層学習による新規視点合成

Maya LTでFBIK(Full Body IK)

顔追跡による擬似3D表示『Dynamic Perspective』

AfterEffectsプラグイン開発

ZBrushのお勉強

ZBrushで作った3Dモデルを立体視で確認できるVRアプリを作る

ZBrushで手首のモデリングをリファイン

WordPress on Windows Azure

法線マップを用意してCanvas上でShadingするサンプル

オープンソースのテクスチャマッピングシステム『Ptex』

HD画質の無駄遣い

『ハン・ソロ/スター・ウォーズ・ストーリー』のVFXブレイクダウン まとめ

LLM Visualization:大規模言語モデルの可視化

オーバーロードとオーバーライド

3Dスキャンしたテクスチャから照明を除去するUnityツール『De Lighting tool』

MLDemos:機械学習について理解するための可視化ツール

MythTV:Linuxでテレビの視聴・録画ができるオープンソースプロジェクト

OpenMayaRender

全脳アーキテクチャ勉強会

ArUco:OpenCVベースのコンパクトなARライブラリ

Mixamo:人型3Dキャラクターアニメーション制作サービス

コメント