许雯
【摘 要】纹理映射是真实感图形绘制过程中重要的组成部分,本文就是对图形学中的纹理映射的原理和纹理的分类进行了说明,并浅谈了纹理映射中的关键技术。
【关键词】图形绘制;图形学;纹理映射
Analyses of the Texture Mapping in Graphics
XU Wen
(Xian Aeronautical University,Xian Shaanxi 710077,China)
【Abstract】Texture mapping is an important part of realistic rendering.In this paper,we introduced the principle of texture mapping and the classification of texture and discussed the key technology of texture mapping.
【Key words】Graphics rendering;Graphics;Texture mapping
0 引言
纹理映射技术是计算机图形学的重要组成部分,它能真实地反映图形的真实感。在现代生产中,纹理映射技术的使用范围越来越广,特别是在计算机制作、动画设计、三维游戏和广告设计领域上。纹理映射[1]是通过将已经存在的纹理图像映射到物体表面,从而实现为物体表面则增加表面细节的过程。
1 纹理映射
1.1 纹理映射原理
纹理映射可以分为一维、二维和三维纹理映射,其中一维纹理映射是最简单的纹理映射,即线的映射,二维纹理映射就是对一副二维图形的映射,三维纹理映射是将定义在二维空间的纹理映射到三维物体表面上。其中应用最为广泛的是二维纹理映射,下面我们将重点介绍二维纹理映射。
纹理映射的过程中涉及到各个顶点的对应关系[2],我们相应的建立物体坐标系、纹理坐标系和纹理图像坐标系,其中纹理坐标的取值范围在0.0~1.0之间。
1.2 纹理滤波技术
不同的过滤方式,它的计算复杂度和计算方式都有所不同,图形出来的效果也有所不同。常用的简单滤波技术有两种,一种是Nearest Point Sampling(最近点采样法),另外一种是Bilinear(双线性滤波)。
最近点采样法是速度快但是滤波效果比较差的采样方式,它的做法是选中一个点P,这个点P不一定刚好对应纹理的一个采样点texel,所以它就会选择对应区域中最接近的texel进行采样,也就是说它会选取横坐标和纵坐标都比较靠近P点的texel作为采样点。
双线性过滤以pixel对应的纹理坐标为中心,取该纹理坐标周围4个texel的像素来计算该坐标点的颜色,最简单的方法是取其周围4 个坐标颜色的平均值作为采样值,也就是会对靠近像素中心的一块2×2的纹理单元取加权平均值。通常的方法是根据面积作为4个坐标颜色的权重来计算该点的像素值(即纹理颜色值)。
2 纹理映射处理
2.1 对纹理坐标的处理
对于一个二维纹理图像来说,它的纹理坐标值一般被限制在区间0.0~1.0之间,每个图像的尺寸都有一个界限,对于图像查找来说,就必须将它们的坐标转换到区间0.0~1.0之间。也就是说,纹理坐标可以不用仅仅设置在区间0.0~1.0,r如果坐标值超过这个范围,则要对纹理坐标超出这个范围的值进行处理,在纹理映射中,有不同的处理方式,对S和T坐标的处理方式如下:
1)如果选择的处理方式为GL_REPEAT,对超过1.0的值则只取小数部分的值,整数部分的值将被忽略掉。
2)如果选择的处理方式为GL_CLAMP,对超过1.0的值让其等于1.0,小于0.0的值让其等于0.0,其余的不作处理。
3)如果选择的处理方式为GL_CLAMP_TO_BORDER,则纹理坐标值的范围限制在[,1-]之间,大于1-的值让其等于1-,小于的让其等于,其余的不作处理。
4)如果选择的处理方式為CLAMP_TO_EDGE,则不同的滤波方式其处理方式不同,如果滤波方式为GL_LINEAR,则其处理方式和CLAMP的处理方式相同,如果滤波方式为GL_NEAREST,则纹理坐标值的范围限制在[,1-]之间,大于1-的值让其等于1-,小于的让其等于,其余的不作处理。
其中,N是这样定义的,如果处理的是S坐标,则N就是图像的宽度值,如果处理的是T坐标,则N就是图像的高度值。
2.2 纹理贴图方式的选择
纹理贴图方式(也就是纹理与要贴图的物体的原顶点颜色的混合方式)有多种,分别为GL_REPLACE、GL_MODULATE、GL_BLEND、GL_DECAL、GL_ADD和GL_COMBINE(替换、调整、混合、贴花、添加和组合)。
3 结束语
本文对纹理映射算法及纹理滤波技术进行了简要的介绍,通过对纹理坐标的处理及贴图方式的选择,实现了纹理映射的处理。在研究图形真实感的处理时,纹理映射处理是相当重要的。
【参考文献】
[1]E.A.Bier,K.R.Sloan. Two-Part TexTure Mapping[J].IEEE Computer Graphics Application,1986(6):40-5.
[2]董梁,刘海,韩俊刚.图形处理器中光照和纹理映射的设计与仿真实现[J].计算机科学,2011.
[3]和克智,等著.OpenGL编程技术详解[M].化学工业出版社,2010.
[4]Donald Hearn,M.Pauline Baker,著.计算机图形学[M].蔡士杰,宋继强,蔡敏,译.电子工业出版社,2010.
[5]Crow.T he Aliasing Problem in Comput er Generat ed Shaded Images[J]. CACM,1977,20(11):799-805.
[责任编辑:田吉捷]