2010-11-30 14 views
1

OpenGL ES 1.1でカラーパレットを使用することはできますか?iPhoneのOpenGL ES 1.1のOpenGLカラーインデックス?

私は現在、プレーヤーのスプライトを持つゲームを開発しています。プレーヤーのスプライトは、異なるチームの色に変更できる必要があります。たとえば、シャツの色は変更しますが、顔の色は変更しません。これは単純な色相の回転を排除します。

これは可能ですか、または手動で実装する必要がありますか(テクスチャデータを直接変更する)?

答えて

2

それはMBXのハードウェア機能ではありませんが、iPhone SDKからES 1.xのためのgl.hの迅速なチェックがGL_PALETTE4_RGB8_OESGL_PALETTE8_RGBA8_OESと他人の束がglCompressedTexImage2Dに渡す定数の一つとして利用可能であることを明らかに、マニュアルページhereに従ってください。だから、パレットを使ってテクスチャを渡すこともできますが、ドライバがCPUのRGBテクスチャに変換してからGPUにアップロードするだけです。私はAppleがES 1.x仕様の一部である以外の理由で、これらのタイプの圧縮テクスチャをサポートしているとは思っていません。

ES 2.xでは、自由に操作できます。パレットを1つのテクスチャ(パレットインデックスxの色である(x、0)のピクセル)とパレットテクスチャを別のものとして簡単にアップロードできます。次に、2つのテクスチャユニットを使用して、断片をプロットするときに実行できるジョブを実行します。そのため、余裕があるかどうかについて独自の判断を下します。

3

ミップマップされていないGL_NEAREST以外は、パレットインデックス間でブレンドされることに注意してください。私はBGRA32としてそれらをアップロードする前に、解凍方法でパレットのテクスチャを拡張してしまいました。 (GLES2.0)