強火で進め

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

「iPhone 3Dプログラミング ―OpenGL ESによるアプリケーション開発」についてもう少し詳しく

※この本は献本頂いました。ありがとうございました。
※ざっくりとした解説の方が良い場合は前回のエントリーの方を参照下さい。

iPhone 3D Programming」の翻訳本「iPhone 3Dプログラミング ―OpenGL ESによるアプリケーション開発」 - 強火で進め
http://d.hatena.ne.jp/nakamura001/20110304/1299258710

iPhoneOpenGL ESの使い方を詳しく学べる「iPhone 3Dプログラミング ―OpenGL ESによるアプリケーション開発」、ざっくりとは通し読みしたのですがボリュームたっぷりな感じでシッカリ読み込みたい部分も有りますがここで一度、感想を書いておきます。

まずこの本の全体的な雰囲気について。一応、ちゃんとXcodeの使い方から始めて有るので他の環境でプログラムをした事が有る人であればこの本だけでiPhoneのプログラムを始める事は不可能では無いですが「iPhoneプログラム入門」な部分はどうしても必要最低限となっています。iPhoneプログラム自体が始めての人は「iPhoneプログラム入門」な本を別途購入しておいた方が良いと思います。

メインのOpenGL ESの部分については入門な内容から、かなり高度な内容までを扱っています。最初の方は付いて行けてても後半はきつくなる事も有るかもしれません。

しかし、途中で挫折したとしても手元に置いておいて、本当に必要になったときやもっと3Dに関する知識を増やしてからもう一度読み返すと理解出来る部分が増えてくるはずです。

まぁ、入門部分だけでも良く分かっている人が書いている本というイメージで他の本ではぼかして書かれる様な部分についても明確な説明が書かれている印象です。

OpenGL ESについて明確な解説が有るのはもちろんなのですがiPhoneプログラムの部分について例えば、以下の様な他の本ではあまり触れられていない部分についてもちゃんと解説が有ったのがとても良かったです

フレームワークの話。

P.1
フレームワークとはApple流の用語で、リソースとライブラリを組み合わせたものに対する名称です。

バンドルの話。

P.13
バンドルというのは1つのファイルのように振る舞う特殊なフォルダで、Mac OS Xでは非常によく使われています。

メソッドの話。

P.16
Objective-C流の表現法では、「オブジェクトのメソッドを呼び出す」とは言わず、「オブジェクトにメッセージを送る」と言います。

この3つを見ただけでも他のiPhoneプログラム本では触れられなかったり、ぼかして書かれる様な部分についても明快な説明がされているのが分かるかと思われます。

日本語版には原著には無かった。株式会社エクサの安藤さん、頓智ドット株式会社の高橋さんの記事が付録に追加されています。

安藤さんはメインの章の中で扱われていなかったフルシーンアンチエイリアスやバッテリーに優しいアプリなどの内容を書かれています。また、iPhoneiPad、シミュレータで使用可能な機能や使用可能なテクスチャサイズなどの各種情報をまとめられた一覧表は実際の開発時の資料としてとても役立ちそうです。

高橋さんはセカイカメラの開発により得られたパフォーマンスアップの手法や開発テクニックを記載されています。こういう実践的な内容が公開される事は大変有り難い事です。解説されているのと同じ様な機能をアプリに実装するときに活用されて貰おうと思います。

メインの章では前回のこの本に関するエントリーで記載した内容以外にも実際読んでみると「7.3 距離場を使ったきれない文字」がとても興味深い内容でした。

こちらはValveソフトウェアのChris Greenさんが2007年に書かれた論文の内容をiPhoneアプリで実装するという内容です。本書によるとこの論文は以下の様な内容との事。

解像度が比較的低いテクスチャにベクトル図形(典型的な例が文字です)を保存する際にエッジを高品位に保つシンプルな方法を解説しています。

非常に優れた論文みたいなのですが注目されていないみたいで原著の筆者の方が「もっと注目してしかるべきだと思います」と書かれています。

まとめ

これまで日本語の情報がほとんど無かったOpenGL ESについての突っ込んだ内容が書かれた書籍。しかし、だかといってブレンドやライティングなどの入門部分についても明快にしっかりと書かれた良書だと思います。ブレンドの定数などについてそれぞれちゃんと解説がされており、勉強した後はリファレンス的に使うのも良いでしょう。定数の説明などはWebでも有るには有るんですがほとんどが英語のものばかりなので日本語のリファレンスは貴重かと思います。

書籍の後半は少々難易度高めで挫折する人も出るかもしれませんが実力を付けた後、再度見直すと実力をもう一段階上に引き上げてくれる本だと思います。

iPhone 3Dプログラミング ―OpenGL ESによるアプリケーション開発

iPhone 3Dプログラミング ―OpenGL ESによるアプリケーション開発

関連情報

iPhone 3D プログラミング サポートページ — 目次
http://www.marlin-arms.com/support/ip3d/