Cocos2D / 3D:如何生成和加载压缩纹理?

时间:2014-03-12 20:07:08

标签: cocos2d-iphone textures cocos3d

我正在搞乱PVRTexTool GUI,但应用程序只能正确显示未压缩的32位纹理。到目前为止,我已尝试过所有OpenGL ES 2.0格式

enter image description here

和一些OpenGL ES 1.0

enter image description here

...但有些人不会加载而其他人会以黑色显示。

我正在使用此代码加载纹理

// load texture
CC3Texture* texture = [CC3Texture textureFromFile:@“my_texture.pvr”];

2 个答案:

答案 0 :(得分:3)

加载纹理的代码没问题,但并不支持PVRTexTool生成的所有格式。

使用命令行工具支持的格式为:

Command:
PVRTexToolCLI -i in.png -o out.pvr -f <format> [-q <quality>] [-m <numberofmipmaps>]

Options:

format
bits    format      Cocos2d  Cocos3d  transparency
32   R8G8B8A8,UBN      y        y          y
16   R8G8B8,UBN        y        y          n        
16   R4G4B4A4,USN      y        y          y
16   R5G5B5A1,USN      y        y          y
16   R5G6B5,USN        y        y          n
16   A8I8,UBN          ?        ?          ?
8    A8,UBN            y        y          y
8    I8                ?        ?          ?
4    PVRTC1_4          y        *          y        
2    PVRTC1_2          y        *          y
4    PVRTC1_4_RGB      y        *          n
2    PVRTC1_2_RGB      y        *          n
4    PVRTC2_4          n        n          ?
2    PVRTC2_2          n        n          ?

? don’t know
* needs 9 mipmaps
y supported
n really :)

quality for PVRTC:

pvrtcfastest
pvrtcfast
pvrtcnormal
pvrtchigh
pvrtcbest



I'll update this table when needed

答案 1 :(得分:1)

查看CC3DemoMashUpScene addSkyBox方法。

在那里,您可以取消注释加载Skybox.pvr文件的行。您还需要取消注释调用initializeScene方法的addSkyBox方法中的行。

Skybox.pvr是一个立方体贴图纹理,包含六个压缩的PVRTC 2bpp纹理。您可以使用PVRTexTool打开此纹理,并将其与您尝试加载的纹理进行比较。