スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« OpenGLのバージョンは? | トップページ | 表示の次は音声出力 »

やっぱり、ES2.0

今は、iOS版Nostalgic UFO Battlerの開発中なのだが、OpenGLをどうしようか、と、色々とネットを検索しつつ鑑みていたのだが、やっぱり、ES2.0を使う事にした。他OSでは1.1を使っているのだが、iOSに関しては、XcodeのテンプレートからES1.1が削除されているのが痛い。

OpenGL ES 1.1とES 2.0の違いとしては、ES 2.0ではシェーダーをプログラミング出来るので、より高度なプログラムが作れる、という事になる。

ただし、ES 2.0はES 1.1と互換性が無く、シェーダーをプログラムせずに使用する事が出来ない。つまり、ES 1.1と比べると、シェーダープログラムを用意し、それをコンパイル・転送する処理コードが必要になるので、ES 1.1ほど簡単にプログラミングは出来ない、という事になる。

で、Nostalgic UFO Battlerの他OS版はES 1.1相当のコードで記述されている訳なので、別段、ES 2.0の高度な機能は必要としていない。

このため、作者的には、ES 1.1を使いたかった所なのだが、ネットを検索していると、昔は、XcodeでES1.1とES2.0の両方に対応するテンプレートが使えていたモノが、最近になって、テンプレートからES1.1が削除されたみたいな訳だ。

つまり、Windowsでは、WindowsNTの初版から使用可能だったOpenGL 1.1は、Windows10の時代になっても使用可能なのだが、OS Xについては、Objective-Cに代わるネイティブ言語と期待されていたApple製Javaは、次バージョンから使用不可になる予定だ。

そして、AppleのAPIドキュメントを見ていても、Deplicatedの文字は山の様に出てくるのだが、それに代わる上位互換のAPIは提供されていない事も多い。

と、いう事で、OpenGL ES1.1は未だに使用可能、という事にはなっているのだが、相手はAppleなので、実際問題としては、Xcodeのテンプレートから削除されて久しい今現在、それを使用するのは、かなり、危険かもしれない訳だ。

iOSにはSprite Kitというモノもあり、Nostalgic UFO Battler的には、これを使う手もありそうなのだが、少し調べてみた所では、不用な機能が多いので、コレを使うとすると、結構、コードは冗長な感じになりそうだった。

と、いう事なので、iOS版のNostalgic UFO Battlerでは、OpenGL ES2.0を使う事にしたのだが、そのためには、ES1.1では必要なかったコードの記述も色々と必要になる。

なので、作者的には、困ったモノだなあ、という感じなのだが、OpenGL ES2.0というのは、ES 1.1では不用なコードを色々と記述する必要がある、という問題を除けば、機能的には上位になる筈なので、機能的には、Sprite Kitを使うよりは安全な筈ではある。

ちなみに、OS Xでは、未だに、普通にOpenGL 1.1相当のコードが書けるのだが、これは、OpenGLはOpenGL ESとは違って、互換性を重視していたからだ。

それでは、何故、OpenGL ES2.0は互換性を重視せず、従来のES1.1相当のコードが記述できなくなったのか、というと、OpenGL ESはモバイル用に、黎明期にリリースされたモノなので、ES1.1で記述された重要ソフトが無かったからかもしれない。

つまり、OpenGL 1.1は、長きに渡り、PC/Mac環境で利用されていたので、主要CADソフトなんかの多くで利用されていた筈なので、そう簡単には切れなかった訳だ。

更に言えば、プログラマブルシェーダーというのは、よりリアルな画像出力を可能にするのだが、多くの線や面を高速に描画できればそれでよい、という一般的なCADソフトには必要のないシロモノだ。

つまり、ES2.0は今時のゲーム用、という側面もある訳なので、CADではなく、ゲームがアプリの大半を占めるiOS機器では、こちらがデフォルトになっている訳だ。

逆に、ゲームなんかよりもCAD用として使われる事が多いWindowsやOS XやUbuntu、そして、同じモバイル環境でも、より汎用性が高いAndroidでは、OpenGL 1.1相当の機能は、そう簡単には切れない筈なので、他OS版の変更までは行う必要は無いと思われる。

= この記事に関連する公開中ソフト =

ノスタルジックUFOバトラー

UfoBattler.jpg

(2016/10/25追記)

« OpenGLのバージョンは? | トップページ | 表示の次は音声出力 »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/63676845

この記事へのトラックバック一覧です: やっぱり、ES2.0:

« OpenGLのバージョンは? | トップページ | 表示の次は音声出力 »

2017年10月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google