美文网首页
6.纹理(上)

6.纹理(上)

作者: bytebytebyte | 来源:发表于2020-12-12 10:11 被阅读0次

    1.图像存储空间计算?
    图像存储空间=图片width图片height每个像素的字节数
    RGB需要一个字节即8位。
    2.宽度199像素点,图片每行需要多少存储空间?
    199*3= 597B
    3.后缀.tga是OpenGL纹理文件,而png,JPG属于压缩图片。
    4.如何使用纹理呢?
    //1.读取文件
    void glReadPixels(GLint x,GLint y,GLSizei width,GLSizei height, GLenu
    m format, GLenum type,const void * pixels);
    //2.载入纹理
    void glTexImage2D(GLenum target,GLint level,GLint internalformat,GLsi
    zei width,GLsizei height,GLint border,GLenum format,GLenum type,void

    • data);
      //3.分配纹理对象
      指定纹理对象的数量和指针:指针指向一个无符号整形数组,由纹理对象标识符填充
      void glGenTextures(GLsizei n,GLuint * textTures);
      //4.绑定纹理对象 GL_TEXTURE_1D、GL_TEXTURE_2D、GL_TEXTURE_3D
      需要绑定的
      void glBindTexture(GLenum target,GLunit texture);
      //5.删除绑定纹理对象
      void glDeleteTextures(GLsizei n,GLuint *textures);
      //6.测试纹理对象是否有效
      GLboolean glIsTexture(GLuint texture);
      //7.设置纹理的相关参数
      放大缩小邻近线性过滤
      glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
      纹理缩小时一般使用邻近过滤(出现小正方形但清晰)
      glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
      纹理放大时一般使用线性过滤(无小正方形但模糊)
      glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
      glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);

    设置x轴y轴环绕方式
    //x,y,z,w
    //s,t,r,q
    glTextParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAR_S,GL_CLAMP_TO_EDGE);
    glTextParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAR_T,GL_CLAMP_TO_EDGE);

    相关文章

      网友评论

          本文标题:6.纹理(上)

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