第二十七章 纹理总结

本文介绍了OpenGL中的纹理环绕方式,包括GL_REPEAT、GL_MIRRORED_REPEAT、GL_CLAMP_TO_EDGE和GL_CLAMP_TO_BORDER,以及如何使用glTexParameter进行设置。此外,文章还详细讲解了纹理过滤,如GL_NEAREST和GL_LINEAR,以及多级渐远纹理的概念和过滤模式。通过glGenerateMipmaps函数生成多级渐远纹理,并讨论了如何避免生硬边界。最后,文章涵盖了加载图像、生成纹理、纹理坐标、纹理单元的使用,以及GLSL中的纹理采样和混合操作。
摘要由CSDN通过智能技术生成

OpenGL


纹理是左下角(0,0) 右上角(1,1)。

需要告诉OpenGL纹理环绕方式,主要有四种:GL_REPEAT(重复纹理图像),GL_MIRRORED_REPEAT(重复纹理图像,但是每次重复图片是镜像放置的),
GL_CLAMP_TO_EDGE(坐标再0-1直接,超出部分会重复纹理坐标的边缘,有边缘拉伸效果),GL_CLAMP_TO_BORDER(超出坐标为指定的边缘颜色)
使用glTexParameter可以对纹理环绕方式进行设置,坐标分别是STR,对应XYZ
使用带后缀的glTexParameteri。其中第一个参数:使用2D纹理(GL_TEXTURE_2D);第二个参数代表纹理轴(GL_TEXTURE_WRAP_S 或T/R);第三个参数是环绕方式
补充:如果第三个参数使用GL_CLAMP_TO_BORDER,则还需要指定一个边缘颜色,需要使用后缀是fv的glTexParameterfv。用GL_TEXTURE_BORDER_COLOR作为它的选项,并且传递一个float数组作为边缘的颜色值

下一步需要将纹理像素映射到纹理坐标。首选学习的是纹理过滤,最重要的两种是:GL_NEAREST(邻近过滤——默认的纹理过滤方式)和GL_LINEAR
OpenGL会选择中心点最接近纹理坐标的那个像素;而GL_LINEAR叫做线性过滤:基于纹理坐标附近的纹理像素,计算出一个插值。
如果用一张低分辨率的纹理,可以产生明显的对比:GL_NEAREST会产生颗粒状图案,GL_LINEAR会产生更平滑的图案
一般是纹理被缩小的时候使用邻近过滤&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值