CoreGraphicsで3Dする

English version is ready: 英語

どうも、吉村です。

OpenGLで3Dをやるのは普通ですが、
CoreGraphicsで3Dをやるのはあまり一般的でないと思います。
そこで今回はOpenGLを使わなくても3Dは簡単に出せるというところのデモにチャレンジします。
※深度テストとかはちょっと面倒なので、今回はワイヤーフレームだけになります。

Screen Shot 2013-06-18 at 13.53.15

具体的に何をやっているかというと、
射影行列とビュー行列でのトランスフォーム、ビューポート変換を自前で行って、
CGPathで描画したものになります。
デモプログラムでは、3Dなのでぐりぐり動かしてみました。

注意しなければいけない点としては、
射影行列とビュー行列を頂点に適用する時に、最後にwで除算しなければならない点です。
通常これはグラフィックスハードウェアが行いますが、今回はCPUでやっているため、自前で除算します。
あとは上下の座標系に注意するところです。

GLKitの簡単な練習にもなると思います。

ソースコードはこちらです
https://github.com/wowdevjp/CoreGraphics3D