Unity3D中创建纹理使用的是unity中的Texture2D的构造函数。
Texture2D(int width, int height);
Texture2D(int width, int height, TextureFormat format, bool mipmap);
Texture2D(int width, int height, TextureFormat format, bool mipmap, bool linear);
前两个参数设置了纹理的分辨率,TextureFormat设置像素的格式,mipmap设置是否生成多级别纹理,linear设置是否使用线性滤波的方式创建纹理。
线性滤波是纹理滤波的一种。当三维空间里面的多边形经过坐标变换、投影、光栅化等过程,变成二维屏幕上的一组象素的时候,对每个像素需要到相应纹理图像中进行采样,这个过程就称为纹理滤波。 简单来说,纹理滤波就是每个像素从纹理图像中采样的过程。
常用的纹理滤波方式有两种:最近滤波(Nearest Filter)、线性滤波(Linear Filter)。
最近滤波,在纹理缩小或放大时,使用最近像素点的颜色作为新点的颜色,效果最差,性能最好。
线性滤波,在纹理缩小或放大时,取原图中相邻像素并使用线性插值获得中间值来填充新点的颜色,效果比最近滤波好。
当启用MipMap生成多级缩放纹理时,还可以使用三线性滤波的方式。所谓三线性滤波是指在最相邻的两个MipMap层次上分别进行线性滤波,再用得到的两个值进行线性插值得到最终的像素值。