iPhone 3Dプログラミング
|
オライリーの編集の人から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にマッピングする。 このテクスチャをシェーダーでごにょごにょすればグリフの綺麗なエッジを抽出したり、文字にシャドウをつけたり出来るという仕掛けのようだ。 まあ、詳しいことは上の論文か本書を見て欲しい。 |