美文网首页
OpenGL ES纹理

OpenGL ES纹理

作者: simple_0955 | 来源:发表于2018-02-08 11:56 被阅读0次

    1,纹理
    【1】什么是纹理:
    定义:在计算机图形学中,纹理既包括通常意义上物体表面的纹理。也就是我们土话所讲的使物体表面呈现凹凸不平的沟纹,同时也包括在物体的光滑表面上的彩色图案,通常我们更多地称之为花纹。
    这些在OpenGL里面都是纹理,而且表示方式一样
    【2】纹理的基本原理
    纹理映射就是在物体的表面上绘制彩色的图案。
    【3】纹理映射的过程
    纹理映射的基本思想就是 首先为图元中的每个顶点指定恰当的纹理坐标,然后通过纹理坐标在纹理图中可以确定选中的纹理区域,最后将选中纹理区域中的内容 根据纹理坐标映射到指定的图元上!


    纹理映射.png

    需要注意的点
    1、纹理坐标系原点在左上侧,向右为S轴,向下为T轴,两轴的取值范围都是 0 ~~ 1;( 也就是说不论实际纹理图尺寸如何,其横向、纵向坐标最大值都是1。)
    (例如:实际图为 521256像素,则横边的第512个像素,对应纹理坐标的1,竖边的第256个像素对应纹理坐标为1)
    2、 纹理尺寸:图片宽高必须为2的n次方!!
    例如:8
    8,16*8。。。。。
    2,实现简单的纹理映射

    3,纹理拉伸
    纹理拉伸有两种方式:
    1.重复拉伸
    修改纹理坐标,
    public float texCoor[]=new float[ ]{
    0.5f ,0,
    0 ,1.5f,
    1.5f ,1.5f
    };
    //=========================================
    然后修改纹理加载方式
    //重用纹理
    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D
    ,GLES20.GL_TEXTURE_WRAP_S //S轴拉伸方式
    ,GLES20.GL_REPEAT); //

    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D
    ,GLES20.GL_TEXTURE_WRAP_T
    ,GLES20.GL_REPEAT);
    2.截取拉伸
    特点:当纹理坐标的值大于一时都看做一
    //截取纹理
    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
    GLES20.GL_TEXTURE_WRAP_S,
    GLES20.GL_CLAMP_TO_EDGE);

    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
    GLES20.GL_TEXTURE_WRAP_T,
    GLES20.GL_CLAMP_TO_EDGE);

    4,纹理采样
    什么是纹理采样:
    根据片元的纹理坐标,到纹理图中提取对应位置颜色的过程。
    1.最近点采样
    原理:对应像素点
    优点:简单,采样最快
    缺点:将小图映射到较大的图元时,会出现明显的锯齿

    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);

    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);

    2.线性采样
    原理:加权平均
    优点:平滑过渡
    缺点:有时候线条边缘会比较模糊
    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
    GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
    MAG和MIN区别
    官方版:当纹理图中的一个像素对应多个片元时,采用mag,反之min
    简化版:纹理比图元小,用mag,反之!
    配合:min与最近点,mag 与 线性采样

    相关文章

      网友评论

          本文标题:OpenGL ES纹理

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