OpenGL ES:纹理参数设置

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:39   922   0

在使用OpenGL ES渲染视频流时,需要将图像以纹理的方式送入渲染,这个过程需要设置纹理的相关参数,包括纹理的拉伸方式和纹理的过滤方式。OpenGL ES设置纹理参数的函数是 glTexParameterx( x 可以是 i 或 f 等),函数原型是

void glTexParameteri(int target, int pname, int   param);
void glTexParameterf(int target, int pname, float param);

target: 目标纹理

GL_TEXTURE_1D
GL_TEXTURE_2D
GL_TEXTURE_3D
GL_TEXTURE_EXTERNAL_OES(Android特有的OES纹理, 预览相机或者视频使用)

pname: 纹理参数

GL_TEXTURE_MIN_FILTER    // 纹理大于渲染屏幕, 将会有一部分像素无法映射到屏幕上, 纹理要缩小
GL_TEXTURE_MAG_FILTER    // 纹理小于渲染屏幕, 没有足够的像素映射到屏幕上, 纹理要放大
GL_TEXTURE_WRAP_S        // 相当于纹理的x轴, 设置纹理x轴的延伸方式
GL_TEXTURE_WRAP_T        // 相当于纹理的y轴, 设置纹理y轴的延伸方式

param: 纹理参数值

GL_NEAREST               // 临近插值
GL_LINAER                // 线性插值
GL_CLAMP_TO_EDGE         // 边界像素延伸
GL_REPEAT                // 重复
GL_MIRRORED_REPEAT       // 镜像重复

一些常用的设置方式

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP