滤波
一般来说,纹理图像为正方形或长方形。但当它映射到一个多边形或曲面上并变换到屏幕坐标时,纹理的单个纹素很少对应于屏幕 图像上的象素。根据所用变换和所用纹理映射,屏幕上单个象素可以对应于一个纹素的一小部分(即放大)或一大批纹素(即缩小)。下面用函数 glTexParameter*()说明放大和缩小的方法:
glTexParameter*(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameter*(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
第一个参数可以是GL_TEXTURE_1D或GL_TEXTURE_2D,即表明所用的纹理是一维的还是二维的;
第二个参数指定滤波方法 ,其中参数值GL_TEXTURE_MAG_FILTER指定为放大滤波方法,GL_TEXTURE_MIN_FILTER指定为缩小滤波方法;
第三个参数说 明滤波方式, 若选择GL_NEAREST则采用坐标最靠近象素中心的纹素,这有可能使图像走样;若选择GL_LINEAR则采用最
靠近象素中心的四个象素的加权平均值。GL_NEAREST所需计算比GL_LINEAR要少,因而执行得更快,但 GL_LINEAR提供了比较光滑的效果。
参考:http://blog.chinaunix.net/uid-20638550-id-1909184.html
gl.glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
gl.glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
超出视图范围的重复方式,设置如下参数GL10.GL_CLAMP_TO_EDGE:重复边沿的像素;如果设置成GL10.GL_REPEAT:纹理重复。
参考:http://edu.gamfe.com/tutor/d/28604.html
gl.glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);