原文:点击打开链接

写在前面

当我们在Unity中,使用图片进行2D显示时,会发现显示出来的画面有明显的模糊或者锯齿,但是美术给的原图却十分清晰。

要改善这一状况实际上很简单。

造成这样的原因,是Unity在导入图片(或者纹理)时会自动进行压缩,以便减少运行时游戏的内存占用率,提供性能。

注意:下面实例使用的Unity版本为4.3.4。版本不同的话可能某些显示不完全相同,但关键点是一样的。

实现

我们以下列背景图为例(大小为2048*640):
当我们把它作为背景显示时,在Game界面会看到下面的效果:
可以发现,上面的画质不怎么尽如人意,例如左上角的帆船和右上角的皮球,有明显的模糊和锯齿。
观察该图片对应的Inspector面板(注意这里的纹理类型是Sprite),如下所示:
其中对画质有影响的部分,已经用红框圈出。根据官网文档的解释,其含义分别如下:
  • Filter Mode  当该纹理由于3D变换进行拉伸时,它将如何被过滤插值。共有三种选择:
    Point 单点插值,纹理将变得块状化(blocky up close);
    Bilinear 双线性插值,纹理将变得模糊(blurry up close);
    Trilinear 三线性插值,类似Bilinear,但是纹理还会在不同的mip水平之间(between the different mip levels)进行模糊;
  • Max Size 导入的纹理的最大尺寸。因为美术人员往往喜欢使用较大的纹理进行创作,所以可以使用这个选项来选择我们游戏中适合的尺寸。
  • Format 该纹理使用的内部表现格式。这是在大小和质量之间的权衡。共有三种格式:
    Compressed 压缩的RGB纹理。这是漫反射贴图最长江的格式。每个像素占4bits(一张256*256大小的纹理将占用32KB大小的内存);
    16 bit 低质量的真彩(truecolor)显示。每个像素占16bits;
    Truecolor 真彩。这是最高的质量。一张256*256大小的贴图占用256KB(是Compressed的8倍,即每个像素占32bits)。
我们可以从Inspector面板的最下方查看当前纹理的大小、格式和内存占用率。如下所示,当前纹理大小为1024*320,将占用160KB内存。
如果我们把Filter Mode改为Point,可以看到画面明显变得锐化了。仔细观察图像中每个物体的边缘,由原来的模糊变为块状化了。但画质依然不好,可以看出有明显的锯齿。
我们将Filter Mode重新置回Bilinear。前面提到原图的大小为2048*640,而默认支持的Max Size是1024,这意味着Unity自动压缩了图片。我们把Max Size改为2048,并点击Apply后,可以看到画质得到了明显改善,锯齿和模糊都有了变化:
而此时的内存占用也提高到了0.6MB,比之前大了很多:
最后,我们尝试把Format调整为Truecolor。得到效果如下:
可以看出来,画质变化不大。但是内存占用却又提高了很多(3.8MB):
至此,我们可以认为适合该纹理的设置为Filter Mode为Bilinear,Max Size为2048,Format为Compressed。

结束语

上述得到的结果是适合例子中的图片。在实际应用中,不同的图片要得到最好的效果设置可能不一样。下面是几点提示:
  • 当Max Size大于图片的实际大小时,仍会使用原图片的大小,所以如果想都使用原图大小,可以直接都设置为4096。
  • 如果游戏中有大量较大的图片的是Truecolor格式,那么会非常影响内存占用率。所以,当选择Compressed和Truecolor效果基本相同时,尽量选择Compressed。
  • 我们可以为不同的平台设置不同的Max Size和Format。例如,在Android平台上,由于性能不如IOS,可以选择较低的画质,而在IOS平台上可以设置为最高画质。

【Unity技巧】调整画质(贴图)质量相关推荐

  1. Unity优化 调整画质(贴图)质量

    写在前面 当我们在Unity中,使用图片进行2D显示时,会发现显示出来的画面有明显的模糊或者锯齿,但是美术给的原图却十分清晰. 要改善这一状况实际上很简单. 造成这样的原因,是Unity在导入图片(或 ...

  2. Unity中调整光照特效的7个技巧

    适当为游戏场景添加光照效果,能够有效增强场景氛围,让玩家体验更佳.今天将为大家分享在Unity中调整光照特效的7个技巧,让整个游戏场景氛围更引人入胜. 1.使用线性颜色空间 在为场景添加光照效果之前, ...

  3. Unity中的法线贴图、漫反射及高光

    我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图,可见贴图在画面中所占的重要性.在这里我将列举一些贴图,并且初步阐述其概念,理解原理的基础上制作贴图,也就顺手多了. 我 ...

  4. 利用Unity自带的合图切割功能将合图切割成子图

    转载的,牛人无处不在,我还太渺小 虽然目前网上具有切割合图功能的工具不少,但大部分都是自动切割或者根据plist之类的合图文件切割的, 这种切割往往不可自己微调或者很难维调,导致效果不理想. 今天逛贴 ...

  5. Unity如何调整天空盒子

    Unity如何调整天空盒子 首先在: unity Asset store里找到合适的天空盒子,如下所示. 然后在window->package manager->my assets中找到刚 ...

  6. Matplotlib的imshow()坐标刻度调整及热图对比的注意事项

    ########## Matplotlib的imshow()坐标刻度调整及热图对比的注意事项 ########## %%以下为个人方法,对python并不熟悉,如果有错误的地方欢迎各位一定指正!%% ...

  7. 每天一个前端小技巧——生成gif动图下载

    每天一个前端小技巧--生成gif动图下载 动态热图的展现,分别展现某个时间段的热图时间变化,例如:最近一周七天内,每天的热图分布变化图:这个动态变化的图生成一个gif图提供下载是否可行? 实现方案: ...

  8. Unity图片转换为法线贴图

    Unity图片转换为法线贴图 using UnityEngine; using System.IO; using UnityEditor;public class NormalTexture : Mo ...

  9. iMove 如何输出影片、mp4 档案格式及调整画质?

    当大家在iMovie 编辑完影片后,就可以准备将影片输出,iMovie 的影片要如何输出呢?输出的时候可以选择哪些格式?是否可以输出成mp4 档案?或是输出时要如何调整画质?小编在这里告诉设置大家方法 ...

最新文章

  1. UVA 10269 Adventure of Super Mario
  2. [原创]Net实现Excel导入导出到数据库(附源码)
  3. Java高并发编程:同步工具类
  4. 使用独立主机时需要关注的问题
  5. 【转】CMMI环境下,该如何实施Agile?
  6. 在Ubuntu下rtorrent编译安装笔记
  7. mysql怎么保证最少一条消息_MySQL 的一条语句是怎么执行的
  8. Maria DB windows 安装
  9. win11系统怎么样 Windows11系统好用吗
  10. WindowManager添加一个悬浮的Window
  11. 查找数组中重复数字 (二)
  12. android gps原始数据格式,Android编程获取GPS数据的方法详解
  13. TDD、FDD是什么意思?
  14. 什么是第三方Cookie?别等生意都丢了,才去了解
  15. Python自我成长笔记(一)
  16. 计划驱动的软件过程:waterfall model(瀑布模型,或称之为SDLC模型)
  17. python按指定数量划分图片与对应的xml数据(.png格式为列)
  18. 学习笔记 -《量子计算与编程入门》- 量子程序
  19. 应用上云可以有多快?
  20. AE基础教程(7)——第7章 区域显示,透明网格

热门文章

  1. Oracle表空间的扩展
  2. redis 3 命令总结
  3. 做运维需要掌握哪些技能
  4. 图文结合-ViLBERT
  5. 自定义桌面小部件【搞定小米MIUI小部件】
  6. Matlab中cell2mat函数使用
  7. cookie和session的学习
  8. matlab求偏态系数,Matlab数据拟合正太分布与偏态分布
  9. 用C语言解决迷宫问题
  10. 什么是接口的幂等性,如何实现接口幂等性?一文搞定