« CPCPU | トップページ | うっかり »

2005.01.07

グラフィックス研究のヤンキース?

実はあんまり真面目にMicrosoft Reserchのサイトって見たことが無かったんですが、Shader.jp Newsの方でHugues Hoppe氏に関するコラムを取り上げたのでちょっと見てみることにしました(該当記事)。

一応、グラフィックス部門でちゃんとホームページがあるんですね。

Graphics Home
http://research.microsoft.com/graphics/

ここを見て初めて知ったのですが、Jim Blinn博士って今はMicrosoft Reserchなんですね。

« CPCPU | トップページ | うっかり »

学問・資格」カテゴリの記事

Programming」カテゴリの記事

コメント

こんにちは。
Jim Blinn氏は、Microsoft Researchには結構前からいたと思います。移籍当時、Microsoftが突然SIGGRAPHに論文を量産し始め、西田友是氏が確か何かの雑誌でしたかで、Microsoft Researchのグラフィックス進出を話題にされていました。Blinn氏は、結構前のMeltdownでリファレンスラスタライザについて講演していて、多分、最初のリファレンスラスタライザの作成に関わっていると思います。(元々、Direct3D自体、Jim Blinn's Cornerの影響が濃くて、行ベクトルベース、左手系、透視変換行列などはJim Blinn's Cornerそのまんまで、最初の頃のDirect3DサンプルプログラムのソースコードにはJim Blinn's Cornerが参考文献になってました。そのおかげでOpenGLとは逆の作法が多くなってる感じですが)

> Jim Blinn氏は、Microsoft Researchには
> 結構前からいたと思います。移籍当時、
> Microsoftが突然SIGGRAPHに論文を量産し始
> め、西田友是氏が確か何かの雑誌でしたかで、
> Microsoft Researchのグラフィックス進出
> を話題にされていました
なるほど、そう言われればこの話はどこかで聞いたことがあるような気がします(”初めて知ったのですが”と書いちゃいましたが遠い記憶で在籍については聞いていたような気がします。うちの先生が言ってたんだったかなぁ・・・)。

> OpenGLとは逆の作法が多くなってる感じですが
座標系に関しては確か"Jim Blinn's Corner"(私は翻訳の方を読みましたが)、本来、純粋に3DCGの透視変換を考えると左手系だけど、OpenGLでは天文学で使われる右手系にあわせたため右手系になってるなんて記述があったので知ってたのですが、ベクトルと行列の扱いの違いも彼の影響とは…(もしかして、DirectX3→DirectX5でJohn Carmack氏の影響で大きく変更があったようですが、この辺とかが問題にされたんでしょうかねぇ)。

それにしても私自身は、著名な海外の研究者の名前とか動向って疎かったりするので、お恥ずかしい限りです。

初期のDirect3Dが嫌われていたのは、多分、実行バッファというものです。最初の頃のDirect3Dはポリゴンを描画する関数(今のDrawPrimitive)がなくて、実行バッファに描画コマンドを格納してその実行バッファを実行して描画する、という形でした。(CPUとGPUの並列動作(非同期)を考えると描画コマンドを溜め込んでおくこの方式の方が効率が良く、最近のGPUのドライバの中では実行バッファと同じような実装が行われているようですが) 普通に使うには、DrawPrimitiveに相当するような実行バッファに描画コマンドを格納する処理を各自が実装する必要がありました。これがAPIの設計として直接的ではなく、嫌われていたようです。そこでJohn Carmack氏を含む海外のゲーム開発者の方々がMicrosoftにOpenGLの全面採用を訴える署名活動をしたりしていました。当時Microsoftの「Mr.DirectX」的な存在だったAlex St. John氏はこの流れに理解を示し、DirectXの3D APIとしてOpenGLを採用するように、ビルゲイツ氏に直訴するメールを送ったそうです。しかしその後、Alex氏は理由も明らかにされず、Microsoftを解雇されてしまいました。私の推測では、Microsoftは他社に依存することのない独自の3D APIを持っておきたかったため、Alex氏の提案は受け入れられなかったのだと思います。(派手なイベントの数々でDirectXをアピールしまくっていたAlex氏がいなくなったのは、結果的にかなりの痛手だったと思いますが) それから、DirectXにDrawPrimitiveが備わり、さらに、実行バッファも消えました。しかし、理由は色々あるのでしょうけど、John Carmack氏はずっとOpenGLだけを使っています。(Quake1発売時はソフトウェアレンダラのみであり、また、Renditionの独自APIを使ったvQuakeやニンテンドウ64へのQuakeの移植もありましたが)

DIRECTXDEV@DISCUSS.MICROSOFT.COMの方でも以前、3から5でDrawPrimitiveが加わったなんて話題がありましたが、なるほどポリゴン描画自体のやり方が異なっていたんですね。

> DrawPrimitiveに相当するような実行バッ
> ファに描画コマンドを格納する処理を各自
> が実装する必要がありました。これがAPI
> の設計として直接的ではなく、嫌われてい
> たようです。
確かに、ちょっと大多数の開発者からは必要以上に手間がかかりそうで嫌われそうですね。さらに、プログラマの実装の仕方と腕の差で単純な描画に関してもパフォーマンスの違いが大きく出そうですね。

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: グラフィックス研究のヤンキース?:

« CPCPU | トップページ | うっかり »