opengl wrapping mode

摘抄一些opengl的笔记,非原创!

在进行纹理贴图的时候,图像会出现在物体表面上的(u,v)位置上,而这些值在[0,0,1.0]范围内。但是,如果超出这个值域,会发僧什么情况呢?这由纹理的映射函数来决定的。在opengl中,这类映射函数称为“Texture Wrapping Mode”;在D3D中,称为“Texture Addresing Mode”。常见的方式有下面几种:

1.重复(GL_REPEAT):图像表面上,重复出现。在算法上,忽略纹理坐标的整数部分,并将纹理图复制黏贴在物体表面上。对于大多数复制纹理的使用,在纹理顶部的纹理单元应与底部的纹理单元相匹配,在纹理左侧的纹理单元也应与右侧的纹理单元相匹配。这样才能做到无缝连接。

2.截取(GL_CLAMP):将大于1.0的数值设置为1.0,将小于0.0的数值设置为0.0,即将超出【0,0,1.0】范围的数值截取到【0.0,1.0】范围内,这样会导致纹理边缘的重复。

3.镜像重复(GL_MIRRORED_REPEAT_ARB):图像在物体表面上不断重复,但是每次重复的时候对图像进行镜像或者反转。这样在纹理边缘处比较连贯。在opengl中通过ARB_texture_mirrored_repeat扩展来实现。

4.边界截取(CLAMP_TO_BORDER_ARB):在【0,0,1.0】范围外的参数值用单独定义的边界颜色或纹理边缘惊醒绘制。适用于绘制物体表面的贴花纸。在Opengl中通过ARB_texture_border_clamp扩展来实现,GLAMP_TO_BORDER_ARB在所有mipmap层次上对纹理坐标进行截取,使nearest和linear过滤只返回边界纹理单元的颜色。

5.边缘截取(GL_CLAMP_TO_EDGE):总是忽略边界。处于纹理边缘或者靠近纹理边缘的纹理单元都用作纹理计算,但是不包括边界的纹理单元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值