Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/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
Iphone 映射非二次幂纹理_Iphone_Ios_Opengl Es - Fatal编程技术网

Iphone 映射非二次幂纹理

Iphone 映射非二次幂纹理,iphone,ios,opengl-es,Iphone,Ios,Opengl Es,我需要将12x6纹理映射到某个12x6多边形。问题是纹理的大小必须是两倍(所以我必须使用16x8的纹理,否则opengl会为我调整纹理大小,导致多边形边界出现空白点)。我在这里读了一些关于这个问题的帖子,但大多数都是指我不想使用的GL\u APPLE\u texture\u 2D\u limited\u npot扩展 我尝试将我的12x6图像放在16x8纹理的左上角,并使用以下纹理坐标:0.0、0.0、0.75、0.75,但无法使用GL\u repeat重复纹理(用于其他大小的多边形,如186x

我需要将12x6纹理映射到某个12x6多边形。问题是纹理的大小必须是两倍(所以我必须使用16x8的纹理,否则opengl会为我调整纹理大小,导致多边形边界出现空白点)。我在这里读了一些关于这个问题的帖子,但大多数都是指我不想使用的
GL\u APPLE\u texture\u 2D\u limited\u npot
扩展

我尝试将我的12x6图像放在16x8纹理的左上角,并使用以下纹理坐标:
0.0、0.0、0.75、0.75
,但无法使用
GL\u repeat
重复纹理(用于其他大小的多边形,如186x6)

我还尝试使用
GL\u TEXTURE\u CROP\u RECT\u OES
参数,如下所示:

int cropRect[] = {0.0f, 0.0f, 0.75f, 0.75f};
glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, cropRect); 
但它似乎没有任何影响

有没有人碰到这个问题并成功地解决了


谢谢

我假设这是针对OpenGL ES 1.1的,因为2.0本机支持NPOT纹理。出于好奇,您为什么害怕依赖于
GL\u APPLE\u texture\u 2D\u limited\u npot
扩展?自从iPhone 3G S以来,每台iOS设备都支持这一点,大约占所有活动设备的97-98%。嗨,Brad,据我所知,并非所有设备都支持这一点,即使我们谈论一些,我仍然希望支持这一问题。无论如何,我设法通过操纵我的图像来满足POT的要求来“解决”它。(如果可以的话,我仍然对解决方案感兴趣)对于iOS设备,只有原始的iPhone、iPhone 3G以及第一代和第二代iPod Touch不支持OpenGL ES 2.0。所有其他iOS设备都支持,并且也支持NPOT纹理。每台运行iOS 5.0的设备都支持NPOT纹理,与OpenGL ES 2.0兼容的设备约占当前该领域所有活动iOS设备的97-98%。我想说,您可以放心地假设NPOT支持,而不是竭尽全力支持旧硬件。