平成14年度未踏ソフトウェア創造事業(未踏ユース)

採択案件評価

1.採択者氏名 蜂須賀 恵也 19歳 (茨城工業高等専門学校 電子情報工学科)
2.プロジェクト実施管理組織 株式会社 創夢
3.委託金支払額  1,474,980円
4.テーマ名  ハードウェアの支援による高速な大域照明レンダラーの開発
5.関連Webサイトへのリンク  
6.テーマ概要

 本テーマは,現在市場に普及し始めているプログラマブルシェーダーをサポートしたグラフィックハードウェア (以下GPU) を用いて,大域照明計算を高速に行なえるレンダラーを開発することを目的とする.

 大域照明とは光の大域的な伝播の計算を行ない,写実的な画像を得るためのシミュレーションモデルである.大域照明は,現在主にCPU上でのソフトウェアのみで計算されている.主な理由は,大域照明の計算では,ほとんどのGPUでサポートされていないレイトレーシング法を用いることが多いからである.専用GPUの開発も行なわれているが,一般のユーザが利用するのは,現在のところ,コストなどの問題で不可能である.そのため,大域照明計算はGPUによる支援が受けられず,ほかのグラフィックスの計算に比べて,計算速度が著しく遅くなっていた.専用のハードウェアによる支援が得られない処理は,速度を犠牲にして汎用のCPUによる計算を行なうしかなかったのである.

 しかし最近,プログラマブルシェーダーという概念に基づき,GPU上での処理を専用言語を用いてある程度プログラミングすることができるハードウェアが登場し始めた.これは現在ゲームなどに盛んに使われており,従来CPUのみで計算を行なうしかなかった処理も,GPUによる支援が受けられるようになった.プログラマブルシェーダーはゲームのようなリアルタイムレンダリングの分野だけでなく,物理計算や画像処理にも用いることができ,その実例も各ハードウェアベンダーによって示されている.本テーマはこれらの情報を用いて,大域照明の計算法を研究し,それをベースに大域照明をサポートしたレンダラーを開発して一般に公開する.


7.採択理由

 プレゼンを聞いてさらに評価の上がった元気のいい若い学生.実績・実力もある.提案テーマもPMの見るかぎりでは,うまいすき間を狙っている.ただし,タイミングが重要.まさに旬のテーマだ.それにしてもこの予算でいいの?と思うくらいの小額申請だけれど,これは若さに任せてやってもらおうじゃないかとPMも乗った.

 
8.成果概要

 最近,GPUは半年に2倍という非常に速い進歩をとげている (CPUの進歩の3乗!).これの上に搭載されているプログラマブルシェーダーに最適化した大域照明計算のアルゴリズムを開発し,そのレンダラーの実装を行なった.

 GPUのプログラマブルシェーダーは新しい概念であるため,GPUでの実装に適した大域照明計算手法の開発は,まったく一からのスタートとなった.しかし,レイトレーシングとは異なるz-buffer法をベースとした独自のアルゴリズムを開発することができた.大域照明計算では,直接照明,間接照明,集光現象の3種類の現象に対処する必要があるが,それぞれにプログラマブル・シェーダーに適した方式を考案した.この中では,光やピクセルの相関性を利用した高速化がキーアイデアである.また,CPUとGPUの並列動作,計算が進行するにつれて画質が向上していくプログレッシブ描画も本方式の特徴である.時間のかかるアンチエイリアシングは画像全体に行なわず,エイリアシングが発生するピクセルを事前に計算することで高速化した.

 ターゲットとするGPUはMicrosoftのDirectX 9.0以降をサポートしたものとし,プログラマブルシェーダーとしてDirectXのVertex Shader及びPixel Shaderを用いた.実装言語はDelphiである.なお,光と物体の相互作用は研究途上の点が多く,レンダラーによってサポートする材質がまちまちである.本プロジェクトでは,完全拡散反射と,完全鏡面反射・屈折のみを取り扱うことにした.

 ここで提案した手法を用いたレンダラーは,とりあえずモデルデータ形式としてDirectXのXファイルと,オンラインソフトであるMetasequoiaのMQOファイルをサポートしている.今回は静止画像の生成にのみ重点を置き,動画については今後の研究課題とすることにした.レンダラーはMicrosoft Windows98以降のDirect X9.0を搭載した環境で,スタンドアロン動作するもの (プラグインでないもの) である.

 Radeon 9700 Proを用いた実装では,従来のCPUを使った手法に比べて,5〜10倍の高速化が達成できた.GPUが今後ますます高速化することを考えると,GPUを用いた本手法の将来性は十分に高いといえる.また,ピクセル間の相関性をうまく利用しているので,画面上のノイズ感が著しく減った.

 本手法で試験的にレンダリングした画像のいくつかを蜂須賀・図1〜4に示しておく.図の順にレンダリング時間はそれぞれ140秒,180秒,150秒,60秒である (上記GPUとPentium 4 2.7GHz).図4は一番時間のかかる集光現象を省略しているので,図3に比べて時間が短縮されている.

 この成果はWeb上で公開し,一般のユーザーが安価に高速な大域照明計算を行なえるような環境を提供する.


蜂須賀・図1


蜂須賀・図2


蜂須賀・図3


蜂須賀・図4

9.PM評価とコメント

 蜂須賀君は高専の5年生,つまり大学2年生相当である.ここで得られた成果はそれを知らなくても凄いと思わせるものがあるが,年齢を聞いてさらに驚かされるだろう.

 PMは中身をよく知らないのだが,ものすごいスピードで進化しているGPU (3/6にはもうATI Radeon 9800 Proが発表された) は,CGというナンバークランチング計算向きとはいえ,専用マシンはここまでいくのかと感心させられる.蜂須賀君にプログラムシェーダーの実際のプログラムを見せてもらったが,なるほどCGではここまで処理内容の抽象化ができているのかと感心した.それでいて,ループや条件分岐がないというのも面白い.見事な割り切りだ.

 このプロジェクトを進めるにあたっての蜂須賀君の割り切りもクリアだ.これからどんどん伸びて,かつ低価格化が進み,ふつうのPCにどんどん入るであろうGPUを対象とすることにして,独自路線を歩まない.技術の波に乗るという姿勢である.そして,この短いプロジェクト期間の大半を設計に費した.それは,待てばすぐ次のもっといい性能のGPUが出てくるからだという見切りである.SIGRAPHなどの最新情報もきちんとウォッチしている.

 GPUが本来目的していなかった用途に使うためにアルゴリズムをいろいろ創意工夫しているところがポイントである.もっともGPUがCG以外にも使えるということは世の中では注目されていたらしいが,いち早く,大域照明計算に応用して,実装もしてしまったところがいい.PMには,この仕事に対してどのような競合研究開発があるのかはよく知らないのだが,蜂須賀君のこの仕事が霞んでしまうことはないと信じる.

 蜂須賀君の弁によると,やり足りなかったところが一杯あるという.これはこの短期間だからやむを得ない.これは彼の手抜きをしないという姿勢の現われである.この調子だと,今後のさらなる発展が期待できる.いまはピークデモができているという状態なので,これをみんなが使えるようにするという仕事はこれからだ.

 報告書もよく書かれている.経験を積むともっとよくなるだろう (まだ20歳だ).未踏ユースでは,プロジェクト期間ではっきりと急成長する人がいるが,彼はその典型だった.

★★ スーパークリエータ: 明晰な判断と仕事ぶりだが,まだ20歳.日本のCG技術の世界ですぐに頭角を現すに違いない.

   
(補足)