opengl:texturefileformat
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
opengl:texturefileformat [2015/07/04 02:49] – [DDS] oga | opengl:texturefileformat [2015/07/04 03:03] – [PKM] oga | ||
---|---|---|---|
行 30: | 行 30: | ||
DirectX7 以前の DirectDrawSurface 構造をそのままファイルに書き込んだもの。 | DirectX7 以前の DirectDrawSurface 構造をそのままファイルに書き込んだもの。 | ||
Realtime 3D のテクスチャ画像形式としては非常に扱いやすく、対応ツールも多いのでほぼ標準として使われています。 | Realtime 3D のテクスチャ画像形式としては非常に扱いやすく、対応ツールも多いのでほぼ標準として使われています。 | ||
+ | [[: | ||
* [[: | * [[: | ||
行 47: | 行 48: | ||
* FourCC で容易に新規フォーマット対応ができる | * FourCC で容易に新規フォーマット対応ができる | ||
* 古くから用いられており非常に多くのツールが対応している | * 古くから用いられており非常に多くのツールが対応している | ||
- | * ヘッダ長が固定で読み込みが容易 (D3D10 拡張ヘッダの導入によりこの利点は失われました) | + | * ヘッダ長が固定で読み込みが容易 (DX10 拡張ヘッダの導入によりヘッダサイズは必ずしも固定ではなく 2 種類に増えました) |
逆に言えばこれらの特徴を満たす画像フォーマットが他に存在しませんでした。 | 逆に言えばこれらの特徴を満たす画像フォーマットが他に存在しませんでした。 | ||
行 120: | 行 121: | ||
</ | </ | ||
+ | |||
+ | <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: | 行 173: | ||
* 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: | 行 201: | ||
* 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: | 行 248: | ||
< | < | ||
- | 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, | ||
</ | </ |
opengl/texturefileformat.txt · 最終更新: 2015/07/04 03:11 by oga