トーマス・デンジーズ氏 CyclesのOpen Shading Languageの開発者インタビュー
Dingtoリポジトリのコードを書いている本人のインタビュー記事。原文:
BlenderDiplom.com Interview: Thomas Dinges on OSL in Cycles
http://blenderdiplom.com/en/interviews/540-interview-thomas-dinges-on-osl-in-cycles.html
2013年12月31日 ゴットフリート・ホフマン氏による執筆
トーマス・デンジーズ氏はBlenderの開発者であり、CyclesへのOpen Shading Language(以下OLS)の実装の推進を支えた一人である。さらにOpenShading.comのWebサイトの最新情報を担当し、関連情報のサポートやチュートリアルなどを紹介している。
このインタビューはFMX 2013( http://www.fmx.de/about/history/fmx-2013.html )で行われ、ドイツ語版のデジタルプロダクション誌で公開されたものである。
BlenderDiplom:トーマスさんはBlender CyclesレンダーエンジンへのOSLの実装に携わった開発者の一人だと伺っていますが、ご自身の経歴について簡単に教えてください。
トーマス:OSLは開発の早い段階からCyclesと関わっていました。2011年頃だったと思います。その頃OSLはすでに実装されていましたがまだ稼動可能状態にはありませんでした。Cyclesのメインの開発者であるブレヒト・ファン・ロンメル氏がCyclesを設計するときにOpen Shading Languageを拡張して使っていました。OSLはCyclesの開発プロセスで重要な要素でした。今でもその名前とツール類、それからワークフローを見ることができます。OSLは予定していた2つのシェーディングエンジンのうちのひとつでしたが、残念ながらそのときにはまだ動いていませんでした。
CyclesはCPUとGPUの両方でレンダーできるよう意図されていたため、OSLはCPUレンダリングのみで動き、ブレヒト氏が設計した2つ目のシェーディングエンジンはGPUで動いていました。この2つ目のエンジンはCyclesを開発しているときに皆の注目を集めましたが、それはOSLのプロジェクトがちょうど停滞しようとしていた矢先のことでした。
2012年の夏にOSLは稼働可能な状態になりました。それは私が若干のソースコードを読み小さな変更といくつかのデバグが施されたときでしたが、私は2011年時点のシェーダーシステムのすべての変更点をOSLに移植しなければなりませんでした。ルーカス・トン氏と共同作業し実行可能なプロタイプの公開にこぎつけました。
そのときにはすでにトン氏の設計したスクリプトノードが実装されていました。そこでようやくOSLシェーダースクリプトをCyclesで使うことができるようになったのです。
BlenderDiplom:話に聞いていたところではBlenderは2011年と2012年にいくつかのOSLに対応して使えるようになるとのことでしたが、2013年になってもBlenderは依然としてOSLシェーディング市場の独占状態にあります。ほかのエンジンはなぜOSLの採用に手をこまねいているのでしょうか?
トーマス:主な理由は利用可能なOSLが2012年以前にはまだ公開プロジェクトにはなかったからだと思います。「メン・イン・ブラック3」とか「ホテルトランシルバニア」とか「アメイジングスパイダーマン」などが公開され、これらはそれぞれ単独でOSLシェーディングが実際に使われた最初の映画です。それまでOSLはあまり知られていませんでした。
SONYイメージワークスで使われていることが知られていましたが、ほとんどの人はOSLの導入は時期尚早と考え、それで映像を作ることに懐疑的でした。今ではV-RayがOSLを実装する予定との情報があり、FMX 2013でそれが確認されました。
残念ながらそのネタはまだ守秘義務があるので詳細については公式に発表されるまで数週間ばかり待たなければいけません。
BlnderDiplom:それでBlender CyclesはOSLによるパストレーシングエンジンなわけですね。すでにたくさんのスクリプトが書かれたと聞きました。これらのスクリプトはほかのレンダリングエンジンのユーザーにも使えるリソースになるでしょうか?
トーマス:完全に再利用できると思います。それがシェーダー言語が設計された基本概念ですから。ほかのエンジンはおよそRenderman(訳注:ピクサースタジオのシェーダー言語)互換なのでシェーダーを変えても簡単に使えると思います。
ただしOSLの仕様ではない部分、BRDFやシェーダーなどは異なりますが、これらの部分はシンプルな関数呼び出しなのでシェーダー内部でそれを修正することは簡単にできると思います。
たとえばユーザーがプロシージャルテクスチャが実装されているあるシェーダーを使っているとして、ディフューズシェーダーを出力しようとしたら、ほかのエンジン名に名前を変更するだけです。
今のところはまだスクリプトはすべてのOSL対応レンダーエンジンをサポートできているわけではないですが。
BlenderDiplom:つまり再利用が可能で、また将来的にはBlender Cyclesのために書かれたスクリプトも他のレンダーエンジンのユーザーにも使えるというわけですね。
ところでOSLのWebサイトを運営なさっていますが現在のところCyclesでのOSLの使い方のみに限定されているようですが、ほかのレンダリングエンジンについても扱う予定でしょうか?
トーマス:もちろんです!
今のところOpenShading.comはCyclesに注視していますが、それは一般に公開されているレンダーエンジンで唯一のものだからです。
でもほかのエンジンがリリースされたらその情報も追加していきたいと考えています。V-RayなどがOSLをサポートするようになり、たくさんの実用的なOSLスクリプトを集めてユーザーが使えるように便宜を図ることは非常に価値があることだと思います。
訳注:おっさんかと思ってたら若いわ(´・ω・`)