Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl es ETC1纹理的容器格式_Opengl Es_Opengl Es 2.0_Textures - Fatal编程技术网

Opengl es ETC1纹理的容器格式

Opengl es ETC1纹理的容器格式,opengl-es,opengl-es-2.0,textures,Opengl Es,Opengl Es 2.0,Textures,我正在寻找一种支持mipmap、cubemap和3d纹理的格式,用于opengles2.0游戏。在Windows上,我使用.dds格式,因为它支持DXT压缩。对于移动程序,我认为有些.pkm文件不支持多种纹理,有些.pvr文件依赖于PowerVR平台。所以, -我可以使用带有ETC1压缩的.dds吗?是否有许可证问题阻止我在Windows以外的平台上使用.dds -其他GPU供应商的产品(Adreno、Mali等)是否支持.pvr文件?(不是PVRTC,只是带有ETC1压缩的.pvr) -或者是

我正在寻找一种支持mipmap、cubemap和3d纹理的格式,用于opengles2.0游戏。在Windows上,我使用.dds格式,因为它支持DXT压缩。对于移动程序,我认为有些.pkm文件不支持多种纹理,有些.pvr文件依赖于PowerVR平台。所以,

-我可以使用带有ETC1压缩的.dds吗?是否有许可证问题阻止我在Windows以外的平台上使用.dds

-其他GPU供应商的产品(Adreno、Mali等)是否支持.pvr文件?(不是PVRTC,只是带有ETC1压缩的.pvr)


-或者是否有其他文件格式可供我使用?

是的,您可以将DDS用于ETC1。只要发明你自己的FOURCC代码。据我所知,dds没有专利

没有GPU供应商支持pvr文件格式(包括PoverVX)。GPU供应商只关心压缩的纹理数据(PVRTC等,DXTC),而不关心文件格式(png,jpeg,dds,pvr)。用户/应用程序负责解析文件格式以提取纹理数据(压缩或未压缩)

您可以使用任何适合您需要的文件格式。发明你自己的。例如,像这样:

[4 bytes] - width
[4 bytes] - height
[4 bytes] - format id (1 - etc1, 2 - dxt, 3 - ... whatver)
[4 bytes] - count of images (mipmaps/cubemaps/whatever)
[bytes] - data
或者是否有其他文件格式可供我使用

你可能想看看 以及用于创建KTX文件的程序

KTX格式支持带有mipmap的ETC1压缩纹理。它还应该支持其他压缩格式,但我不知道其他工具可以做到这一点(我从来都不需要它)


使用libktx,您可以使用“单”行代码将纹理(带有mipmap)从文件/内存加载到GL对象。如果设备不支持ETC1,它还可以在加载.ktx文件时将ETC1纹理解压缩到GL_RGB(您需要手动设置GLEW_OES_compressed_ETC1_RGB8_纹理,就像这样)

我认为OpenGL ES 2.0不支持3d纹理(规范缺少GLTEXAGE3D/glCompressedTexImage3D)是的,但我的目标平台具有GL_OES_纹理_3D扩展。我认为这在现代移动GPU上非常常见。请注意,Mali400驱动程序/硬件(在SGS2中)不支持此GL_OES_纹理_3D扩展。我最近尝试了KTX,但最初遇到了一些问题(实际上是我启动了该链接上的线程:)。但我现在正在用,谢谢。顺便说一下,Imagination的PVRTexTool也是一个不错的压缩工具。而且它还有更多的格式支持:这个PVR工具看起来不错,但举例来说,PVRTexLib没有源代码,所以我不能在Android上使用它(Android是我的主要目标平台,开发平台是Win+OGLES2 emulator)。我喜欢libktx,因为它简单、免费、开源和跨平台:)PS。我是回答这个问题的人;)