工場裏のアーカイブス

素人によるiPhoneアプリ開発の学習記 あと機械学習とかM5Stackとか

「OpenGL Game」テンプレートを使わずGLKitを使う方法

XCode(この記事執筆時点のバージョンは4.6)で「OpenGL Game」テンプレートを使わずに、例えば「Tabbed Application」など通常のテンプレートを用いたアプリ開発でも、GLKitでOpenGL ES 2.0を使えるようにする手順についてメモします。ここでは例として「Tabbed Application」を用いていますが、それ以外のテンプレートでも同様の手順で行けるはずです。

  • まずは普通に、「Tabbed Application」テンプレートを選択してプロジェクトを作成します。

f:id:fleron:20130412000915p:plain

  • プロジェクトに「GLKit.framework」「OpenGLES.framework」という2つのフレームワークを追加します。

f:id:fleron:20130412001408p:plain

  • Storyboardエディタを開いて、既存の ViewController に貼付けられた UIView を削除します(今回の場合はTabbed Applicationなので、どちらか片方のみ(ここではFirstViewControllerの側)を削除してみます)

f:id:fleron:20130412000905p:plain

  • 右下のObject Libraryから「GLKit View」を選んで、先程削除した UIView の代わりに貼付けます。

f:id:fleron:20130412000912p:plain

  • GLKit View を貼付けた ViewController のヘッダファイル(ここでは FirstViewController.h )を開いて、以下のような書き換えを行います。GLKit/GLkit.h ヘッダファイルのインポートを追加して、UIViewControllerクラスではなく、GLKViewControllerクラスを継承するように書き換えます。
//FirstViewController.h
#import <UIKit/UIKit.h>
#import <GLKit/GLKit.h> //追加

@interface FirstViewController : GLKViewController
//GLKViewControllerクラスを継承するように書き換え

@end


  • 後は、GLKit View を貼付けた ViewController のソースファイル(ここでは FirstViewController.m)に、GLKitを用いたコードを記述していくだけです。ここでは前の記事で記述した、GLKitのみで2つの回転する立方体を描画するコードをそのまま(ただし、ViewController の名前は FirstViewController に修正して)用いて実行してみます。以下のように、片方のタブでは OpenGL ES 2.0 によるグラフィックを表示、もう片方のタブでは通常のUIViewによる表示、といったアプリが作成出来ます。

f:id:fleron:20130412005042p:plain