使用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);
}
参考: