SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

話題のあの人にインタビュー!

NVIDIAに聞く、GPUプログラミングの最新動向

シェーダプログラミングの最新技術と今後


  • このエントリーをはてなブックマークに追加

先月開催されたゲーム開発者向けカンファレンス「CEDEC 2007」に伴い、GPUのGeForceなどで有名なNVIDIA社のテクノロジーエバンジェリスト Kevin Bjorke氏、ディベロッパーテクノロジーエンジニア Bryan Dudash氏にインタビューする機会を得ました。今回は、同社が提供するGPUを使ったアプリケーション開発にフォーカスして、一歩踏み込んだ内容に迫ってみたいと思います。

  • このエントリーをはてなブックマークに追加

はじめに

 先月開催されたゲーム開発者向けカンファレンス「CEDEC 2007」に伴い、GPUのGeForceなどで有名なNVIDIA社のテクノロジーエバンジェリスト Kevin Bjorke氏、ディベロッパーテクノロジーエンジニア Bryan Dudash氏にインタビューする機会を得ました。

 今回は、同社が提供するGPUを使ったアプリケーション開発にフォーカスして、一歩踏み込んだ内容に迫ってみたいと思います。

左から、Bryan Dudash氏、Kevin Bjorke氏
左から、Bryan Dudash氏、Kevin Bjorke氏

FX Composerについて

高橋
 PCゲームやPS3のシェーダ開発者向けにFX Composerをリリースしていますが、今後の開発のロードマップなどをお聞かせください。 例えば、Direct3D 10やCg 2.0への対応予定はあるのでしょうか?
K. Bjorke
 Direct3D 10対応は、社内で既に完了しており内部で試している段階です。Cg 2.0に関してはCg 2.0自体がβ版のため、正式版がリリースされてからの対応になると思います。

 

FX Composer
 「FX Composer」とは、NVIDIAが提供するプログラマブルシェーダエフェクトの統合開発環境のこと。ゲーム開発者やデザイナーがシェーダプログラムの開発やテストを行うのに利用する。MicrosoftのHLSLと、NVIDIAのCg(PlayStation 3でも利用されている)に対応しており、一般の開発者には2.02が公開されている(本稿執筆時点)。
なお、CEDEC 2007初日のBjorke氏のセッション「みんなのためのシェーダー作り」では、FX Composer 2.4が紹介された。現在のところPlayStation 3向けに先行公開がされており、このバージョンではCgを使ったプログラムのデバッグ機能が搭載されている。
FX Composer 2の画面
高橋
 FX Composer 2から「mental mill」が付属するようになりましたが、mental images社のツールをFX Composerにバンドルさせた狙いはなんでしょうか?
K. Bjorke
 元々、mental images社とはよい関係を築いていることもあって、新しいツールとしてバンドルしました。特に、CGエンジニアの方にはmental images社の製品「mental ray」はおなじみではないでしょうか。

 

mental mill
 FX Composer 2よりバンドルされることになったmental images社のソフトウェア。3DCG業界で有名な同社の製品として、オフラインレンダラの「mental ray」がある。mental millは、グラフィカルな環境でシェーダエフェクトを作成できるのが特長で、シェーダ内の各種処理がビルディングブロック化されており、それらを組み合わせてエフェクトを作る。
mental millの画面(Parallax mappingの例)

 

ドライバ開発のオープンソース化

高橋
 先日、AMD(旧ATI)が、Linuxなどのオープンソースコミュニティへのドライバ開発の支援を発表しましたが、ドライバ開発のオープンソース化や開発者支援などについてNVIDIA社ではどう考えてるのでしょうか?
B. Dudash
 他社のことは、ちょっと分かりませんが(笑)、彼らがドライバに関する技術情報のすべてを公開しているわけではないと思いますし、実際には公開できない多くの情報があるはずです。
NVIDIAでは、オフィシャルでないドライバによって生じる不具合などをサポートすることはできませんし、限定的に情報を公開して開発してもらうよりも、オフィシャルできっちりとしたサポート体制を作っていく方が重要だと考えています。そのため、現時点でドライバの開発情報の公開などは考えていません。

 

シェーダ言語の互換性

高橋
 シェーダモデル 3.0の世代まではCgやHLSLは比較的構文が近く、相互のコンバートが容易でしたが、Direc3D 10のシェーダモデル 4.0からは、HLSLとCg 2.0で、例えばジオメトリシェーダの部分で大きく違いが出てきていると思います。
実際、Microsoft社ではSIGGRAPH 2006の「The Direct3D 10 System」(リンク先のページよりダウンロードが可能)でCgとフォークしていくという話だったと思いますが、今後はCgとHLSLで別々の道を進むと考えてよいのでしょうか?
K. Bjorke
 シェーダプログラミングに限らず、プログラミング言語は、C++やC#、Javaというように数多くあります。これらは互いに文法が異なりますが、同様にプログラムを作成することができます。同じように、シェーダプログラミングにも複数の選択肢があってもよいと思います。
高橋
 HLSLは、Microsoftの環境以外(例えば、MacやPS3)で利用できないので、そうした環境では特にCgの役割が重要になりそうですね。

 

Havokとの関係

高橋
 先日、IDFにおいてIntelがHavokを買収しましたが、Havok FXなどへの協力関係などに影響はありますか?
K. Bjorke
 Havokとは、仲良くやっています。特に変わることはないですよ(笑)。

 

Windows Vistaへの対応

高橋
 Windows VistaのSP1では、Direct3Dが10から10.1にバージョンアップします。それに伴いHLSLにもシェーダモデル4.1が登場しますが、これに合わせてCg 2.0のアップデートなども予定しているのでしょうか?
K. Bjorke
 Cg 2.0自体はまだβバージョンなので、現段階ではまだ予定はありません。必要になればアップデートするでしょう。

 

Direct3D 10.1
 Direct3D 10.1のシェーダモデル 4.1では、GPU内での演算において倍精度のサポートやキューブマップ配列などがアナウンスされている。
高橋
 CUDAのWindows Vista対応版のリリース時期について教えてください? 例えば、CUDAを実行できるGeForce 8シリーズは、Direct3D 10を動かしたいということでWindows Vistaでの利用が多いと思います。
B. Dudash
 これは、私も利用してみたいです(笑)。
K. Bjorke
 CUDAは、我々と担当部署が異なるため、現時点でリリースに関しては言えることはありません。

 

CUDA(compute unified device architecture)
 CUDAとは、NVIDIAが提供するGPU向けのプログラミング環境のこと。従来のGPUのプログラムは、OpenGLやDirect3Dといった3DグラフィックスのAPIから、GPU専用のシェーダ言語を使ってアクセスしていた。CUDAでは、内部をC言語で記述できるため、グラフィックスプログラマでなくともGPUの計算能力を利用できる。さらに、グラフィックスAPIからGPUにアクセスをしないため、汎用計算で不要な処理が行われず、効率がよいとされている。

FX Composer 2とスクリプト言語

高橋
 FX Composer 2ではスクリプト言語としてPython(Iron Python)が利用できます。ゲーム開発の分野では、同じくスクリプト言語のLuaも人気がありますが、Pythonを選択した理由は何でしょうか?
K. Bjorke
 FX Composer 2が.NET Frameworkで作られているので、それに親和性の高いスクリプト言語としてIronPythonを採用しました。また、Python自体がMotionBuilderやMayaといったツールでもよく使われてるのも一つの理由です。他にも.NET Frameworkとの親和性の高いスクリプト言語への対応を検討するかもしれません(インタビューではIronRubyなどの話題も出ました)。

 

FX ComposerでのPythonスクリプトの利用
 NVIDIAの開発者向けフォーラムでは、IronPythonを使ったTipsが実際に紹介されている。

おわりに

 NVIDIAというとハードウェアメーカーの印象が非常に強いですが、実はソフトウェアのエンジニアがハードウェアのエンジニアの2倍くらいいるらしく、意外でした。

 NVIDIAでは、GameDev.netとSoftImageとの共同でのシェーダコンテストの後援を行っており(募集は既に締切)、今後は今回の話にあがったツールの提供以外にも、イベントなどで開発者やコミュニティへの支援を積極的に行っていくそうです。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
話題のあの人にインタビュー!連載記事一覧

もっと読む

この記事の著者

高橋 誠史(タカハシ マサフミ)

僻地の大学院生です。GPUプログラミングとそのニュースを集めたサイトShader.jpを開いています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1822 2008/09/05 11:34

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング