转载自:http://blog.csdn.net/candycat1992/article/details/22794773

写在前面

当我们在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平台上可以设置为最高画质。
2015.9.29添加
我们公司单个图片的设置是这样的,暂时不确定那个更优一些,只能都贴上来了

Unity3D图片质量设置相关推荐

  1. Unity3D笔记 愤怒的小鸟五 小鸟动画+Unity3D如何设置断点调式

    前言:实现小鸟的动画,之前吐槽过js写U3D,就改成了C#来写,没想到遇到问题了. 实现的效果 using UnityEngine; using System.Collections;/// < ...

  2. 【Unity3D日常开发】Unity3D中设置Image中的Color的值

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 首先给Button的Image组件的Color设置一个RGBA的值,值是12 ...

  3. Unity3d 帧率设置 及在游戏运行时显示帧率

    版权声明:本文转自http://blog.csdn.net/huutu 转载请带上 http://www.liveslives.com/ http://blog.csdn.net/cp79062165 ...

  4. Unity3d帧率设置及在游戏运行时显示帧率

    在Unity3d 中可以通过代码设置 来限定游戏帧率. Application.targetFrameRate=-1; 设置为 -1 表示不限定帧率,一般情况在手机游戏中我们限定帧率为30 就OK了. ...

  5. unity3d UI设置

    在unity3d中,我们经常需要往界面上添加图片,文本,这时候我们就得使用UI了. creat->uI,里面就有各种各样的UI对象. 在我们设置了各种各样的Text.Button.Image之后 ...

  6. Unity3D 人称设置(第一人称视角、第三人称视角)

    设置第一人称视角 1.把物体的坐标和摄像机的坐标设置成一样的,这样摄像机就在物体内部,就是第一人称的视角. 2.把摄像机拖拽进物体对象内,摄像机变成物体的子对象,这样摄像机就能跟着物体一起移动. 设置 ...

  7. Unity3D打包设置成窗口模式(可调节像素)

    U3D打包首先要在Scenes In Build中添加上游戏的场景,然后在player setting中进行设置 注意这里选择的是enabled,其他按照图示勾选就可以了. 然后点击运行就OK了

  8. unity3d 场景设置注意事项

    Fbx.贴图导入Unity时的注意事项: 在导出Fbx之前,Maya中已经对物体连接了正确的贴图,并且贴图文件名不能更改. 把Fbx和贴图放在同一文件夹内,直接把此文件加拖入Unity内.此时Diff ...

  9. SketchUp导出有纹理贴图的模型进入Unity3d的设置

    目录 导出设置 导出设置 点击 文件--导出--三维模型--保存类型设置为fbx 然后!! 不要直接点击导出,点击选项,进行如下图设置.(模型单位自己看情况设置吧)设置完成后再点击导出. 把模型导出U ...

最新文章

  1. pptxgenjs一个月深度使用感受(未完待续……)
  2. 《C程序员:从校园到职场》出版预告(1):从“高大上”到“柴米油盐”
  3. 使用lsof恢复进程打开的误删除文件
  4. BZOJ.1109.[POI2007]堆积木Klo(DP LIS)
  5. 组件生命周期管理和通信方案
  6. Select控件可选可输入
  7. 瑞幸咖啡生,互联网咖啡生;数据死,互联网咖啡死
  8. 柳传志与马云绸缪宏观经济“冬天影子”
  9. python输入城市名称_python 查询天气(输入城市名,输出天气)
  10. JAVA异常-面试题
  11. 【Spring】Spring Boot 和 Redis 自定义 RedisTemplate
  12. 详解浏览器 428 状态码 428 Precondition Required
  13. 在macOS下制作黑苹果镜像
  14. 网络的日常——破解电信光猫后开启NAT接口映射
  15. TR069协议与商业应用8——移植cwmp到ARM平台运行和测试
  16. 无论计算机有多强大、攻击者多么聪明都无法破解的密码:一次一密
  17. BZOJ 2145 悄悄话
  18. html摄氏度转换华氏度,摄氏和华氏转换器-JavaScript
  19. 树的遍历 ALDS1_7_C:Tree Walk
  20. 通过Vue解决跨域问题(proxy配置代理)

热门文章

  1. 正确配置SSL加密,确保HTTPS安全性能
  2. 一网打尽!二分查找解题模版与题型全面解析
  3. 基于亚马逊云科技的流式传输云游戏,让安卓游戏出奇制胜
  4. 【前端入门】jQuery
  5. nfs与iptable
  6. PS怎样反图片变成轮廓线效果
  7. JavaScript高级程序设计第六章---集合引用类型
  8. kali-linux中安装Nessus详细教程
  9. components 异步加载组件
  10. 【Java AWT 图形界面编程】LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )