游戏中纹理压缩格式之Texture属性

记载目录

1.杂言杂语
2.Texture属性
    a).Texture纹理特有属性设置
        Default 及特有设定
        Normal map 及特有设定
        Sprite(2D and UI) 及特有设定
    b).Texture纹理通用属性设置
3.优化设置
4.参考文章

杂言杂语

游戏贴图,对于每个游戏编程人员来说都是不可避免要接触到的东西。这里就texture属性做一个粗略的介绍。随着Unity版本升级对于属性的设置表现会有所不同,但大体都是一样的。
我这里所使用的Unity版本是5.5.1f。
关于贴图有些地方我也搞不明白,如果有描述错的希望指正。

Texture属性(转载)

1) Texture纹理特有属性设置

TextureType

Default 这里的默认类型也是以前版本的Advance版本,主要参数有:

Advance 主要参数

  1. Non Power of 2 图片尺寸非2的整数幂次。若选择图像尺寸非2的整数幂次可选择该项,会将该图像缩放为2的整数幂次。
    -None: 对图像不进行处理
    -ToNearest:到最接近的尺寸。将图像缩放到最接近2的整数次幂的大小。
    -ToLarger:到较大的接近尺寸。
    -ToSmaller:到较小的接近尺寸。
  2. Read/Write Enabled 读/写启用 择该项将允许从脚本访问纹理数据,同时产生一个纹理副本,使用会消耗双倍内存
  3. Generate Mip Maps 生成Mip Maps。勾选该项将生成Mipmap。当纹理在屏幕上非常小的时候,Mipmaps 会自动调用该纹理较小的分级。
    a.) Border Mip Maps:选择该项代表避免色彩渗出边缘。一般应用于灯光游戏对象的Cookie。
    b.) Mip Map Filtering:Mip Map过滤方式
    1) Box:采取最基本的方法处理mipmaps级别,随着纹理尺寸的减小,将mip级别做平滑处理。
    2) Kaiser:此种是随着纹理的减小对mip maps进行锐化的算法。该方法可以改善纹理在摄像机与纹理的距离过远时出现的纹理模糊问题。
    c.) Fadeout Mip Maps:淡出Mips。勾选该项将使mipmaps随着mip的级别褪色为灰色,该方式适用于detail maps(细节贴图)
Normal map:法线贴图 法线贴图类型。选择此类型,可将图像颜色通道变成一个适合于法线映射的格式。
Createfrom Grayscale: 依据灰度值产生Alpha通道。选择此项,依据图像自身的灰度值计算法线贴图的凹凸值。
    Bumpiness:凹凸强度调节,该项用来控制贴图凹凸的量。
    Filtering:过滤。控制法线贴图的凹凸的计算方式。
        Smooth:平滑,产生的法线贴图比较平滑。
        Sharp:锐化,产生的法线贴图更加清晰、锐利。
Sprite(2D and UI):精灵
 UGUI 打包图集专用;
 才疏学浅的我不会UGUI,所以这里省略一万字。

Texture纹理通用属性设置

Wrap Mode:贴图与贴图之间的拼接模式 此属性可以理解为我们设置电脑桌面背景时的平铺和拉伸
    平铺对应Repeat 在不改变图片原有大小的情况下通过多张图片拼接来铺满对象
    拉伸对应Clamp  通过拉伸图片的边缘铺满对象。
Filter Mode 过滤模式
    过滤模式是什么东西呢?这还得从贴图贴在三维物体表面的算法说起
    我们的贴图贴在三维物体表面上是需要经过三维图形对贴图进行计算后进行附着
    但是三维物体表面和贴图的表面的面积并不是相等的。当 贴图 相对三维物体表面积 过大或过小时就是对贴图进行拉伸或者缩小,造成变形 贴图糊了,这过滤模式就是填补这糊法的算法来的。
    过滤模式主要有三种:
    Point:(近点采样)
        每个像素的纹理坐标,如果刚好不是对应Texture上的一个采样点texel,就采样取最接近的texel进行采样。
    Bilinear:(双线性过滤)
        双线性过滤以pixel对应的纹理坐标为中心,采该纹理坐标周围4个texel的像素,再取平均,以平均值作为采样值。
    Trilinear:(三线性过滤)
        三线性过滤以双线性过滤为基础。会对pixel大小与texel大小最接近的两层Mipmap level分别进行双线性过滤,然后再对两层得到的结果进生线性插值。
        三线性过滤在一般情况下效果非常理想了。但是到目前为止,我们均是假设是texture投射到屏幕空间是各向同性的。但是当各向异性的情况时,效果仍然不理想,于是产生了AnIso Level各向异性过滤)。

优化设置

Read/Write Enabled
择该项将允许从脚本访问纹理数据,如果允许则会产生一个纹理副本,使用会消耗双倍内存
Generate Mip Maps

勾选和不勾选的区别

Filter Mode
过滤模式在内存占用上并不会有变化,变化主要在GPU上。为了减轻GPU负担。
如果是UI贴图,直接选择双线性过滤一般都够用了。
如果是场景中的贴图和人物身上的贴图才使用三线性
Point过滤模式没有用于项目实战过,可曾经测试过在移动贴图的时候贴图的边会变得有缺口
就是类似于下图

Point过滤模式的缺陷模拟图

参考文章

http://blog.csdn.net/dk_0520/article/details/68946504
http://blog.csdn.net/puppet_master/article/details/53485919
http://www.xuanyusong.com/archives/2697

猜你喜欢

转载自blog.csdn.net/biospc/article/details/78075624
今日推荐