進み具合 (2013年12月8日 - 12月14日)
レンダーステートの実装を行いました。ラスタライザ、ブレンド、深度ステンシル、サンプラとそれぞれのステージに対応するステートの API の作成と、実際に Cocoa + OpenGL 上で動くように実装していきました。
Cocoa 向けのビルドターゲットを Mavericks に引き上げ
開発に使っている OS X のバージョンを 10.8 (Mountain Lion) から 10.9 (Mavericks) にアップグレードしました 。OS X 10.8 では OpenGL 3.2 まで対応していましたが、Mavericks からようやく OpenGL 4.1 まで対応しました。なお、今回のアップグレードで1世代前のドライバはおおむね GL 3.3 にとどまっているようです。1
趣味で作っているゲームは、OS X 10.8 以降をターゲットに開発を始めました。しかし 10.8 が OpenGL 3.2 までしか対応していなかっため、ビルドのターゲットバージョンを 10.9 以降に引き上げることにしました。サンプラステートを実装する上で、OpenGL 3.3 から追加されたサンプラオブジェクトを使用しているからです。 なにより、Mavericks へのアップグレードが無償で行えることが大きく作用しました。
これで Windows と同じく OpenGL 3.3 以降(できれば 4.x)を使ったゲーム開発が楽しめます。
glGetString のログ
せっかくなので Mountain Lion から Mavericks へのアップグレード前後での glGetString のログを貼っておきます。
auto version = reinterpret_cast<char const*>(glGetString(GL_VERSION));
std::cout << "OpenGL Version: " << version << std::endl;
それぞれ Intel HD Graphics 4000 を使用しています。 まず、OS X 10.8 で何も指定しなかった場合:
// Mountain Lion
OpenGL Version: 2.1 INTEL-8.16.74
次に OS X 10.8 で NSOpenGLPixelFormat
を作成する際 NSOpenGLPFAOpenGLProfile
, NSOpenGLProfileVersion3_2Core
を指定した場合:
// Mountain Lion + NSOpenGLProfileVersion3_2Core
OpenGL Version: 3.2 INTEL-8.16.74
次に OS X 10.9 で NSOpenGLPFAOpenGLProfile
, NSOpenGLProfileVersion3_2Core
を指定した場合:
// Mavericks + NSOpenGLProfileVersion3_2Core
OpenGL Version: 4.1 INTEL-8.18.26
今週の実装予定
今週は、エフェクトパスの作成とシェーダのコンパイルとリンクまで実装します。早く終えたら、エフェクトパラメータの自動生成まで触りたいです。
(来週はたして "今週の進み具合 #3" はあるのでしょうか…。)
-
OS X 10.9 の OpenGL Capabilities Tables によると、Radeon HD 2400 や Intel HD Graphics 3000 は OpenGL version 3.3 にとどまっています。 ↩
Leave a Reply