2010/09/27

チャプター2

Introducing Graphics Programming in SIO2

そういや前回チャプターのタイトル書いてなかった。
これが有るか無いかではかなり分かりやすくなりますわなw

今後、気をつけます。

それと、ブログの記事の本文を分ける仕様にしてみました。
投稿が増えてくると重たくなりそうなので。。。

これも一種のユニバーサルデザイン?w

さて。
余談はこれくらいにしておきますか。




このチャプターでは、前回の投稿で紹介した「テンプレート」の具体的な使い方を学びながらOpenGLの使い方について学び、最終的にはテンプレートにOpenGLのコードを記述していく作業をするらしい。

…感無量ッ。

1歩1歩ではあるが、確実にiPhoneで3Dやるために歩みを進められそうな感じがするッ。
それではゴリゴリ読んでいきましょうー。


The SIO2 Template

そういえば、、、OpenGLES自体も何も宣言しなきゃ使えるわけないのよね 笑
テンプレートはいろんなライブラリを参照してくれてるって説明は把握してたけど、OpenGLESもしっかり使えるようになってますハイ。

初心者はAppendixから読み始めろとか言われたけど、正直今は我流で行列の変換とか勉強してる場合じゃないっす。先生と一緒に読みながらアレコレ聞かせていただこう。

そして、いよいよtemplate.mmのコードに付いて具体的な説明がスタート。ワクワク

…初っ端から自動生成される著作権情報とファイル名の説明がッwwコメント文の書き方とかどうでもいいわwww
まぁ、これは全てにおいて初心者に向けての本。こういうトコは割愛させていただきます。

さて、テンプレートにはsio2.hというファイルが含まれていまして。
このファイルの中でsio2という名前のオブジェクトを宣言し、SIO2において使うエンジンやライブラリのインポート、構造体の宣言を行っている。SIO2を支えるという大きな役割を果たしているのだと。
このファイルを読むだけでかなり貴重なデータが得られそう。

void templateRender( void )
続いてtemplateRenderというファンクションについて。
このメソッドではフレーム単位でのスクリーンへの描写を行っている。ここに記述した命令がすんごいスピードでループして3Dの描写をするのだそうだ。ゲームのようにフレームごとに変化を与えたい場合はこのメソッドに記述をすればいいらしい。

デフォルトではここはOpenGLを呼び出すために最低限必要な要素のみで構成されている。

glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
glClear( GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT );
ネットからの入れ知恵だと、glMatrixMode( GL_MODELVIEW )でコード内で使う座標系を行列を指定、glLoadIdentity( )で選択した行列を初期化、glClearでバッファを初期化。。。
何のこっちゃ。やっぱ3Dグラフィクスの基礎から勉強必要なんやね。。。

void templateShutdown( void )
{
// Clean up
sio2ResourceUnloadAll( sio2->_SIO2resource );
sio2->_SIO2resource = sio2ResourceFree( sio2->_SIO2resource );
sio2->_SIO2window = sio2WindowFree( sio2->_SIO2window );
sio2 = sio2Shutdown();
printf("\nSIO2: shutdown...\n" );
}
お次はこんなの。
SIO2エンジンを停止させるためのファンクション。これに関してはヘタに手を加えずそのまま使うことを推奨された。

void templateScreenTap( void *_ptr, unsigned char _state )
{
}

void templateScreenTouchMove( void *_ptr )
{
}

void templateScreenAccelerometer( void *_ptr )
{
}
そして最後にこの3つのファンクション。ここでiOSアプリケーションとの対話を行う。
templateScreenTapでスクリーンを指で押したり離したりしたとき、templateScreenTouchMoveでスクリーンをなぞっているとき、デバイスを振ったり傾けたりすることで加速度センサーが反応したときの3つのシチュエーションを想定して、それに応じて処理を記述する仕組みになっている。

テンプレートの構造はこれで以上。
どのようにコードを追加していくかで、アプリケーションに変化をもたらすことになる。


えーと。
このチャプターを独学で進めることが出来るのはここまで。

次からは実際にOpenGLのコーディングをしていくんだけどそれと一緒に行列どうこうってう知識が必要になってきます。なって来るはずです。
行列については付け焼き刃程度の知識しかないので、先生と共に読みすすめながら行列も勉強していたらと思う。

0 件のコメント:

コメントを投稿