zoukankan      html  css  js  c++  java
  • OpenGL纹理高级

    矩形纹理

    对于二维纹理来说,除了GL_TEXTURE_2D之外,使用GL_TEXTURE_RECTANGLE就可以使用矩形纹理。

    矩形纹理几大特点:

    不能Mip,只能加载glTexImage2D的level 0
    纹理坐标非标准化
    不支持压缩纹理

    这种方式通常用于处理和提交图像数据的应用,比起通常的2D纹理硬件支持也更加简单,效率更高。

    GLSL采样器sampler2D --> samplerRect

    多重纹理

    多重纹理支持查询:

    GLint n;
    glGetItegerv(GL_MAX_TEXTURE_UNITS,&n);

    使用多重纹理

    纹理数组

    使用GL_TEXTURE_2D_ARRAY作为相关函数的第一个参数。使用GLTexImage3D加载一组图像。
    可以将最后一个参数设置为NULL,GL将会使其保持未初始化状态,然后在后面使用glTexSubImage3D循环加载所有的图像。

    在GLSL中使用uniform sampler2DArray进行采样

    纹理代理

    使用纹理代理可以查询支持的纹理信息。

    创建一个纹理代理就像创建一个纹理一样,但是第一个参数应该是下列之一:

    GL_PROXY_TEXTURE_1D
    GL_PROXY_TEXTURE_2D 
    GL_PROXY_TEXTURE_3D
    GL_PROXY_TEXTURE_CUBE_MAP

    最后一个参数应该为NULL。

    值得注意的是,这并不是真的创建了一个纹理。

    在创建之后我们就可以向下面这样来查询相应的信息了(这个意思就是,我们先把指定的值赋给他,然后来查询这个值到底是多少):

    glTexImage2D(GL_PROXY_TEXTURE_2D,0,GL_RGBA,2048,4096,0,GL_BGRA,GL_UNSIGNED,NULL);
    //查看是否支持4096的高度
    void glGetTexLevelParameter(GL_TEXTURE_2D,0,GL_TEXTURE_HEIGHT,&height);
  • 相关阅读:
    Assembly之instruction之CMP
    Assembly之Instruction之Byte and Word
    MSP430之section(1)
    MSP430之software development flow
    openMSP430之Custom linker script
    CDC之Synchronizers
    CDC之Metastability
    Embedded之Stack之三
    Embedded之Stack之二
    Embedded之Stack之一
  • 原文地址:https://www.cnblogs.com/wubugui/p/4299816.html
Copyright © 2011-2022 走看看