お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2010/07/30 00:00

ニュース

[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する

 SIGGRAPH 2010の会期中,会場周辺のホテルでは,テーマ別に個別のカンファレンス「Birds of a Feather」が行われるのだが,北米時間2010年7月28日,OpenGLを統括するKhronos Groupはそこで,「OpenGL 4.1」の発表会を開催した。

発表会の模様
画像集#002のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する 画像集#003のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する


本格活用が始まっているOpenGL 4.0


画像集#004のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する
 Khronos Groupは,DirectX 11相当のレンダリングパイプラインをオープンプラットフォーム向けのOpenGLとしてまとめた「OpenGL 4.0」を,2010年3月のGDC 2010で発表した。
 これまで,DirectXの進化に比べてやや遅れる傾向にあったOpenGLだったが,今世代はフットワークが軽く,MicrosoftがDirectX 11の提供を始めてからわずか半年で追いついた格好だ。

画像集#005のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する
Barthold Lichtenbelt氏。氏は普段NVIDIAに勤務する人物だが,発表会では彼がメインでOpenGL 4.1の解説を行った
画像集#006のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する
Heaven BenchmarkがOpenGL 4.0をサポート
 Khronos GroupのOpenGL規格化委員会「OpenGL ARB WG」でチェアマンを務めるNVIDIAのBarthold Lichtenbelt氏は,発表会でまず,3月の発表後,OpenGL 4.0がどのように業界で迎えられたかを紹介した。

 氏が最も強調したのは,DirectX 11に対応したグラフィックスパイプラインのベンチマークテストとして知られるUnigine製の「Heaven Benchmark」がOpenGL 4.0に対応したという点。最新バージョンではレンダリングAPIに「OpenGL」が選択可能で,「Tessellation」オプションを有効化して実行できるようになっている。

 こうした高度なアプリケーションでOpenGL 4.0への対応が行われたことで,今後も広くOpenGL 4.0の活用が進むことをKhronos Groupは期待している,とはLichtenbelt氏の弁。DirectX 11が提供されているWindows 7&Vistaのユーザーはそれほど高い関心を持っていないかもしれないが,Windows XPやMacOS,Linuxのユーザーにとっては,最新世代のGPUを活用したアプリケーションが増えることはプラットフォームの活性につながるわけで,非常に喜ばしい,というわけだ。

OpenGL 4.0モードでのHeaven Benchmark実行結果。テッセレーションステージがちゃんと活用されている
画像集#007のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する 画像集#008のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する


OpenGL 4.1とは何か?


 OpenGL 4.1がLichtenbelt氏の口からアナウンスされたのは,以上の説明に続いてだった。
 OpenGLユーザーや非Windows系業界関連者で埋め尽くされていた会場は,この宣言で拍手と歓喜の悲鳴に包まれる。このあたりのノリは,非Windows系のユーザーが多いカンファレンスでしばしば見られる光景だ。

OpenGL 4.1発表。OpenGL 3.0以降,発表の間隔が短くなっている
画像集#009のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する

 さて,バージョン番号からも推測できると思うが,OpenGL 4.1は,OpenGL 4.0のマイナーチェンジ版にあたる。「基本的なレンダリングパイプラインに大きな変更はなく,細かい部分での機能改善が行われる」というイメージだ。

 機能強化点のうち,興味深い点をいくつかピックアップして紹介しよう。

●Get Program Binary

画像集#010のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する

 OpenGLで,シェーダはランタイム時にその都度コンパイルすることをよしとしていた。だが,「アプリケーション起動時に無駄な処理が多くなる」という指摘を受けて,オフラインでコンパイルしたシェーダープログラムのバイナリを読み込めるようになった。

●Separate Shader Objects

画像集#011のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する 画像集#012のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する

 OpenGL 4.xのシェーダは,

  • 頂点シェーダ
  • テッセレーション制御シェーダ(ハルシェーダ)
  • テッセレーション評価シェーダ(ドメインシェーダ)
  • ジオメトリシェーダ
  • フラグメントシェーダ(ピクセルシェーダ)

の5つがあるが,各シェーダステージのシェーダプログラムを「部品」としてバラバラに管理し,「任意のシェーダステージのプログラム部品」を実行したいシェーディングに合わせて構成できるようになった。

※上で示したシェーダ名称のうち,( )内はDirectXにおける呼称。OpenGLではDirectXとはシェーダー名を意図的に変えて呼ぶ慣例がある。以下同。余談ながら続けると,DirectXでいうところのジオメトリシェーダを,OpenGLでは一時期「プリミティブシェーダ」と呼んでいたのだが,最終的には同じ名前になっている。

●ES2 Compatibility

画像集#013のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する

 ある意味,OpenGL 4.1で最も大きな強化点といえるのが,この「OpenGL ES 2.0との互換性確保」という強化点だ。
 OpenGL ES 2.0は,組み込み機器や携帯機器に向けたOpenGL 2.0のサブセットとして登場したもの。最近のスマートフォンブームなどにも後押しされ,OpenGL ES 2.0の活用はハードウェア,ソフトウェアとも盛んだ。そこで,OpenGL ES 2.0ベースのアプリケーションをPCやワークステーション上のOpenGLで動作させられるようにと,半ば“出戻り”のような感じで,OpenGL 4.1にOpenGL ES 2.0の仕様が取り込まれたのである。

 OpenGL ES 2.0用のアプリケーションをOpenGL 4.1のエミュレーション環境で開発するのにも役に立ちそうだ。

●Shader Precision

画像集#014のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する

 プラットフォームとしての信頼性を向上させる目的で,一部超越関数の演算誤差などを厳密に規定化した。

●Vertex Attribute 64bit

画像集#015のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する

 OpenGL 4.0で規定化された64bit浮動小数点の取り扱いだが,これを頂点データとして取り扱えるようになった。

●Viewport Array

画像集#016のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する

 あるサーフェスのレンダリングを複数のビューポートに描けるようになった。これにより,ジオメトリシェーダがプリミティブを複数のビューポートにリダイレクトできるようになる。
 キューブマップのシングルパスレンダリングに役立てられるかもしれない。

●Robustness

画像集#017のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する 画像集#018のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する

 強健性の強化。不当なリソースへのアクセスや,GPUのリセットが行われた場合の対処が可能になった。

●Debug output

画像集#019のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する

 実行中のプログラムで何が起きているのかをレポートする,デバッグ向けのコールバック機能が追加された。

●Shader Stencil Export

画像集#020のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する

 フラグメントシェーダからステンシルバッファへの読み書きが可能になった。これまでROP(Rendering Output Pipeline)フェーズでしか利用できなかったステンシルバッファを,フラグメントシェーダから利用できるようになったので,よりCPU的な論理処理を実装する目的で活用が進むと思われる。

●CL event

画像集#021のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する

 グラフィックスパイプラインの初期化などをせずとも,OpenGLとOpenCLとでバッファの共有を透過的に行えるようになった。合わせてOpenGLのイベントとOpenCLのイベントとの間で同期を取るメカニズムも搭載されている。例えば「OpenCLイベントが終了したとき,OpenGLイベントがこれを受け,実行を開始する」といったことが可能になる。
 DirectXでも,3Dグラフィックス用途のDirect3DとGPGPU用途のDirectCopmuteとの内部コラボレーションを可能にするメカニズムが搭載されているが,CL eventは,まさにこうしたDirectXの仕組みに対抗するものといっていいかもしれない。


OpenGL 4.1はDirectX 11のスーパーセットである


 複数の企業で構成される業界団体によって規格化が進められてきたOpenGLは,オープンスタンダードであるがゆえにフットワークが重く,常に「DirectXに追いつけ」という位置づけだった。

 しかし今回は違う。Khronos Groupは「DirectXを抜いた」と自負しているようだ。実際,Lichtenbelt氏も「OpenGL 4.1はDirectX 11のスーパーセットだ」と,その先進性をアピールしている。

OpenGL 4.1はDirectX 11のスーパーセットである! と謳うスライド
画像集#022のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する

OpenGLのエコシステム
画像集#023のサムネイル/[SIGGRAPH]Khronos,OpenGL 4.1を発表。カンファレンスからその詳細を確認する
 MacやiPhoneなどをはじめとしたAppleプラットフォーム,そしてAndroidプラットフォームも勢いを強めているだけに,業界全体から集まっているOpenGLへの期待度は,いまやWindows専用であるDirectXをしのぐ勢い。この攻勢がどこまで続くのかも含め,Khronos Groupの動向には今後も注目していく必要がある。

  • 関連タイトル:

    OpenGL

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:11月27日〜11月28日