【Unity】3.6 导入图片资源
分类:Unity、C#、VS2015
创建日期:2016-04-05
一、简介
Unity支持的图像文件格式非常多,包括TIF、PSD、TCA、JPC、PNG、GlF、BMP、IFF、PICT、DDS等。
另外,Unity还支持用Photoshop制作的包含多个图层的PSD格式的图片。PSD格式图片这图层导入Unity之后会自动合并显示,而且该操作还不会破坏PSD源文件的结构。
二、图片格式及尺寸要求
为了优化运行效率,在几乎所有的游戏引擎中,图片的像素尺寸都是需要特别注意的,建议图片文件里的尺寸都是2的n次幂,例如32、64、128、256、1024等,以此类推。图片的长宽则不需要—致。例如512*1024、256*64等都是合理的。
另外,要特别注意,虽然Unity也支持非2的次幂尺寸的图片,但这是以“降低加载速度并加大图片文件大小”为代价来换取的。如果再将这种图片转换为2的n次幂,由于改变了图片的原始比例,还会导致图片质量下降。所以,制作图片资源时,一定要按照2的整数幂的尺寸规格来制作,否则就是自找麻烦。
三、图片资源导入后的属性设置
Unity是一款可以跨平台发布游戏的引擎,单纯就图片资源来说,在不同的平台硬件环境中使用还是有一定区别的。如果你自己为不同平台分别手动制作或修改相应尺寸的图片资源,将是非常不方便的,也会带来很大的工作量。
为了解决跨平台的问题,Unity为用户提供了专门的解决方案。可以在工程中将同一张图片纹理依据不同的平台直接进行相关的设置,效率非常高。
这里主要介绍如何根据不同平台对图片资源进行没置。
1、导入图片资源
在Unity中,向工程中导入图片资源常用有两种办法:
办法1:直接将图片文件复制或剪切到工程文件夹下的Assets文件夹或者其子文件夹中,这种办法可以同时导入多张图片资源。
办法2:通过Unity的菜单导入图片资源,这种办法每次只能导入一张图片。
2、设置属性
单击选中某个导入后的图片资源,在检视器中,根据你准备发布的平台,进行相应的图片尺寸设置。也就是说,在最终发布时,Unity会依据设定自动调整图片的尺寸。
相关属性如下:
Default:默认设置(所有平台的默认设置)。
Maxsize:最大纹理尺寸。可调整所选择的纹理的最大尺寸。值的范围自小至大依次为32、64、128、256、512、1024、2048、4096。
Format:格式。该项用来没置图片的压缩格式,选项有:
- Compressed(压缩纹理):该项为默认选项,是最常用的纹理格式。压缩的格式会根据发布的平台自动选择。
- 16bit:RGB彩色,16位彩色图最多可以有2的16次幂种颜色(低质量的真彩色)。注意这种格式为非压缩格式,会占用较大的磁盘空间。
- True color:真彩色,是最高质量的32位真彩色(256×256的纹理大小占用空间容量为256KB)。注意这种格式为非压缩格式,会占用更大磁盘空间。
- Advanced:指定纹理的其他格式(很少用它)。
- Compression Quality:压缩质量。该项只在Override for Android及Override for FlashPlayer项下面才会出现。
- Override for Android:覆盖到Android平台。该模式下有3个选顶可供选择:Fast、Normal、Best,依次代表压缩质量由低到高。
- Override for FlashPlayer:覆盖到Flash Player。该模式靠数值来控制压缩质量,值的范围是0~100,也可以直接拖动滑块进行调整。
Revert:单击此按钮取消没定。
Apply:单击此按钮应用设定。
四、图片资源类型的设定
在Unity中,根据图片资源的不同用途,需要没定图片的类型,例如作为普通纹理、法线贴图、GUI图片、反射贴图、光照贴图等不同类型用途的图片应设定相应的格式,以便达到最佳的效果。
对于游戏制作而言,图片的类型设定是非常重要。
1、Texture
Texture Type:纹理类型。包括Texture(纹理)、Normd map(法线贴图)、GUl(图形用户界面)、Cursor(图标文件)、Reflection(反射)、Cookie(作用于光源的Cookie)、Lightmap(光照贴图)、Advanced(高级)等类型。
Alpha from Crayscale:依据灰度产生Alpha通道。勾选该项,将依据图像自身的灰度值产生一个alpha透明度通道。
Wmp Mode:循环模式。控制纹理平铺时的样式,有两种方式可供选择:
- Repeat:重复。该项为默认选项,选择该项后纹理将以重复平铺的方式映射在游戏对象上。
- Clamp:夹钳/截断。选择该顼后将以拉伸纹理的边缘的方式映射在游戏对象上。
Filter Mode:滤模式。控制纹理通过三维变换拉伸时的计算(过滤)方式,选项有:
- Point:点模式。这是一种较简单材质图像插值的处理方式,会使用包含像素最多部分的图素来贴图。简而言之,图素占到最多的像素就用此图素来贴图。这种处理方式速度较快,但是材质的品质较差,有可能会出现“马赛克”现象。
- Bilinear:双线性过滤。这是一种较好的材质图像插值的处理方式,会先找出最接近像素的四个图素,然后在它们之间做插值计算,最后产生的结果才会被贴到像素的位置上,这样不会看到“马赛克”。这种方式适用于有一定景深的静态影像,不过无法提供最佳品质,也不适用于移动的游戏对象。
- Trilinear:三线性过滤。这是一种更复杂材质图像插值处理方式,会用到相当多的材质贴图,而每张的大小恰好会是另—张的四分之—。例如,有—张材质影像有512×512个图素,则第二张就会是256×256个图素,以此类推。凭借这些多重解析度的材质影像,当遇到景深较大的场景时,该方式可以提供最高的贴图品质,会去除材质的“闪烁”效果。对于需要动态物体或景深很大的场景应用方面而言,选用此种方式会获得最佳的效果。
Aniso Level:各向异性级别。当以一个过小的角度观察纹理时,此数值越高观察到的纹理质量就越高,该参数对于提高地面等纹理的显示效果非常明显。
2、Normal map
法线贴图类型。选择此类型,可将图像颜色通道变成一个适台于法线映射的格式。
Create from Grayscale:依据灰度产生Alpha通道。勾选该项,依据图像自身的灰度值计算法线贴图的凹凸值。
Bumpiness:凹凸强度调节,该项用来控制贴图凹凸的量。
Filtering:过滤。控制法线贴图的凹凸的计算方式,方式有:
- smooth:平滑,这种方式产生的法线贴图比较平滑。
- sharp:锐化,这种方式产生的法线贴图更加清晰、锐利。
3、GUI
图形用户界面类型。选择此类型,纹理适用于HUD/GUI所用的纹理格式。注意,如果纹理的大小非2的整数次幂,而且纹理的类型被设定为GUI,Unity会将该纹理强制转换为True color格式。
4、Cursor
图标文件。选择此类型,纹理适用于光标所用的纹理格式。
5、Relection
反射。选择此类型,类似CubeMaps(立方体贴图),此类型适用于反射用的纹理格式。
属性有:
Mapping:映射。该项决定映射到立方体贴图上的反射贴图方式。有5种:
- sphere Mapped:球形包裹方式。图像以包裹球形的方式映射到反射贴图上。
- Cylindrical:圆柱方式。纹理以圆柱的方式映射到反射贴图上。
- Simple Sphere:简单球形。图像映射到—个简单的球形上,当旋转时反射会发生变形。
- Nice sphere:精致球形。图像映射到—个球形上,当旋转时反射会发生变形。
- 6 Frames Layout:6框架布局。这是默认的设置。可以理解为将图片包含的六个图像分别映射到一个立方体的6个面上。
Fixup edqe seams:固定边缘接缝处。当反射贴图有接缝时可尝试勾选该选项进行控制。
6、Cookie
作用于光源的Cookie,属性有:
Light Type:光源类型。该项用来指定该纹理计划作用于光源的类型,选项有:
spot light:聚光灯。如选择此类型光源,建议纹理的边缘保证为纯黑色,并将Wrap Mode模式设为Clamp。这样会获得正确的结果。
Directional:平行光源。如选择此类型光源,建议Wrap Mode模式设置为Repeat。这样会获得正确的结果。
Pont:点光源。
7、Lightmap
光照贴图。选择此类型,可将图像没定为适用于光照贴图的格式。
8、Advanced
高级。选择此类型,可对纹理进行高级没置。
Non Power of 2:图片尺寸非2的整数次幂。该项在导入并选择了2的整数次幂尺寸图像的情况下才可用。该项的主要作用是将图像尺寸缩放到2的整数次幂,选项有:
- None:无。对图像尺寸不进行处理。
- To Nearest:调整到最接近的尺寸。将图像尺寸缩放到最接近的2的整数次幂的大小。例如,513x1013像素的图像将被缩放成512x1024像素。
- To larger:调整到较大的(尺寸)。将图像尺寸放大到最接近的2的整数次幂大小。例如,257x513像素的图像将被放大成512下024像素。
- To Smaller:调整到较小的(尺寸)。将图像尺寸缩小到较小的最接近2的整数次幂大小。例如,254x511像素的图像将被缩小成256x256像素。
Cenente Cube Map:生成立方体贴图。只有Non Power of 2项中选择了除None以外的类型时才可用。使用不同的方式将图像生成一个立方体贴图,选项有:
- None:不将图像生成立方体贴图。
- sphere map:球形包裹贴图。图像以包裹球形的方式映射到立方体贴图上。
- Cylindridal:圆柱形贴图。图像以圆柱的方式映射到立方体贴图上。
- Simple sphere map:简单球形贴图。图像以简单球形的方式映射到立方体贴图上。
- Nice sphere map:精致球形贴图。图像以精致球形的方式映射到立方体贴图上。
好了,虽然这一节的内容看起来很枯燥,但是,这些基本概念非常重要。如果你不了解这些基本知识,那么你做出的游戏产品可能自己感觉很爽,但是很难让别人相信能达到最优的效果。
【Unity】3.6 导入图片资源的更多相关文章
- unity导出工程导入到iOS原生工程中详细步骤
一直想抽空整理一下unity原生工程导入iOS原生工程中的详细步骤.做iOS+vuforia+unity开发这么长时间了.从最初的小小白到现在的小白.中间趟过了好多的坑.也有一些的小小收货.做一个喜欢 ...
- unity, 调节图片导入尺寸
unity中直接导入高清图,通过max size来调节图片尺寸. 打包的时候通过看editor log或通过插件来监视是否有过大尺寸的图片.
- Unity 3D 文件导入出错
Unity 3D 文件导入出错 安装unity 时我选择了free版的,打开已有项目时出现例如以下错误提示 解决的方法: 先把要导入的文件先复制到unity3d安装文件夹下相应的文件夹内,之后再返回u ...
- Unity 3D 文件导入出错误解决方法以及unity圣典离线版下载地址
1.安装unity 时我选择了free版的,打开已有项目时出现如下错误提示. 解决方法:先把要导入的文件先拷贝到unity3d安装目录下对应的文件夹内,之后再返回unity3d软件,右键选择“导入”. ...
- Unity基础-外部导入C# Dll(汇编集)
外部导入C# Dll(汇编集) 使用创建一个dll工程 添加依赖的dll 导入Unity中,放入Assets的任意文件夹中 使用代码生成的dll汇编集只要"use dll的名字"引 ...
- Unity 5.x 导入教学Demo
前言 小巫也来玩Unity3D了.以后会把学习的一些过程博客记录下来,方大家也方便自己学习和查看.本篇博客介绍怎样在Unityclient中导入Assert Store中下载的项目资源,方便我们进一步 ...
- unity入门—资源导入与场景创建
前言: 从这一篇章开始,我将会通过游戏实例来讲解如何使用unity制作一个标准的游戏,介绍的内容较多,需要整理的东西也多可能中途会有一两天的咕咕咕,预计想要完成两个游戏,一个射击类一个塔防类,从射击类 ...
- unity runtime时导入fbx文件
TriLib is a Unity model loader package designed to allow the user to load various 3D model formats i ...
- Unity一键设置导入图片格式
前几天由于项目原因,做了一个自动根据模型自动创建动画状态机,然后紧接着做了根据动画状态机和模型一键制作Prefab. 现在因为图片数量或者其它原因需要写一个一键设置图片格式的插件. 至于制作动画状态机 ...
随机推荐
- 〖Linux〗Ubuntu中使用KVM安装虚拟机
1. 安装软件: sudo apt-get install libvirt0 libvirt-bin libvirt-dev virt-manager qemu-system 2. 配置网桥: # i ...
- Echarts折线图点击事件
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- Mac OS使用技巧十九:Safari碉堡功能之二查看网页源代码
由于大三下的时候选修了搜索技术.了解了网络上搜索引擎和网络爬虫的信息扒取的一些东西,后来我们做了一个比較水的东西.就是仅仅扒取了几家较大的下载站点几十个软件的评分下载量等信息,当用户输入一个 ...
- 推荐一款VS2008代码增强插件——MetalScroll
时光如水,岁月如歌.虽然现在已经是2013年底马上就要步入2014了,但还是有很多人在使用VS2008开发项目,今天要推荐一款VS2008(同时支持VS2005,但不支持VS2010)代码增强插件给仍 ...
- uitableview分组的数据2中方式
// // ViewController.m // tableviegroup // // Created by ganchaobo on 13-7-2. // Copyright (c) 2013年 ...
- 一个使用Servlet文件实现文件下载的实例
一个使用Servlet文件实现文件下载的实例 (可以扩充本实例实现:对用户隐藏他要下载文件的路径,或者在下载文件时要做一些其他的工作,如检查用户有没有下载此文件的权限等) 了解在Servlet中如何控 ...
- spdk 编译动态库( spdk compiles shared library )
1,dpdk编译共享库 默认情况下都编译出静态库,如果想编译出动态库,把config/common_base文件中的CONFIG_RTE_BUILD_SHARED_LIB改成y即可. 2,spdk编译 ...
- tensorflow中的sequence_loss_by_example
在编写RNN程序时,一个很常见的函数就是sequence_loss_by_example loss = tf.contrib.legacy_seq2seq.sequence_loss_by_examp ...
- numpy二分查找
a = np.array([1, 2, 2, 3]) print(np.searchsorted(a, 0)) # 0 print(np.searchsorted(a, 1)) # 0 print(n ...
- Vue.js 综合
<!DOCTYPE HTML> <html> <head> <title>vue.js 处理用户输入</title> <script ...