zoukankan      html  css  js  c++  java
  • gluBuild2DMipmaps与glTexImage2D与glGenTexture()函数

    转自:http://blog.csdn.net/stilling2006/article/details/5549310

    gluBuild2DMipmaps与glTexImage2D两者的都是从图片生成纹理,即将图片加载到内存中。

    glTexImage2D()的用法举例

    glTexImage2D(GL_TEXTURE_2D, //此纹理是一个2D纹理
                                  0,                                    //代表图像的详细程度, 默认为0即可
                                   3,                                   //颜色成分
                                  TextureImage[0]->sizeX,          //纹理的宽度
                                  TextureImage[0]->sizeY,          //纹理的高度
                                  0,                                         //边框的值
                                 GL_RGB,                               //告诉OpenGL图像数据由红、绿、蓝三色数据组成
                                 GL_UNSIGNED_BYTE,                //组成图像的数据是无符号字节类型
                                 TextureImage[0]->data);          //告诉OpenGL纹理数据的来源,此例中指向存放在TextureImage[0]记录中的数据

    这个函数的第二个参数,如果我们设为0时,指的是原图,当我们想用相应的LOD的mipmap时,即经过图像融合的图片时,我们需要自己手动处理融合图像,而gluBuild2DMipmaps()可以自动生成不同细节层次的图片,即不同精细程度的图片。

    gluBuild2DMipmaps()的用法举例

    gluBuild2DMipmaps(GL_TEXTURE_2D,//此纹理是一个2D纹理
                                              3,                                   //颜色成分
                                               TextureImage[0]->sizeX,               //纹理的宽度
                                               TextureImage[0]->sizeY,               //纹理的高度
                                               GL_RGB,                                      //告诉OpenGL图像数据由红、绿、蓝三色数据组成
                                               GL_UNSIGNED_BYTE,                     //组成图像的数据是无符号字节类型
                                               TextureImage[0]->data);             //告诉OpenGL纹理数据的来源,此例中指向存放在TextureImage[0]记录中的数据

    使用注意事项
      
    使用glTexImage2D()时所采用的位图文件分辨率必须为:64×64、128×128、256×256三种格式,如果其他大小则会出现绘制不正常。gluBuild2DMipmaps()支持任意分辨率位图文件。

    转自:http://blog.sina.com.cn/s/blog_9f4bc8e301014gza.html

    glGenTexture()函数作用与上面二者不同,它是用来用来产生你要操作的纹理对象的索引的

    glGenTextures(GLsizei n, GLuint *textures)函数说明 

    n:用来生成纹理的数量 

    textures:存储纹理索引的

    比如你告诉OpenGL,我需要5个纹理对象(GLsizei n),它会从没有用到的整数里返回5个给你,存储在(GLuint *textures)中。

  • 相关阅读:
    poj 1200 crasy search
    cdoj 1092 韩爷的梦
    fzu 2257 saya的小熊饼干
    zoj 3950 how many nines
    zoj 3963 heap partion
    fzu 2256 迷宫
    fzu 2253 salty fish
    hdu 2473 Junk-Mail Filter
    codeforces 129B students and shoes
    hdu 3367 Pseudoforest
  • 原文地址:https://www.cnblogs.com/qingsunny/p/2980727.html
Copyright © 2011-2022 走看看