強火で進め

このブログではプログラム関連の記事を中心に書いてます。

iOS 4.2以降ではちょっとした裏技を使えばWebGLが使えるみたい

こちらのブログ内に引用されているツイートによればiAdであればiOS 4.2からWebGLが使えていたようです。

Enabling & Using WebGL on iOS - Nathan de Vries
http://atnan.com/blog/2011/11/03/enabling-and-using-webgl-on-ios/

また、iAd以外にもUIWebViewにちょっとした裏技を使えばWebGLが使えるみたいです(Safariアプリ上で実行する方法は今のところ無いみたいです)。
具体的にはこんな感じ、とっても分り易いですねw

[webView setWebGLEnabled:YES];

実際にこれを使用したサンプルがこちらのGitHubにて公開されています。

このプロジェクトをビルドすれば実際に3Dモデルが表示されます。

373行辺りの以下の記述を

              // Front face
               0.0,  1.0,  0.0,
              -1.0, -1.0,  1.0,
               1.0, -1.0,  1.0,

              // Right face
               0.0,  1.0,  0.0,
               1.0, -1.0,  1.0,
               1.0, -1.0, -1.0,

              // Back face
               0.0,  1.0,  0.0,
               1.0, -1.0, -1.0,
              -1.0, -1.0, -1.0,

              // Left face
               0.0,  1.0,  0.0,
              -1.0, -1.0, -1.0,
              -1.0, -1.0,  1.0

以下様に変更する(Y座標を減らす)とちゃんと形が変わります。これによりOpenGLで描画しているのでは無く、ちゃんとHTMLファイルに書かれた内容を反映して動作している事が確認できます。

              // Front face
               0.0,  0.5,  0.0,
              -1.0, -0.5,  1.0,
               1.0, -0.5,  1.0,

              // Right face
               0.0,  0.5,  0.0,
               1.0, -0.5,  1.0,
               1.0, -0.5, -1.0,

              // Back face
               0.0,  0.5,  0.0,
               1.0, -0.5, -1.0,
              -1.0, -0.5, -1.0,

              // Left face
               0.0,  0.5,  0.0,
              -1.0, -0.5, -1.0,
              -1.0, -0.5,  1.0

まぁ、この方法でプログラムを作成してもAppStoreの申請ではリジェクトされる可能性があるかと思いますので実際にはiAdを使う時以外はWebGLを使わない方が良いかと思います。