引き続きのiPhoneプログラミングの勉強です。
今日は先日の東京出張のついでに買ってきたこの本

- 作者: 酒井裕司
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2010/07/13
- メディア: 単行本(ソフトカバー)
- 購入: 2人 クリック: 124回
- この商品を含むブログ (6件) を見る
OpenGLのうち、3Dグラフィックスにターゲットを絞った本ですね。
例によって、ES1でのプログラミングを基本にしています。SDKも3ベースですね。
ということは、またSDK4用に書き換えないと進められないです。
もう、どこを変更すれば動き出すのかはわかってますので、サクサクと進めます。
念のため変更点
EAGLView.h の中に以下を追加
GLuint depthRenderbuffer;
EAGLView.m の createFramebuffer の中に以下を追加
GLint backing_width,backing_height;
glGetRenderbufferParameteriv( GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &backing_width );
glGetRenderbufferParameteriv( GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &backing_height );
glGenRenderbuffers(1, &depthRenderbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, depthRenderbuffer);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, backing_width, backing_height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthRenderbuffer);
glRenderbufferStorageの部分は、本には載っていないのですが、これが無いと表示されませんでした。
EAGLView.m の deleteFramebuffer の中に以下を追加
if(depthRenderbuffer) { glDeleteRenderbuffers(1, &depthRenderbuffer); depthRenderbuffer = 0; }
あとは ◯◯ViewControl.m の drawFrame の中を変更していけばOKです。
ところでこの本の内容ですが、3Dのオブジェクトの移動や回転を順に試しながら解説されています。私としては、最初の部分の説明がちょっとまどろっこしいかなぁという印象でした。3Dグラフィックスを全くやったことがない人には必要かな。その後の、太陽と地球と月の自転と公転の動きを実装しながら、どのように回転と移動を適用すると良いかを学べるところはよかったなと思います。
ちょっと困ったのは、唐突に glu.h と glu.c を組み込みましょうという話が出てくるのですが、サポートページからサンプルプロジェクトをダウンロードすると、このファイルもあるようです。視点の設定なんかができるユーティリティ関数が用意されています。内容は書籍には無い(まだ全部読んでないのですが)ので、ダウンロードしてから始めましょう。
主に3Dグラフィックスの部分の書き方しか載っていませんので、これ1冊でゲーム作りというわけにはいかないでしょう。
何かつくり始められるようになってから、3Dオブジェクトを追加したくなったら読めば良い感じですね。
よろしければ、ボタン↓押してくださいませ。

にほんブログ村
