我正在使用我今天下载的最新的pvrtextoolCL。
问题在于它不会生成与apple的texturetool相同的标题或其在线文档中的标题。如果我在gui工具中使用遗留保存,它可以工作,但我需要命令行工具的选项。
是否有其他人遇到此问题,我该怎么做才能解决问题?
答案 0 :(得分:9)
如果Legacy Save As选项适用于您,则您的代码正在解析版本2 PVR纹理标头。最新的PVRTexTool和PVRTexToolCL都使用版本3标头格式V3。
如果您需要命令行,可以
A)使用-pvrlegacy作为命令行参数
B)使用Apple提供的texturetool和XCode来压缩纹理
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中。
答案 1 :(得分:0)
为了补充@Snickers方便的帖子,这里有一个关于添加PVRv3解析的GitHub的要点。它适用于Cocos2D,但看起来它主要来自PVR SDK?