2014-03-12

ValveがDota 2で使われているらしきDirect3D-OpenGL変換のライブラリを抜きだして公開

邪悪なDRM付きのゲーム流通プラットフォームと不自由なソフトウェア実装のゲームを蔓延させているValveが、Dota 2で使われているらしき、ライブラリレベルでDirect3DをOpenGLに変換するラッパーライブラリ、TOGLをGitHubで公開した。

ValveSoftware/ToGL

これは、Direct3D 9.0cのAPIでありながら、中身はOpenGLを使っているという、ラッパーライブラリ、あるいはソフトウェア互換レイヤーとでもいうべきライブラリだ。どうやら、Dota 2というゲームで使われているコードベースから、この部分だけ抜き出して公開したようだ。

DirectX 9.0cのすべての機能を実装しているわけではないという。HLSLバイトコードから、GLSLバイトコードへのトランスレーターを含む。Multiple Render Targetsはサポートしているが、Vertex Texture Fetchはサポートしていない。

また、このままではビルドすらできないし、また、Sourceエンジンの挙動に合わせるためにハードコードした部分もあるという

ところで、このようなライブラリには見覚えがある。そう。ANGLEだ。

angleproject - ANGLE: Almost Native Graphics Layer Engine - Google Project Hosting

ANGLEとは、不自由なMicrosoft Windows環境で、OpenGL ES 2.0環境をDirectX 9ないしはDirect X 11を使って実現するライブラリだ。つまり、TOGLの逆転版ということになる。

ANGLEは、ChromiumとFirefoxで、まともなOpenGL環境のない制限OSであるWindows環境で、WebGLを実装するために使われている。

DirectXはもはやその役目を終えたので、そろそろ終焉に向かって欲しい。

1 comment:

Anonymous said...

瑣末ながら、ANGELじゃなくてANGLEですね