OpenGLの参考資料、メモ

こんばんはuzakadeuです。


しばらくOpenGL ES 1.1のプログラミングをやってました。OpenGLというか3Dグラフィックスのプログラミングは初めてだったので、なかなか思い通りにいきませんでした。今でも分かってないことがたくさんあります。この先またOpenGLプログラミングする時のためにメモを残しておきます。



参考資料

参考にした書籍やリンクです。

有名な本みたいですね。OpenGLの本ではありません。2D/3Dグラフィックスプログラミングの基礎を教わりました。特にアフィン変換についてかなり詳しく書かれています。

OpenGLについてあまり突っ込んだ説明はありません。とにかくOpenGLで何か動くものを作りたかったので、そういう目的で読みました。誤記がかなり多かった覚えがあります。

前述の書籍で分からなかった部分の説明を求めて読みました。ここの説明ですべてを理解できた訳ではありませんが、他の資料を探すキーワードをたくさん貰いました。

前述の書籍で分からなかった部分の説明を求めて読みました。

AppleiOS用のドキュメントです。iOS独自の概念や実装の説明を求めて読みました。ただ誤記が多いので、おかしいと思ったら英語版で確認するようにするといいでしょう。

結局ここへたどり着きました。OpenGLプログラミングガイド(赤本)の古いバージョンみたいです。新しいバージョンを邦訳した書籍「OpenGLプログラミングガイド 原著 第五版 」が欲しいのですが、13,000円(税別)と高価なので手がでません。

良さそうなのですが、まだ読んでません。いつか読むつもりです。



メモ

理解というか調べるのに時間がかかったトピックを備忘録として残します。間違ってるかも知れません。

座標変換のプロセス

座標変換のプロセスには次の4ステップがあります。

  1. モデリング変換
  2. 視野変換(ビューイング変換)
  3. 透視変換
  4. ビューポート変換

これがなかなかしっくり来なかったのですが、カメラに例えた説明で割と納得しました。

座標変換プロセス カメラでの例え
モデリング変換 撮影する対象の配置を決める
視野変換 三脚を設置し、カメラを向ける方向や、傾きを決める
透視変換 レンズを選択し、ズームを調整する
ビューポート どのサイズの紙へ印刷するか決める

ちなみに透視変換はPROJECTION、モデリング変換と視野変換を合わせてMODELVIEWと呼びます。glMatrixMode()で別々に変換行列を指定する時に思い出して下さい。

EAGLコンテキスト、フレームバッファレンダリングバッファ
  • iOSにおけるEAGLコンテキストはOpenGL ESコマンドを受け付けて実行するものです。決してコマンドの最終的な作用先ではありません。
  • iOSにおけるフレームバッファは単なるコンテナです。レンダリングバッファを保持します。
  • iOSにおけるレンダリングバッファは、カラーバッファ、深度バッファ、ステンシルバッファの3種類があります。実際に表示されるのはカラーバッファです。深度バッファやステンシルバッファはカラーバッファの補助的な情報を保持します。

                                 以上です。