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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容