繁体   English   中英

ios opengles sample texture error (use stb_image)而android ok

[英]ios opengles sample texture error (use stb_image)while android is ok

我使用stb_image加载纹理,比如

stbi_set_flip_vertically_on_load(true);
GLuint textureID;
glGenTextures(1, &textureID);
int width, height, nrComponents;
unsigned char *data = stbi_load(path, &width, &height, &nrComponents, 0);

GLenum format;
if (nrComponents == 1) {
    format = GL_RED;
} else if (nrComponents == 3) {
    format = GL_RGB;
} else {
    format = GL_RGBA;
}

glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0, format, GL_UNSIGNED_BYTE, data);
glGenerateMipmap(GL_TEXTURE_2D);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

同样的代码在 android 是可以的,而在 ios 渲染结果有问题: ios

安卓

如果设置 stbi_set_flip_vertically_on_load(false): 在此处输入图像描述

可能是深度误差,depth is culling off

问题是 GLKView 没有设置深度缓冲区,只需添加一行代码: view.drawableDepthFormat = GLKViewDrawableDepthFormat24;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM