UnifinityとOpenGL

テックポエム

Unifinityでは、画面の描画の部分を、OpenGLという歴史の長いコンピューターグラフィックライブラリを使っています。                   

2018年6月に、Appleより「今後OpenGLを非推奨とし、Apple自社のライブラリであるMetalへの移行を促す」という

ショッキングなニュースもありましたので、UnifinityとOpenGLをとりまく環境について話をしたいと思います。              

コンピューターグラフィックとは

コンピューターが誕生したころは、文字表示のみを行えるキャラクタディスプレイコントローラーから始まりました。

これを拡張し、表示する内容をVRAMに保存し、画像を表示できるようになってきました。

時代は進み、CPUとは別に、GPUというグラフィック専用のチップでより高速で複雑な3D等の描画が可能となっています。

image001.png

 

OpenGLとは

SGI社のワークステーション用のグラフィックスライブラリとしてIRIS-GLがありましたが、高価なワークステーションでの特殊用途だけではなく          

安価な機械で様々な用途で使えるように、ハードウエアに依存しないライブラリとして再構築されたのがOpenGLであり1992年に誕生しました。  

OSベンダー、グラフィックチップベンダーの多くが採用し、PC、携帯電話、後のスマートフォンやタブレットといった情報端末、

組み込み型コンピューターでのシェアを伸ばしていきました。

 

UnifinityとOpenGLの親和性

画面の描画は、ハードウエアに依存しやすく、個々にOS専用のライブラリが提供されていますが、OpenGLに一元化することで、                     

Windows/Android/iOSのクロスプラットフォーム化、OSバージョンアップ高耐性、多種多様な機器での動作保証が実現しました。                   

image002.png

 image003.png

Appleが今後OpneGLを非推奨とする背景にあるもの

OpenGLのバージョンは 1.1~4.x および互換性のない次世代のVulkanがありますが、

iOSはもともと、今回のアナウンスとは関係なく、OpenGLはVer3.0までしか対応していません。

言い換えれば、2D描画や一定品質までの3D描画についてはOpenGLを採用し推奨してきました。

PCやスマートデバイスに搭載されるGPUの性能向上に伴い、リッチな3Dゲーム等を作成する場合の選択肢として

よりハードウエアの限界性能を引き出せる Metalを推奨し、OpenGL4.x系やVulkanは推奨しない(今後も使えない)

という意思表示とも取れます。

また、AppleのSafariにのみ搭載されている、次世代Web 3Dグラフィックスライブラリとして、Metalをベースとした

WebGPUを推奨しており、競合しているGoogle Chromeでは、WebGLというOpenGLをベースとしたものが存在しています。

上記より、Appleの狙いとしては、OpenGL4.x系やVulkanではなく、Metalを次世代3Dグラフィックスのスタンダードにしたい

という戦略が垣間見えます。

さらに、WebGPUをMetalとのシナジー効果により広めていくことで、ブラウザシェア競争においても優位に立ちたいという思いも

ありそうです。

次世代3Dグラフィックスの戦略の話であれば、それ以前に多くの実績があるOpenGL3.x系までは、打ち切らずに

残したことにメリットがあるように思えます。

冒頭に記載しました

「今後OpenGLを非推奨とし、Apple自社のライブラリであるMetalへの移行を促す」 ではなく

「今後もOpenGL4.x以降およびVulkanは採用せず、Apple自社のライブラリであるMetalへの移行を促す」 かもしれません

高精細な3Dゲームを作成しているベンダーとしては、非常に悩ましい問題ですが、我々の製品であるUnifinityは

ビジネスアプリをターゲットにした開発プラットフォームであるため、2D描画で必要なOpneGL3.x以前が打ち切られない限り

深刻な影響は出ないと思っています。引き続き動向を見守りつつ、クロスプラットフォーマーとして最善手を打って行きたいと思います。