簡體   English   中英

使用 OpenGL ES 在 iPhone 上渲染到立方體貼圖

[英]Render to cube map on iPhone using 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, 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");
}

當我在iOS模擬器上運行此代碼時,我在控制台中看到All is OK消息。
但是在裝有iOS 7 iPhone 5上運行會打印Unsupported消息。 據我了解,iPhone 不支持渲染到立方體貼圖。 但是我知道這是可能的,因為我看到了具有這種效果的游戲。 所以我的問題是:使用OpenGL ESiPhone上生成動態立方體貼圖的正確方法是什么?

嘗試將呼叫更改為以下內容:

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

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM