大域照明計算手法開発のためのレンダリングフレームワーク Lightmetrica: 拡張 検証に特化した研究開発のためレンダラ 図 1: Lightmetrica を用いてレンダリングした画像例 シーンは拡散反射面 光沢面を含み 複数の面光 源を用いて ピンホールカメラを用いてレンダリングを行った モデルとして外部から読み込んだ三角形メ ッシュを用いた このように Lightmetrica はレンダラとして写実的な画像を生成する十分な実力を有する 1. 背景計算によって画像の生成を行うレンダリングは映画等で用いられる写実的な画像を生成するために広く用いられる手法であり コンピュータグラフィックスにおいて重要な要素の一つである レンダリングの研究では一般的に 今まで計算によって表現できなかった表現を可能にし 高速で効率のよい手法の開発を行うことを目的とする レンダリング手法研究を行う研究者の役割として アーティスト向けのツールを制作する開発者の参照となるような新手法を開発することが挙げられる 一般にレンダリングの研究開発において 新たに開発した手法は既存手法との比較検証が求められる 効率のよい研究プロセスを実現するには 素早く 正確に新手法を実装し 既存手法に対する検証を行うことが重要である それゆえ研究開発のために必要なレンダリングを行うためのソフトウェア すなわちレンダラは 拡張が柔軟 容易に可能であること 検証がなされていることが必要であると考える 拡張が柔軟 容易であることで 様々な手法を一つのフレームワークに実装でき 手法間の比較が容易になり 共通部分の再実装の手間を省くことができる また検証がなされていることでバグの発生を抑制し 検証済みレンダラの構成要素として安心して使用できるようになる しかしながら ある手法に最適化された手法や アーティストにとっての使い勝手に特化したアーティスト向けのレンダラでは これらの研究開発に必要な要件を満たすことはできない また既存の研究に用いられているレンダラは拡張 検証の面で十分だとは言 1 / 5
えない それらのレンダラは拡張を前提としていない設計であったり または拡張に多く の手間が必要であったりする またテストを用いたレンダラの構成要素に対する検証を 行っている研究用レンダラは存在しない 2. 目的本プロジェクトでは研究開発向けレンダラとして必要な 拡張性 検証に特化したレンダラを開発することを目的とする これによって レンダリング研究の活性化 ひいてはレンダリング産業 レンダリングによって可能な表現の発展に寄与することを目指す 3. 開発の内容研究開発のためのレンダラ Lightmetrica を開発した 開発言語は C++ 言語で 拡張を含めてすべて C++ 言語を用いて行う マルチプラットフォームライブラリとして設計を行い Windows, Mac OS X, Linux 環境で使用することが可能である 研究開発向けのレンダラであるが レンダラとして十分な機能を備えており 図 1 のような写実的な画像をレンダリングすることができる (a) 手法 1 (path tracing) (b) 手法 2 (bidirectional path tracing) 図 2: プラグインとして実装された異なるレンダリング手法を用いてレンダリングを行った例 ( 同一サンプル数 ) Lightmetrica を用いることで 異なるレンダリング手法を用いる場合でも同一のシーンファイルやマテリアルの実装等を用いることができ 共通部分の実装コストを削減することができる 柔軟な拡張レンダラを構成するほとんどの要素を拡張可能であり 新手法を作成した際の手間を省くことができる また拡張をサポートするための新たなシーンフォーマットの設計 実装も行った 拡張可能な構成要素として 例えば次のようなものがある 2 / 5
- レンダリング手法 - 交差判定 - マテリアル - 光源モデル - センサモデル - テクスチャ - メッシュ レンダラとして拡張可能な機能として様々なレンダラの構成要素の実装を行った 図 2,3,4 はレンダリング手法 マテリアル 光源モデルのそれぞれの構成要素に対してプラグインとして実装を行った例である このように 様々な種類のレンダラの構成要素を同一の枠組みで柔軟に扱うことができる 図 3: プラグインとして実装された様々なマテリアル 主に拡散反射 ( 中央 ) 鏡面反射 ( 右 ) 光沢反射 ( 左 ) のマテリアルを扱うことができる またこれらのマテリアルの実装によって他の手法の実装 ( 例えばレ ンダリング手法の実装 ) に影響を与えることはない すなわち 同一の実装を用いることができる シンプルな拡張また拡張を行う際の手順もシンプルに行えるように設計を心がけた プラグインはヘッダファイルのみのライブラリを用いて作成することができる またビルドスクリプトを極力使用しないでプラグインのビルドが可能である テストによる検証検証に関して レンダラの様々な構成要素に対してテストを行った 例えば 実装された様々な手法で交差判定の処理が同じ正しい結果を返しているか 等の検証を自動的に行うことができる 3 / 5
(a) 面光源 (b) 点光源 (c) 方向光源 図 4: プラグインとして実装された様々な光源によって照らされたシーン このように Lightmetrica では種 類の違いにかかわらず 様々な光源モデルを扱うことができ プラグインとしての拡張が可能である ユーザ支援研究者向けという専門的な内容のため ユーザ支援にも力を入れた lightmetria.org というサイトを作成し ドキュメントやチュートリアルの内容を充実させた ( 図 5) ドキュメントは英語 日本語双方で作成し またチュートリアルはレンダリング入門からプラグインによる拡張までの内容に対応する レンダリング未経験者の方にもできるだけ理解ができるようにするため 未経験者の方々からのフィードバックを集めて改善を行った 図 5: 作成した Web サイト (lightmetrica.org) 左 : トップページ, 右 : ページ例 専門性の高いレンダリング 研究をサポートするために レンダラとしての機能を解説するドキュメントの他 レンダリング入門からプラ グインよる拡張までを解説するチュートリアルも用意した 4. 従来の技術 ( または機能 ) との相違既存の研究開発に用いられるレンダラと比較して 拡張の柔軟性 拡張のシンプルさの点で優位である また テストを用いてレンダラの構成要素に対する検証を行った点でも優位性がある 4 / 5
- 拡張の柔軟性 o レンダラのほとんどの構成要素に対して拡張が可能である - 拡張のシンプルさ o 簡単に使用可能なヘッダファイルのみのライブラリでプラグインを作成でき ビルドも簡易である - テストによる検証 o レンダラを構成する様々な要素に対するテストを行った 5. 期待される効果レンダリング研究の活発化 またはレンダリング研究に関するリテラシーの向上を通じてレンダリング業界の活性化 ひいてはレンダリングによって可能となる表現の発展に貢献することが期待される 6. 普及 ( または活用 ) の見通し本プロジェクトはオープンソースプロジェクトとして開発を行っている 今後も開発を継続していくことで 最新のレンダリング手法の研究で実際に使用されるデファクトスタンダードのレンダラとなるようなものを目指す 7. クリエータ名 ( 所属 ) 大津久平 ( 東京大学大学院情報理工学系研究科創造情報学専攻 ) ( 参考 ) 関連 URL Lightmetrica 公式サイト :http://lightmetrica.org 5 / 5