Edited at

macOSでOpenGLプログラミング(目次)

More than 1 year has passed since last update.


はじめに

2017年8月24日現在、iOSプログラミングに押されて、Macプログラミングの情報がかなり少なくなっています。この記事では、最新のmacOS 10.13とXcode 9を使って、OpenGLを使ったゲームを作る方法を解説します。

この記事を読むことで、最新のmacOSと、現代的なOpenGLを使ったゲーム制作(というよりはゲーム制作のためのミドルウェアの作り方)が理解できるようになることを目的としています。

macOSに最初から用意されているフレームワークだけを使用し、必要なコードはなるべく外部ライブラリを使わずに自前で実装することを前提として解説していきます。そのため、既存のライブラリを導入した方が堅牢になる箇所も多々あると思いますが、何をどのように処理しているかがブラックボックスに包まれないように、基本の考え方が分かりやすいように解説していきたいと思います。


目次


1章 基本環境の整備


2章 シェーダによる描画の基礎


3章 3D表現のための透視変換と行列


4章 3Dモデルの読み込みと基本のライティング


準備


  • 準備1. ライティングのための数学(1. ベクトルの正規化)

  • 準備2. ライティングのための数学(2. ベクトルのドット積)


本編


5章 さらなる3Dの処理


  • 5-1. フォグを実装する(距離ベース)

  • 5-2. フォグを実装する(ボリュームフォグ)

  • 5-3. ブレンディング方法を指定する

  • 5-4. カメラを表すCameraクラスを実装する

  • 5-5. カメラを回転させる

  • 5-6. 複数のカメラを組み合わせる

  • 5-7. ビルボードを実装する

  • 5-8. バンプマッピングを実装する

  • 5-9. 文字を描画する


6章 画像処理を行う


  • 6-1. Render to Texture を実装する

  • 6-2. セピア調の色変換を実装する

  • 6-3. モザイク処理を実装する

  • 6-4. 鏡の反射を実装する

  • 6-5. ラスタースクロールを実装する

  • 6-6. トゥーンレンダリングを実装する

  • 6-7. リムライトを描画する

  • 6-8. カメラの被写界深度を再現する

  • 6-9. 光跡を描画する

  • 6-10. HDRレンダリングを行う

  • 6-11. シャドウ(影)を描画する

  • 6-12. 画面のキャプチャ


7章 3Dの当たり判定


  • 7-1. 線分と線分の衝突判定

  • 7-2. 平面と線分の衝突判定

  • 7-3. レイ・キャストを実装する

  • 7-4. 球と球の衝突判定

  • 7-5. 直方体と直方体の衝突判定


8章 アニメーションの実装


  • 8-1. ボーン・アニメーションを実装する

  • 8-2. FBXファイルのアニメーションデータを読み込む

  • 8-3. GameplayKitによるステートマシン

  • 8-4. 水面の表現

  • 8-5. パーティクルの実装(爆発・雨・雪・炎・雷・魔法など、いくつかに分けて説明したい)


9章 各種アルゴリズム


  • 9-1. 誘導弾の作成(外積などの利用)

  • 9-2. GameplayKitによる経路探索

  • 9-3. GameplayKitによるエージェント実装

  • 9-4. GameplayKitによるルール・システム