iPhone 3Dプログラミング


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

オライリーの編集の人からiPhone 3Dプログラミング ―OpenGL ESによるアプリケーション開発を献本していただいた。


内容を手短に言うと、OpenGL ES 1.1/2.0の使い方を解説するために、線形代数の説明をしながらObjective-Cを使ってサンプルプログラムを書いてみました、という感じの本だ。


OpenGL ES 1.1/2.0で開発しているiPhone以外のプラットフォームの人にも役に立つと思う。


ありがちな解説書かと思いきや、本書の後半には結構実践的なことが書いてある。


例えば、文字を拡大したときにも綺麗に表示させたいときに、距離場を使えばいいだとか。これは、Chris Green氏が2007年に発表した論文*1に書かれているテクニックで、グリフ(≒文字)に対して符号付き距離場を作成する方法だ。


グリフからの距離をグレースケールのテクスチャで表す。例えば距離0を灰色(0.5)で表し、最大値と最小値をそれぞれ1.0と0.0にマッピングする。


このテクスチャをシェーダーでごにょごにょすればグリフの綺麗なエッジを抽出したり、文字にシャドウをつけたり出来るという仕掛けのようだ。


まあ、詳しいことは上の論文か本書を見て欲しい。