GLKTextureLoader如何从图像条中加载立方体贴图?

时间:2012-08-20 17:46:58

标签: ios opengl-es glktextureloader

有没有办法在OpenGL-ES中使用巨型图像条加载立方体贴图? (或桌面GL或扩展,任何东西)

例如,GLKTextureLoader类提供加载立方体贴图,如果它们是垂直排序的话。我想知道这个功能有一些GL功能,或者类只是在加载时分割纹理。当然,我可以使用这个类,但我想知道在为每一方加载长图像或分开的6个图像之间哪个更有效。

1 个答案:

答案 0 :(得分:1)

我的猜测是,这个函数确实只是在加载图像文件之后将图像分成6组面,然后使用这些来通过标准立方体贴图调用生成标准立方体贴图:

glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X...)
glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_Y...)
etc

请注意,GLKTextureLoader class还定义了cubeMapWithContentsOfFiles,它允许您指定6个单独的图像文件来定义面部纹理。

您可以使用6个文件输入和立方体条输入(cubeMapWithContentsOfFile)检查设置立方体贴图所需的时间。运行得更快将取决于加载6个文件是否比加载一个大文件并让方法拆分它更快。否则,我打赌两个函数之间的所有其余代码都是相同的,并使用上面标准的立方体贴图纹理调用。

由于GLKit是Apple专有的,我们不能只使用大多数OpenGl函数来查看源代码。