しばらくこのブログも更新されていませんでしたが、この勉強をしていました。
ここに至るまで試行錯誤してたので。
例によってこの本で勉強です。

- 作者: 横江宗太(株式会社パンカク)
- 出版社/メーカー: インプレスジャパン
- 発売日: 2009/12/18
- メディア: 単行本
- 購入: 18人 クリック: 256回
- この商品を含むブログ (44件) を見る
今はレースゲームの3D化のサンプルにとりかかっています、ポイントになりそうなのは、深度バッファを有効にするところ。
サンプルプログラムでは ES1Renderer.m に追加することになっています。
SDK4.2ではそのファイルは無いので、EAGLView.m を変更することにします。
その前に、 EAGLView.h の宣言に深度バッファ用の変数を追加
GLuint defaultFramebuffer, colorRenderbuffer, depthRenderbuffer;
EAGLView.m の createFramebuffer にサンプルの手順を追加します。
GLint backing_width,backing_height;
glGetRenderbufferParameterivOES( GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backing_width );
glGetRenderbufferParameterivOES( GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backing_height );
glGenRenderbuffersOES(1, &depthRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer);
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, backing_width, backing_height);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderbuffer);
backing_widthとbacking_height が定義されていなかったので、赤字部分は補いました。
これで、深度バッファの作成ができそうです。
その他は、順調にこの本を読み替えながら記述していけば問題なさそうです。
ただし、ビューのサイズが変更されたときに深度バッファのサイズも変更するコードもサンプルにはありましたが、どこに記述してよいものか不明だったので記述しませんでした。ビューのサイズは変わらなそうだし、無視しても良いのかも。
深度バッファの解放は、
EAGLView.m の dealloc に書けば良いですね。
これでこの本の内容もだいたい確認できた感じです。
まだ、実機動作を試せる環境が無いので、シミュレータ上だけで遊んでます。
早いところ実機動作確認できる環境を作って、次のステップに進まなくては。
よろしければ、ボタン↓押してくださいませ。

にほんブログ村
