美文网首页iOS技术
OpenGL ES学习笔记3:纹理效果设置

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

作者: 南华coder | 来源:发表于2017-03-01 12:09 被阅读68次

在上一篇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

相关文章

网友评论

    本文标题:OpenGL ES学习笔记3:纹理效果设置

    本文链接:https://www.haomeiwen.com/subject/kinxgttx.html