opengl:texturefileformat
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
opengl:texturefileformat [2015/07/04 02:51] – [DDS] oga | opengl:texturefileformat [2015/07/04 03:11] (現在) – [ASTC] oga | ||
---|---|---|---|
行 2: | 行 2: | ||
- | ^ file format | + | ^ file format |
- | ^ ::: ^ ::: ^ ::: ^ ::: ^ ::: ^ ::: ^ ::: ^ ::: ^ 3D ^ ::: | + | ^ ::: ^ ::: ^ ::: ^ ::: ^ ::: ^ ::: ^ ::: |
- | | DDS (.dds) | + | | DDS (.dds) |
- | | KTX (.ktx) | + | | KTX (.ktx) |
- | | PVR (.pvr) | + | | PVR (.pvr) |
- | | PKM (.pkm) | + | | PKM (.pkm) |
- | | ASTC (.astc) | | + | | ASTC (.astc) | |
* (a) = Qualcomm(ATI) のコンバータが FourCC を使って格納。おそらく独自仕様。元は Direct3DM 向け。Array 不可 | * (a) = Qualcomm(ATI) のコンバータが FourCC を使って格納。おそらく独自仕様。元は Direct3DM 向け。Array 不可 | ||
* (b) = PVRTC 独自仕様。FourCC で格納。Array 不可 | * (b) = PVRTC 独自仕様。FourCC で格納。Array 不可 | ||
- | * (d) = ASTC の 3D BLOCK 圧縮のみ格納可能。 | + | * (d) = DXGI_FORMAT 表現可能なフォーマットのみ Array を格納可能。DX10 拡張ヘッダ必須。 |
- | * (e) = DXGI_FORMAT 表現可能なフォーマットのみ Array を格納可能。D3D10 拡張ヘッダ必須。 | + | * (e) = ETC1 のみ格納可能。 |
+ | * (f) = ASTC の 3D BLOCK 圧縮のみ格納可能。 | ||
行 30: | 行 32: | ||
DirectX7 以前の DirectDrawSurface 構造をそのままファイルに書き込んだもの。 | DirectX7 以前の DirectDrawSurface 構造をそのままファイルに書き込んだもの。 | ||
Realtime 3D のテクスチャ画像形式としては非常に扱いやすく、対応ツールも多いのでほぼ標準として使われています。 | Realtime 3D のテクスチャ画像形式としては非常に扱いやすく、対応ツールも多いのでほぼ標準として使われています。 | ||
+ | [[: | ||
* [[: | * [[: | ||
行 120: | 行 123: | ||
</ | </ | ||
+ | |||
+ | <code cpp> | ||
+ | enum { | ||
+ | KTX_HEADER_MAGIC0 | ||
+ | KTX_HEADER_MAGIC1 | ||
+ | KTX_HEADER_MAGIC2 | ||
+ | KTX_HEADER_ENDIAN | ||
+ | }; | ||
+ | |||
+ | struct T_KTXHEADER { // 64byte | ||
+ | UI32 Identifier[3]; | ||
+ | UI32 endianness; | ||
+ | UI32 glType; | ||
+ | UI32 glTypeSize; | ||
+ | UI32 glFormat; | ||
+ | UI32 glInternalFormat; | ||
+ | UI32 glBaseInternalFormat; | ||
+ | UI32 pixelWidth; | ||
+ | UI32 pixelHeight; | ||
+ | UI32 pixelDepth; | ||
+ | UI32 numberOfArrayElements; | ||
+ | UI32 numberOfFaces; | ||
+ | UI32 numberOfMipmapLevels; | ||
+ | UI32 bytesOfKeyValueData; | ||
+ | public: | ||
+ | bool IsCompressed() const | ||
+ | { | ||
+ | return | ||
+ | } | ||
+ | }; | ||
+ | </ | ||
行 141: | 行 175: | ||
* PVRTC-2 対応 | * PVRTC-2 対応 | ||
* データ並びが KTX 順 | * データ並びが KTX 順 | ||
+ | |||
+ | <code cpp> | ||
+ | struct T_PVR3HEADER { // 13x4 = 52 | ||
+ | unsigned int Version; | ||
+ | unsigned int Flags; | ||
+ | unsigned int PixelFormat[2]; | ||
+ | unsigned int ColorSpace; | ||
+ | unsigned int ChannelType; | ||
+ | unsigned int Height; | ||
+ | unsigned int Width; | ||
+ | unsigned int Depth; | ||
+ | unsigned int Surfaces; | ||
+ | unsigned int Faces; | ||
+ | unsigned int MipMapCount; | ||
+ | unsigned int MetaDataSize; | ||
+ | }; | ||
+ | </ | ||
< | < | ||
行 152: | 行 203: | ||
* PVRTC-2 非対応 | * PVRTC-2 非対応 | ||
* データ並びが DDS 順 | * データ並びが DDS 順 | ||
+ | |||
+ | |||
< | < | ||
( ( ( width * height ) * mip ) * [cube_face or volume_depth] ) | ( ( ( width * height ) * mip ) * [cube_face or volume_depth] ) | ||
+ | </ | ||
+ | |||
+ | |||
+ | <code cpp> | ||
+ | struct T_PVR2HEADER { | ||
+ | unsigned int hsize; | ||
+ | unsigned int height; | ||
+ | unsigned int width; | ||
+ | unsigned int miplevel; | ||
+ | unsigned int tformat; | ||
+ | unsigned int datasize; | ||
+ | unsigned int bpp; // bpp | ||
+ | unsigned int redmask; | ||
+ | unsigned int greenmask; | ||
+ | unsigned int bluemask; | ||
+ | unsigned int alphamask; | ||
+ | unsigned int magic; | ||
+ | unsigned int depth; | ||
+ | }; | ||
</ | </ | ||
行 178: | 行 250: | ||
< | < | ||
- | version 1.0 | + | version 1.0 |
type: 0=ETC1-RGB, 1=ETC1-RGBA, | type: 0=ETC1-RGB, 1=ETC1-RGBA, | ||
- | version 2.0 | + | version 2.0 |
type: 0=ETC1_RGB, 1=ETC2_RGB, 2=ETC2_RGBA_OLD, | type: 0=ETC1_RGB, 1=ETC2_RGB, 2=ETC2_RGBA_OLD, | ||
</ | </ | ||
行 211: | 行 283: | ||
+ | |||
+ | ===== 更新 ===== | ||
+ | |||
+ | * 2015/07/04 : 表を更新、ASTC format 追加、ktx, | ||
opengl/texturefileformat.1435945873.txt.gz · 最終更新: 2015/07/04 02:51 by oga