在进行纹理帖图时,图象会出现在物体表面的(u,v)位置上,而这些值在[0.0,1.0]范围内.但是,如果超出这个值域,会发生什么情况呢?这由纹理的映射函数来决定.在opengl中,这类映射函数称为“texture wrapping mode”;在d3d中,称为“texture addressing mode”.常见的有下面几种:
【程序编程相关:为什么上海盛大能成功?(3)】 【推荐阅读:小团队游戏开发的阶段划分】 1. 重复(gl_repeat):图象在表面上重复出现.在算法上,忽略纹理坐标的整数部分,并将纹理图的拷贝粘贴在物体表面上.对于大多数复制纹理的使用,在纹理顶部的纹理单元应与底部的纹理单元相匹配,在纹理左侧的纹理单元也应与右侧的纹理单元相匹配.这样才能做到无缝连接. 【扩展信息:Deadreckoning的改进模型。】 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扩展来实现. ... 下一页