「Java FAQ(What's New)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集局)
8月5日から10日にかけて、アメリカ西海岸、Los Angeles Convention Centerにて、コンピュータグラフィックスに関する世界最大の学会・展示会である「SIGGRAPH 2001」が開催されました。アメリカのコンピュータ業界ではドットコムバブルの崩壊がささやかれ、会場に行くまでは元気がない様を予想していました。けれどもコンピュータグラフィックス業界はまだまだ勢いがあること、良い意味で、これからもやらなければならない課題、研究の素材がたくさん残っていることを思い知らされた活気のあるカンファレンスでした。
3次元コンピュータグラフィックスにおける通常の考え方は(特にリアルタイムグラフィックスの世界では)、
「ハイパフォーマンスなクライアントマシン」
というイメージがあります。高速のCPU、潤沢なメモリ、高性能なグラフィックスハードウェア……それらが充足して初めて満足のいくグラフィックス環境が得られるという認識です。
しかし、その認識も最近では「サーバサイドグラフィックス」という形態に進化しつつあります。もちろん利用形態に応じたもので、すべてがサーバサイドに展開するわけではありませんが、この流れは次第に大きくなってきているようです。
分散型のグラフィックスとして注目を浴びていたのは後述するスタンフォード大学の「WireGL」と効率的に複数のLinuxマシンに負荷分散させるレンダラー(画像生成ソフトウェア)であるSquareUSAの「Kilauea」でした(撮影許可の関係で展示会場での写真はありませんが、Webページにはとても美しいサンプル画像が載っています)。
単に台数を増やすだけではなく、複数台に効率良く分散させてこそ余計な計算に費やす無駄が省けるといったポリシーのもと、高度なアルゴリズムを展開させています。
さてサーバサイド化するグラフィックスにはどのようなものがあるのでしょう? ここではシステム(サービス)のイメージが明確に分かるJavelinとVizserverを紹介します。
Javelinはクライアントマシンに表示したオブジェクトを高画質、高精細で表示し、さらにそのオブジェクトを見る方向をインタラクティブに操作できるシステムです。主に利用されるオブジェクトとしては表面の反射のリアルな車や、柔らかな光りが照らす部屋、データ量の多い医療データなど通常は表示に大変負荷のかかるものばかりです。
Javelinのクライアント側のシステムでは通常は静止画が表示されているだけです。オブジェクトを回転させようとしたり、部屋の中を移動しようとするときにのみワイヤフレーム(線画)で全体像が表示され、的確な状態に位置を設定します。するとその移動情報がサーバ側に通知され、新しい方向から見た高精細な画像がクライアント側に瞬時に送られてくるわけです。
Javelinはさらに同社の持つHyperionという画像生成ソフトにより、柔らかな影の表現や、壁を照らす光りの表現など、より現実感を増したコンピュータグラフィックス映像を提供しています。
JavelinとHyperionの組み合わせにより、本来ならば非力なクライアントマシンでは不可能に近かった高品質の画像をサーバ側で用意することにより瞬時に見ることができるようになったわけです。
Javalinの利点はユーザーに優しいシステムであることです。サービスの利用者すべてが特殊なコンピュータグラフィックスソフトの使い方を覚えたいわけではありません。画像生成用のソフトウェアをサーバ側で隠ぺいすることによって、ユーザーにはサービスと、その結果のみが見えるようになり、より使いやすいシステムとなっていることが分かります。
得てしてソフトウェアというものはたくさんの機能を持ったものを求めがちですが、このようなサーバ/クライアント形態でソフトウェアを動かし、その結果を利用することによって、ユーザーが使いたい部分のみをより使いやすい形で提供することができるわけです。また、高度な使い方をしたいユーザーや違った使い方をしたいユーザーにはさらにインターフェイスを公開していけばよいわけです。
SGIのVizserverはリアルタイムグラフィックスにおけるアプリケーションサーバ風のサービスといえます。グラフィックスサーバで高精細な3次元画像を生成します。その高精細な画像を非力なクライアントマシンがネットワークを利用して活用するのがVizserverシステムの仕組みです。
ハイエンドのグラフィックスサーバSGI Onyxがクライアントのリクエストに応じて高速に3次元画像を生成します。その画像をフレームごとに圧縮し、ネットワーク経由でクライアントマシンに転送して表示します。UNIXにおける通常のX Windowシステムであれば、3次元描画の負荷はクライアントマシンが負担するのが通常の動作です。一方、Vizserverでは1枚1枚の画像生成をすべてサーバ側で行ってしまうのが特徴です。
展示会場におけるデモでは、クライアントマシンとしてはわざと非力な Linux ベースの液晶WebPad端末を用い、とても高精細でリアルな車の3次元データをインタラクティブに操作していました。
言葉だけでは分かりにくいですが、一見して手元の液晶端末がものすごく高性能な3次元マシンになったような錯覚さえ覚える未来的なシステムでした。
クライアントマシンとグラフィックスサーバは無線LANでつながっており、画像の圧縮度や、精細度を細かく調整することにより、ネットワークの効率を生かし、かつ高精細な画像を得ることができます。
クライアントマシンはグラフィックス能力の非力なマシンで構いません。その一方、サーバはSGI Onyxシリーズのハイエンドグラフィックスサーバを理想とする特別な利用形態といえます。
科学計算に用いられるスーパーコンピュータと違って、リアルタイムグラフィックス分野で使われるグラフィックスサーバは常に高負荷で使用されているわけではありません。その間の余った資源を有効に活用するという意味から進化してきたシステム形態ともいえるでしょう。
SIGGRAPHの論文発表では前述したWireGLの詳細が明らかになりました。WireGLはネットワークを利用することにより、複数台のコンピュータをあたかも高性能な1台(1画面)のグラフィックスコンピュータとして利用できるようにするテクノロジです。
これからのコンピュータシステムは単体での利用は考えられず、ネットワークをうまく利用してこそ本当の、そして本来以上の性能を発揮することになるでしょう。
どこに負荷をかけるのか、ネットワーク上に散らばるリソースをどう活用するのか、どの部分がどの仕事を受け持ち、どう分担するのか。そういった人的リソースの配置にも似たコンピュータとネットワークの設計がこれからますます重要になってきます。
私たちが暮らしている世界が3次元だからこそコンピュータグラフィックスによる3次元表現は数々の場所で活用されています。データの固まりとしてだけでなく、目で見えてこそ、3次元で表現されているからこそ理解しやすい情報も数多くあります。ユーザーにとって必要な情報を届ける「ビジュアライズ」という意識を常に持つことはとても大切なことです。
本来ならば、今回は「ユーザビリティ」に関して取り上げる予定でした。ちょうどSIGGRAPHの時期に重なったため予定を変更しましたが、次回こそ「使いやすさ:ユーザビリティ」の話題について書きたいと思います。ご期待ください。
■参考URL
SIGGRAPH 2001
http://www.siggraph.org/s2001/
Kilauea
http://www.squareusa.com/kilauea/
Immersive Technologies
http://www.immersiveweb.com/
OpenGL Vizserver
http://www.sgi.com/software/vizserver/
WireGL
http://graphics.stanford.edu/software/wiregl/
次回は10月1日の公開予定です。
安藤幸央(あんどう ゆきお)
1970年北海道生まれ。現在、株式会社エヌ・ケー・エクサ マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元 CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG の情報源となるWebページをまとめている。
ホームページ:
http://www.gimlay.org/~andoh/java/
所属団体:
OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman)
主な著書
「VRML 60分ガイド」(監訳、ソフトバンク)
「これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社)
「The Java3D API仕様」(監修、アスキー)
Copyright © ITmedia, Inc. All Rights Reserved.