2016-03-24 5 views
1

トピックにはOpenGL ES 2.0が含まれます。DXT S3TCがサポートされていないにもかかわらず、テクスチャが動作する

私は

glGetString(GL_EXTENSIONS) 
を経由して拡張に照会すると、サポートの拡張、 GL_EXT_texture_compression_s3tcとなっているなしのリストを返します

というデバイスを持っています。

AFAIK、GL_EXT_texture_compression_s3tcはDXT圧縮テクスチャの使用を許可しないでください。

しかし、DXT圧縮テクスチャがデバイス上で使用されると、問題なくレンダリングされます。

テクスチャデータは、glCompressedTexImage2Dを使用してコミットされます。

DXT1、DXT3、DXT5を試しました。

どうしてですか?圧縮はサポートされていないようですが、テクスチャ圧縮を使用するのは安全ですか?

答えて

2

私は、GL_EXT_texture_compression_s3tcの欠落したサポートは、圧縮されたフォーマットを使用できないとは限りません。彼らはとにかくサポートされるかもしれません。 glCompressedTexImage2D doc page for ES2から

引用:

テクスチャ画像が指定internalformatを規定する拡張仕様 に従って復号されます。 OpenGL ES(...)は、 拡張によって提供される形式の記号定数を得るための メカニズムを提供します。 サポートされている圧縮テクスチャ形式の数は、GL_NUM_COMPRESSED_TEXTURE_FORMATSの値を照会して取得した にすることができます。 サポートされている特定の圧縮テクスチャ形式のリストは、GL_COMPRESSED_TEXTURE_FORMATSという値をクエリして取得した にすることができます。

GL_EXT_texture_compression_s3tcについては何もありません。彼らの '擬似標準化された'(私は - 拡張された)代替がサポートされているものとしてリストされていなくても、様々な機能のサポートが実装されるかもしれません。

おそらくフォーマットが実際がサポートされている圧縮され、学ぶためにglGetIntegerv()を使用してこれらの定数(GL_NUM_COMPRESSED_TEXTURE_FORMATSGL_COMPRESSED_TEXTURE_FORMATS)を照会する必要があります。