glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP)
2010-05-07 16:32
441 查看
纹理帖图会出现在物体表面的(u,v)位置上,这些值在[0.0,1.0]范围内。超出这个值域怎么去办呢,在OpenGL中用Texture Wrapping 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):
图象在物体表面上不断重复,但是每次重复的时候对图象进行镜像或者反转。这样在纹理边缘处比较连贯。
4. 边界截取(CLAMP_TO_BORDER_ARB):
在[0.0,1.0]范围外的参数值用单独定义的边界颜色或纹理边缘进行绘制。适合于绘制物体表面的贴花纸。
CLAMP_TO_BORDER_ARB在所有mipmap层次上对纹理坐标进行截取,使nearest和linear过滤只返回边界纹理单元的颜色。
5. 边缘截取(GL_CLAMP_TO_EDGE):
总是忽略边界。处于纹理边缘或者靠近纹理边缘的纹理单元都用作纹理计算,但是不包括边界上的纹理单元。
在OpenGL1.2以前的版本中并未对最初的GL_CLAMP进行详细的说明。按照定义,在双线性插值过程中,在纹理边界以外的点是由纹理边缘像素和边界颜色各自一半混合形成的。在OpenGL1.2中,引入了GL_CLAMP_TO_EDGE,用来纠正这个问题。同时,GL_CLAMP_TO_BORDER_ARB则只对那些纹理边界上的边界点进行采样。因为很多硬件并不支持边界处理,所以实现GL_CLAMP_TP_EDGE和GL_CLAMP的效果好象是一样的。
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):
图象在物体表面上不断重复,但是每次重复的时候对图象进行镜像或者反转。这样在纹理边缘处比较连贯。
4. 边界截取(CLAMP_TO_BORDER_ARB):
在[0.0,1.0]范围外的参数值用单独定义的边界颜色或纹理边缘进行绘制。适合于绘制物体表面的贴花纸。
CLAMP_TO_BORDER_ARB在所有mipmap层次上对纹理坐标进行截取,使nearest和linear过滤只返回边界纹理单元的颜色。
5. 边缘截取(GL_CLAMP_TO_EDGE):
总是忽略边界。处于纹理边缘或者靠近纹理边缘的纹理单元都用作纹理计算,但是不包括边界上的纹理单元。
在OpenGL1.2以前的版本中并未对最初的GL_CLAMP进行详细的说明。按照定义,在双线性插值过程中,在纹理边界以外的点是由纹理边缘像素和边界颜色各自一半混合形成的。在OpenGL1.2中,引入了GL_CLAMP_TO_EDGE,用来纠正这个问题。同时,GL_CLAMP_TO_BORDER_ARB则只对那些纹理边界上的边界点进行采样。因为很多硬件并不支持边界处理,所以实现GL_CLAMP_TP_EDGE和GL_CLAMP的效果好象是一样的。
相关文章推荐
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP) 的用法
- GL_TEXTURE_WRAP系列参数的取值
- GL_TEXTURE_WRAP系列参数的取值
- Opengl es2.0 glEnable(GL_TEXTURE_2D)报错 GL_INVALID_ENUM
- OpenGL 的glDisable(GL_TEXTURE_2D)函数和glBindTexture(GL_TEXTURE_2D,0)有什么区别?
- glBindTexture(GL_TEXTURE_2D, 0) glBindFramebuffer(GL_FRAMEBUFFER, 0) glBindTexture(GL_TEXTURE_2D, 0)
- glActiveTexture glBindTexture
- Unity3d 截屏之后转换成Texture2d
- cocos2d-x 字体描边CCRenderTexture glBlendFunc
- 在cocos2d-x高版本中想使用 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
- 【Unity Shaders】Diffuse Shading——使用2D ramp texture来创建一个假的BRDF(双向反射分布函数)
- opengles TEXTURE__2D and GL_TEXTURE_EXTERNAL_OES
- cocos2dx3.X uiimage 转 texture2d 或者 image 失败
- Unity Shaders and Effects Cookbook (2-6) 在 C# 代码中创建 Texture2D 并赋值给 Shader
- Unity3D中的Texture2D纹理失真解决办法
- 二维纹理 Texture 2D
- [Unity 笔记] Unity Editor中如何更改Texture2D对应资源的压缩格式,并保存
- 如何封装 opengl 流程 EglHelper GLThread glSurfaceView glTextureView
- Unity : Texture2D 的 GPU 版
- Converting from GLSurfaceView to TextureView (via GLTextureView)