6

現在の Xcode 4 リリースをインストールしたところ、iOS 用の OpenGL テンプレートでも使用される新しい「GLKit」API を実現しました。それで、iOS、Mac、Windows 向けのクロスプラットフォーム ゲームを開発したいと考えています。GLKit は移植性の点で後退しているように見えますが、GLKit の機能 (特に非同期テクスチャの読み込みなど) は大きな利点です...

GLKit を使用してクロスプラットフォーム ゲームを開発するにはどうすればよいですか? グラフィック コードを 2 回記述する必要がありますよね?または、Windows用のGLKit実装のようなものはありますか?

アイデア、回避策、コード設計のアドバイス (GLKit コードを他のコンポーネントから分割する方法は?) は大歓迎です - ありがとう!

4

1 に答える 1

5

GLKit 以外のコードで置き換えることができない GLKit の機能は思い浮かびません。一部の OpenGL ES 2.0 タスクを抽象化することで単純化できますが、独自の機能は何もありません。他の場所で複製できないものに最も近いのは (私がいじってみたところから)、それが提供する加速された行列とベクトルの数学関数ですが、それらでさえ小さな Accelerate または NEON コードに置き換えることができます。

アプリケーション内で GLKit を使用したいのですが、GLKit が利用できない iOS 4.2 を引き続きサポートしています。ビューの更新、テクスチャのアップロード、行列の計算などを処理するために、もう少しコードを書く必要があるだけです。たくさんのドキュメントと例があります。これらの操作については、それらを実装する際に独力で行うことを心配する必要はありません。

コードを Mac、特に Windows とクロスプラットフォームにしようとすると、GLKit よりもはるかに大きな問題が発生します。デスクトップ OpenGL と OpenGL ES の実装にはいくつかの違いがあり、ある関数または組み込み変数を別の関数または組み込み変数に置き換える場所を認識する必要があります。Mac の CAOpenGLLayer と NSOpenGLView も iOS の CAEAGLLayer とは異なり、AppKit 全体は UIKit とは別の動物です。

Cocoa フレームワークを使用できず、おそらく Objective-C も使用できないため、Windows のサポートはさらに困難になります。これには、OpenGL / OpenGL ES の違いよりも多くの時間がかかります。

于 2012-02-03T18:48:29.380 に答える