Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.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
Ios 使用OpenGL ES在iPhone上渲染到立方体贴图_Ios_Objective C_Swift_Iphone_Opengl Es - Fatal编程技术网

Ios 使用OpenGL ES在iPhone上渲染到立方体贴图

Ios 使用OpenGL ES在iPhone上渲染到立方体贴图,ios,objective-c,swift,iphone,opengl-es,Ios,Objective C,Swift,Iphone,Opengl Es,我正在尝试使用以下代码在iPhone上生成动态立方体贴图: GLuint textureCubeMap; glGenTextures(1, &textureCubeMap); glBindTexture(GL_TEXTURE_CUBE_MAP, textureCubeMap); for (int i = 0; i < 6; i++) { glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, 256, 256

我正在尝试使用以下代码在
iPhone
上生成动态立方体贴图:

GLuint textureCubeMap;
glGenTextures(1, &textureCubeMap);
glBindTexture(GL_TEXTURE_CUBE_MAP, textureCubeMap);

for (int i = 0; i < 6; i++) {
    glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, 256, 256, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, 0);
}

GLuint framebuffer;
glGenFramebuffers(1, &framebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_CUBE_MAP_POSITIVE_X, textureCubeMap, 0);

GLenum framebufferStatus = glCheckFramebufferStatus(GL_FRAMEBUFFER);
if (framebufferStatus == GL_FRAMEBUFFER_UNSUPPORTED) {
    Log("Unsupported");
} else if (framebufferStatus == GL_FRAMEBUFFER_COMPLETE) {
    Log("All is OK");
}
GLuint纹理贴图;
glGenTextures(1,和textureCubeMap);
glBindTexture(GL_纹理_立方体_贴图,TextureCube贴图);
对于(int i=0;i<6;i++){
GLTEXAGE2D(GL_纹理_立方体_贴图_正X+i,0,GL_RGB,256,256,0,GL_RGB,GL_无符号_短_5_6_5,0);
}
GLuint帧缓冲区;
GLGEN帧缓冲区(1和帧缓冲区);
glBindFramebuffer(GL_FRAMEBUFFER,FRAMEBUFFER);
glFramebufferTexture2D(GL_帧缓冲区,GL_颜色,GL_附件0,GL_纹理,GL_立方体,GL_贴图,GL_正片,textureCubeMap,0);
GLenum framebufferStatus=glCheckFramebufferStatus(GL_FRAMEBUFFER);
if(framebufferStatus==GL\u FRAMEBUFFER\u不受支持){
日志(“无支持”);
}else if(framebufferStatus==GL\u FRAMEBUFFER\u COMPLETE){
日志(“一切正常”);
}
当我在
iOS
模拟器上运行此代码时,我在控制台中看到
All is OK
消息。

但是在带有iOS 7的iPhone 5上运行
。据我所知,iPhone不支持渲染到立方体贴图。但我知道这是可能的,因为我看到了这种效果的比赛。所以我的问题是:使用
opengles
iPhone
上生成动态立方体地图的正确方法是什么

尝试将呼叫更改为以下内容:

glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, 256, 256, 0, GL_RGB, GL_UNSIGNED_BYTE, 0);

希望这有帮助。

很有趣。当我看到这个问题时,我已经查过了,ES 2.0规范将RGB565列为一种颜色可渲染格式。基于这一点,原来的海报所尝试的似乎应该奏效。您知道此限制是否仅适用于立方体贴图或任何RGB565纹理?