我正在使用今天下载的最新pvrtextoolCL。
问题是,它产生的标题与苹果的texturetol或在线文档中的标题不同。如果我在gui工具中使用传统的保存,它是有效的,但我需要命令行工具的选项。
其他人有这个问题吗?我能做些什么来解决它?
如果Legacy Save As选项对您有效,那么您的代码将解析Version2 PVR Texture标头。最新的PVRTexTool和PVRTexToolCL都使用版本3的头格式V3。
如果你需要命令行,你可以选择
A) 使用-pvregacy作为命令行参数
B) 使用苹果XCode提供的texturetol来压缩你的纹理
C) 更新代码以解析版本3 PVR纹理标头
版本2 PVR纹理头
typedef struct _PVRTexHeader
{
uint32_t headerLength;
uint32_t height;
uint32_t width;
uint32_t numMipmaps;
uint32_t flags;
uint32_t dataLength;
uint32_t bpp;
uint32_t bitmaskRed;
uint32_t bitmaskGreen;
uint32_t bitmaskBlue;
uint32_t bitmaskAlpha;
uint32_t pvrTag;
uint32_t numSurfs;
} PVRTexHeader;
版本3 PVR纹理头
typedef struct _PVRTexHeaderV3{
uint32_t version;
uint32_t flags;
uint64_t pixelFormat;
uint32_t colourSpace;
uint32_t channelType;
uint32_t height;
uint32_t width;
uint32_t depth;
uint32_t numSurfaces;
uint32_t numFaces;
uint32_t numMipmaps;
uint32_t metaDataSize;
} PVRTexHeaderV3;
如果你想解析版本3的纹理标头,请从以下位置获取PowerVR SDK:
http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp
并查看PVRTTexture.h标头。它将具有用于定义标志的所有枚举,以及用于元数据的附加结构。SDK中还有用于读取文件并将其加载到OpenGL中的示例代码。
为了补充@Snickers的便利帖子,这里有一个在GitHub上添加PVRv3解析的要点。它是为Cocos2D设计的,但看起来主要来自PVR SDK?
https://gist.github.com/robertjpayne/2928080