OpenGL ES 纹理设置

本文详细介绍了OpenGL ES中的纹理过滤,包括纹理拉伸的三种模式:重复、边缘固定和镜像重复。接着讲解了纹理采样,如最近点采样和线性纹理采样,并指出线性采样在放大映射中的优势。此外,文章还讨论了MIPMAP纹理,用于优化缩小映射时的细节丢失,并展示了如何在OpenGL ES中设置和使用MIPMAP纹理。
摘要由CSDN通过智能技术生成

纹理过滤

纹理拉伸:重复拉伸和截取拉伸

用于指定纹理坐标超过(00.0,1.0)范围时所发生的行为,使用glTexParameterf函数指定,GL_TEXTURE_WRAP_S 定义 s 坐标超出范围[0.0, 1.0]的情况,GL_TEXTURE_WRAP_T 设定 t 坐标。

  • GL_REPEAT 重复纹理,超过1的部分其实只看它的小数部分,也就是说比如纹理坐标为2.4,那么相当于取样0.4处的纹理值。
  • GL_CLAMP_TO_EDGE 采样纹理边缘,不想要任何格式的重复,应该使用 GL_CLAMP_TO_EDGE,超过1的部分都当成1.
  • GL_MIRRORED_REPEAT 重复纹理和镜像,在重复的基础上呈现镜像效果。

在立方体纹理的例子上,修改一下vertices数组,增加一个变量i

float vertices[] = new float[] {
                // 顶点             颜色            纹理坐标
                //前面
                0, 0, 1,  1,1,1,0,  0.5f*i, 0.5f*i,
                1, 1, 1,  1,0,0,0,  1.0f*i, 0.0f*i,
                -1, 1, 1,  1,0,0,0,  0.0f*i, 0.0f*i,
                0, 0, 1,  1,1,1,0,  0.5f*i, 0.5f*i,
                -1, 1, 1,  1,0,0,0,  0.0f*i, 0.0f*i,
                -1,-1, 1,  1,0,0,0,  0.0f*i, 1.0f*i,
                0, 0, 1,  1,1,1,0,  0.5f*i, 0.5f*i,
                -1,-1, 1,  1,0,0,0,  0.0f*i, 1.0f*i,
                1,-1, 1,  1,0,0,0,  1.0f*i, 1.0f*i,
                0, 0, 1,  1,1,1,0,  0.5f*i, 0.5f*i,
                1,-1, 1,  1,0,0,0,  1.0f*i, 1.0f*i,
                1, 1, 1,  1,0,0,0,  1.0f*i, 0.0f*i,
                //后面
                0, 0,-1,  1,1,1,0,  0.5f*i, 0.5f*i,
                1, 1,-1,  1,0,0,0,  1.0f*i, 0.0f*i,
                1,-1,-1,  1,0,0,0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值