OpenGL ES学习笔记3:纹理效果设置

在上一篇OpenGL ES学习笔记2: 使用shader(着色器)展现图片中介绍了纹理环绕和纹理过滤的概念和设置,但是没有直观展示的效果,在这里通过代码,展示改变纹理的环绕和过滤方式带来的效果变化

<h5>一、上效果图</h5>

  • 以下所有的效果都是 小纹理来填充大图形,不同纹理设置造成不同的效果。
1、线性过滤+边缘约束.png

说明:这张图的效果的直观感觉是:模糊和边缘被拉伸。模糊的原因是因为纹理过滤 采用的是 ** GL_LINEAR(线性过滤) ** ;纹理环绕 采用的是 GL_CLAMP_TO_EDGE

2、线性过滤+重复纹理环绕.png

说明:这张图的效果的直观感觉是:模糊。模糊的原因是因为纹理过滤 采用的是 ** GL_LINEAR(线性过滤) ** 。

3、邻近过滤+边缘约束.png

说明:这张图的效果的直观感觉是:拉伸。拉伸的原因是因为纹理环绕 采用的是 GL_CLAMP_TO_EDGE

4、邻近过滤+重复纹理环绕.png

说明:这张图的效果是比较理想的:纹理环绕 采用的是 ** GL_REPEAT(重复纹理),纹理过滤 采用的是 ** GL_LINEAR(线性过滤)

<h5>二、主要代码</h5>

- (void)updateTextureParameter{

    glTexParameteri(self.baseEffect.texture2d0.target,
                GL_TEXTURE_WRAP_S,
                self.shouldRepeatTexture ? GL_REPEAT : GL_CLAMP_TO_EDGE);

    //放大(少数纹素映射片元)
    glTexParameteri(self.baseEffect.texture2d0.target,
                GL_TEXTURE_MAG_FILTER,
                self.shouldUseNearestFilter ? GL_NEAREST : GL_LINEAR);
}

代码直通车:QSOpenGLES002_Texture

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容