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);

 

转载于:https://www.cnblogs.com/wubugui/p/4299816.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值