タイトルLightWave 3Dの分散レンダリングシステムをCocoaで独自開発したディ・ストームの開発者に話を聞く(2)カテゴリー開発情報, Mac OS X
作成日2001/7/23 14:25:37作成者新居雅行
いずれにしても、Cocoaをベースにした分散レンダリングシステムを、1人の手で短期間に開発できた。こうして作ったシステムのメリットについて、阿部さんは次のように語っている。「いままでだとファイルベースのやりとりだったので、完成した1枚の画像を1台のコンピュータにレンダリングさせていたのですが、分散オブジェクトを使うことで、画像の一部分ずつを異なるコンピュータにレンダリングすることが可能になりました」と話す。従って、巨大な1枚の画像の分散レンダリングということも実現したのである。また、「これまでは分散レンダリングをさせてもLightWave 3Dを動かしているマシンはレンダリングを終わるのを待たないといけなかったのですが、別のアプリケーションになったので、完全にバックグランドで分散レンダリングができます」といったメリットにもつなっがている。また、分散オブジェクトを使った手法だと、コマごとに別々にレンダリングした結果からアニメーションにまとめるようなことも可能となるそうだ。それに、ネットワーク回りの管理は非常に楽になっていることもあるとのことである。
いずれにしても、Screamernetの機能は非常に基本的な機能でのサポートが中心だったことから、ネットワークの管理が必要になった。しかしながら、分散オブジェクトではそうした管理をOSやフレームワークで吸収するのである。NetInfoも利用しているのであるが、これは分散オブジェクトへの接続で指定する名前をNetInfoに登録してIPアドレスと対応付けてやることで、問題なく接続ができるようになったことから、こうしたディレクトリサービスの使い方をしているそうなのである。

一方、CocoaベースとなるとWindowsとのやりとりができなくなる。この点については、「Windowsでの分散レンダリングは海外でけっこういろいろな人が、やりやすくするさまざまなソフトウエアを作って配付しています。だから、標準のやり方以外に代替え手段はいろいろあるのです。ただ、Macではこうした機能を提供する人は全然いなかったため、Macでの分散レンダリング環境整えたかったというのがあります」と話す。また一方で、Javaなどの別の選択肢もあるわけだが、そこでCocoaの分散オブジェクトを選んだ理由として「やはり、Objective-Cに興味がありました。今までCでプログラミングをしてきましたし、NeXTについても昔から興味がありました。そこで、分散オブジェクトという仕組みを見たりしていたので、使えるようになったらなにかやってみようと思っていたのです」と話す。
1週間くらいで作ったものだからと言って、これから完成度をあげるというものでもないそうだ。基本的な分散レンダリングについてはほぼOKということで、今後は関連機能を整えることを考えている。1つはレンダリング結果のプレビューをムービーで行うような機能を検討している。また、レンダリング結果の各画像の明るさをまとめて変更するようなバッチでの画像処理プログラムも考えている。ユーザからの要望として上がっている、レンダリングが終わったらメールを送る機能や、レンダリング結果をHTMLファイルで整えてFTPでサーバにアップロードするような機能についてもすでに検討に入っているということである。
LightWave 3Dの開発は米国のNewTekで行われているが、一方ディ・ストームでは、日本のユーザからの声をもとに、ゲーム開発をはじめとするLightWave 3Dユーザが希望する機能をNewTekと共に開発している。その一環として、こうして日本で開発したMac OS Xの分散レンダリング環境をこれから開発元にアピールし、いい形で製品につなげたいといった段階だそうだ。単に製品の出荷やサポートなどの代理店業務にとどまらず、より積極的に製品開発に絡むという動きをしている点でも同社の体制はユニークだと言えるだろう。

◇お話を伺ったディ・ストームの阿部さんのデスクでのショット、画面にはProject Builderが見えている
 

<Cocoaの分散オブジェクトを知るための資料>

◇Programming Topic: Distributed Objects
 http://devworld.apple.com/techpubs/macosx/Cocoa/TasksAndConcepts/ProgrammingTopics/DistrObjects/index.html
いきなりオーバービューに何も書かれていないが、Cocoaのどのクラスが分散オブジェクトに関わるのかがすぐに分かるだろう。

◇DO over TCP sockets example for Mac OS X
 http://www.omnigroup.com/mailman/archive/macosx-dev/2001-February/008998.html
Omni Groupsのメーリングリストで掲載された、TCPを経由した分散オブジェクトの利用のサンプル。複数マシンでの分散オブジェクトのサンプルとして参考になる。

◇広文社刊 MacOSXプログラミング入門 Objective-C 萩原剛志 著
17章、18章に分散オブジェクトのことが記載されている。

◇Developer ToolsのサンプルのAuthenticator
Developer Toolsをインストールしたマシンの、/Developer/Examples/Foundation/Authenticatorにある。

◇OPENSTEPを使って遊んでみよう
 http://www.path.ne.jp/nakakuki/openstep/index.html
◇PDOの基本
 http://www.fsinet.or.jp/~nito/OSPT/BasicPDO.html
以上は、NeXT/OPENSTEP時代の情報であるため、そのままではMac OS Xでは稼動しないが、フレームワークの考え方などには変化がないため、解説などは今でも理解の助けになり、参考になる。
関連リンク