• 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)中。

  • 相关阅读:
    Composite in Javascript
    Model Validation in Asp.net MVC
    HttpRuntime.Cache vs. HttpContext.Current.Cache
    Controller Extensibility in ASP.NET MVC
    The Decorator Pattern in Javascript
    The Flyweight Pattern in Javascript
    Model Binding in ASP.NET MVC
    Asp.net MVC
    jQuery Ajax 实例 全解析
    ASP.NET AJAX入门系列
  • 原文地址:https://www.cnblogs.com/qingsunny/p/2980727.html
Copyright © 2020-2023  润新知