iOS OpenGL ES 3.0: GLKTextureLoader 设置Texture纹理采样模式

使用GLKTextureLoader的textureWith系列函数创建纹理时,对于非Mip纹理,GLKit自动设置如下采样模式:

  • GL_TEXTURE_MIN_FILTER: GL_LINEAR
  • GL_TEXTURE_MAG_FILTER: GL_LINEAR
  • GL_TEXTURE_WRAP_S: GL_CLAMP_TO_EDGE
  • GL_TEXTURE_WRAP_T: GL_CLAMP_TO_EDGE

设置新采样模式的办法是在textureWith系列函数的completionHandler进行,示例如下

- (void)textureWithCGImage:cgImage
                   options:nil
                     queue:nil
         completionHandler:(^GLKTextureLoaderCallback) (GLKTextureInfo *textureInfo, NSError *outError) {
    if (outError) {
        return ;
    }
    // 设置新采样模式
    glEnable(GL_TEXTURE_2D);  // 非必需
    glBindTexture(GL_TEXTURE_2D, textureInfo.name);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
}

参考:

How do I repeat a texture with GLKit?

你可能感兴趣的:(iOS OpenGL ES 3.0: GLKTextureLoader 设置Texture纹理采样模式)