Help us understand the problem. What is going on with this article?

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によるルール・システム
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした