【Unity3D Editor】导入图片自动转换成Sprite

https://blog.csdn.net/july_unity/article/details/79275097

一,导入

1,无论是什么格式的图片(最好直接使用PS直接导出的PSD格式),Unity都会自己搞一套格式,并且打包的时候也不会用你文件夹下图片的格式,而是Unity自己的格式。

2,都可以在导入时设置,图片在发生拉伸变化时使用那种滤波模式,point ,Biliner,Trilinear,得到依次滤波效果提升的图片,point 使用最邻近滤波,采样像素通常只有一个,图像放大缩小后会有像素风格,在制作棋盘时,不希望有模糊效果选择这这种模式更好。Biliner使用线性滤波,找相邻四个像素差值,放大缩小后会有模糊效果,会被模糊,Trilinear,几乎和Biliner是一样的,只是Triliner在多级纹理渐变中进行了混合,如果一个纹理没有使用该技术(Creat MitMap)几乎是一样效果。Splite 可以直接选CreatMipMap,Texture需要把图片设置为Advance后选择是否使用多级纹理渐变技术(unity会根据相机距离对象距离,生成8个Mip,该做法在3D场景UI是很好的做法,如果UI都在平面就暴露出了它的弊端,因为都在平面,所以不会有距离相机距离的变化,勾选就行,不然会增加内存,切记。)

3.Texture 在导入设置是Warp Mode 设置可以纹理在渲染超过纹理坐标时,Climp只选择重复纹理边缘像素,还是repeat模式重复整个纹理的模式

4.MaxSize 该纹理的最大尺寸,如原图尺寸为1024*568,该项设置成4096,unity也只会使用它的原尺寸大小,改值的大小大于等于图片原尺寸,如果小于该纹理质量会有损失

5.Format 格式设置

  1. Compressed 压缩格式,如果纹理没有透明通道,一般使用该项,优化内存量,如果有透明通道,显示原图片有可能出现问题。4位
  2. 16bit 低质量真彩格式。16位
  3. TrueColor 真彩模式。质量最高,是压缩格式的8倍,但也更消耗内存,32位
  4. Crunched 这种类型将会根据显卡的GPU来选择合适的压缩格式进行压缩然后会选用一种CPU上就能处理的压缩格式再压缩一遍。如果在制作供人下载的资源包的时候这种类型非常的合适。这个类型的压缩需要很长时间,但在运行时解压是非常快的。

 6.使用Advance 进一步设置Sprite 或者Texture 

你的贴图无论如何都必须是2的幂次方。因为只有2的幂次方图片 并且没有透明通道才会被压缩,IOS会压缩成pvr格  式,Android会压缩成ETC格式,压缩以后图片会小很多的,好几倍的小

如果原图不是2的幂次方,可以在advance设置Non Power of 2值,

  1. ToNearest :转换成距离该图片最近的2的幂次方值。
  2. ToLarger : 转换成比该图片大的2的幂次方值。
  3. ToSmaller : 转换成比该图片小的2的幂次方值。

二,对比

Sprite,精灵

1.2D--UI

1.Sprite 用在 Image 组件上.,可以用来制作动画,

可以设置Simple模式,作为一般UI,

设置为Sliced模式,即九宫格模式,在图集中设置图图片边界后,使图片的拉伸只拉伸中间部分,不拉伸边界

设置为Tiled 模式,实现过个图片重复平铺的效果,

设置为Filed模式,实现图片的部分到整体的播放,可以用来做技能冷却,或者游戏的进度条(不是压缩的拉伸)

材质通常不需要选择,很少用到,可以用来实现一些特殊效果,如凹凸感觉

2.Sprite 有图集的概念,可以选择整图导入,UNITY中使用SpriteEditor切割,也可以选择导入后设置图片的packageTag系统       自动打包图集,图片小的,重复性比较高的图片最好打成图集,

注意:1,一个图集内的图片用UISprite,那么它就是一个DrawCall。但是如果你做了一个图集是1024X1024的。此时你的界面   上只用了图集中的一张很小的图,那么很抱歉1024X1024这张大图都需要载入你的内存里面,1024就是4M的内存,如   果你做了10个1024的图集,你的界面上刚好都只用了每个图集里面的一张小图,那么再次抱歉你的内存直接飙40M

2.带透明通道和不带透明通道的,CreatMipMap和不Create 的,不能制作成同一图集

2.3D---场景

1.单个Sprite 直接拖入场景中,系统自动添加SpriteRanderder 组件,作为3D物体直接使用,

2. 多个Sprite直接拖入场景,可以直接制作帧动画,在2D中同样也可以。

2.Texture 纹理

2D.---UI

1.Texture用在Raw Image组件上,可以用来制作动画

2.tuxture没有图集的概念,这样内存里只会占用你这一张图的大小,内存虽然小了但是DrawCall就上去了。因为每一

张UITexture就是一次DrawCall。原画,或者背景图建议直接使用UITexture。

3.可以通过UV 调节图片显示的偏移,和重复(可以用来制作多格子血条)

3D--场景

1.无论单个,多个,不可以直接拖入3D场景中!!,2D也不行

2.用于3D模型贴图,(Shader代码把贴图和纹理坐标映射),再由GPU把模型渲染出来

MeshFiiter组件中模型网格,存储的纹理坐标信息(Unity自己创建的Cube会自动添加纹理坐标所以创建后就能贴上纹理,3D建模时如果忽略 没有给模型生成纹理坐标,会导致模型贴上贴图没有效果)

MesherRenderder 物体渲染组件

补充:

材质纹理贴图的关系:
材质 Material包含贴图 Map,贴图包含纹理 Texture。

纹理是最基本的数据输入单位,游戏领域基本上都用的是位图。此外还有程序化生成的纹理 Procedural Texture。

贴图的英语 Map 其实包含了另一层含义就是“映射”。其功能就是把纹理通过 UV 坐标映射到3D 物体表面。贴图包含了除了纹理以外其他很多信息,比方说 UV 坐标、贴图输入输出控制等等。

材质是一个数据集,主要功能就是给渲染器提供数据和光照算法。贴图就是其中数据的一部分,根据用途不同,贴图也会被分成不同的类型,比方说 Diffuse Map,Specular Map,Normal Map 和 Gloss Map 等等。另外一个重要部分就是光照(高光,漫反射,环境等信息),通过Shader语言,调用CG,HLSL,GLSL图像编程接口写入一个文本中,构成材质的数据集合。

同时材质可以提供接口可以方便调试。

像素,分辨率
像素是计算机屏幕上所能显示的最小单位。用来表示图像的单位。

一个像素有多大呢?主要取决于显示器的分辨率,相同面积不同分辨率的显示屏,其像素点大小就不相同。

如一张640X480的图片,表示这张图片在每一个长度的方向上都有640个像素点,而每一个宽度方向上都480个像素点,总数就是640X480=307200(个像素),简称30万像素

分辨率指屏幕上像素的数目,为了控制像素的亮度和彩色深度,每个像素需要很多个二进制位来表示,如果要显示256种颜色,则每个像素至少需要8位(一个字节)来表示,即2的8次方等于256;当显示真彩色时,每个像素要用3个字节的存储量.像素值也是长度定义中使用最为普遍的单位像素值的英文名称为pixel

用像素值定义长度的时候,一定要考虑屏幕分辨率的兼容性,例如,一个设计者设置了一个张图片的显示宽度是800像素,在800*600像素分辨率的屏幕上它能够占据整个宽度,而在1600*1200像素宽度的屏幕上,它只能占有屏幕宽度的一半。

大小=分辨率*位深/8     分辨率=宽*高(如:1024*768,640*480)    位深:如24位,16位,8位       /8计算的是字节数。

例如:

一幅图像分辨率:1024*768,24位,则其大小计算如下: 不考虑压缩,占位等。。。。
大小=1024*768*24/8=2359296byte=2304KB

1、厘米和像素

厘米和像素没任何关系,厘米是长度单位,什么是象素呢?像素是组成图像的最基本单元。它是一个小的方形的颜色块。

一个图像通常由许多像素组成,这些像素被排成横行或纵列,每个像素都是方形的。当你用缩放工具将图像放到足够大时,就可以看到类似马赛克的效果,每个小方块就是一个像素。

每个像素都有不同的颜色值。单位面积内的像素越多,分辨率(dpi)越高,图像的效果就越好。

显示器上正常显示的图像,当放大到一定比例后,就会看到类似马赛克的效果。每个小方块为一个像素,也可称为栅格。像素图的质量是由分辨率决定的,单位面积内的像素越多,分辨率越高,图像的效果就越好。

显示屏的尺寸是指其对角线的长度,用英寸表示,1英寸=25.4毫米。

我们以一款手机为例来说明这个问题。其主屏尺寸:4寸,主屏分辨率:800x480像素,通过勾股定理计算可知其长宽为3.430寸X2.058寸(87.1毫米X52.3毫米)。800/3.430=233,即每英寸长度有233个像素,每一个像素有87.1/800=0.109毫米大。

显示屏的尺寸是指其对角线的长度,用英寸表示,1英寸=25.4毫米。

就是说这个手机的显示屏共由800X480=384000个边长为0.109毫米大小相等的像素点所组成。任何一张图片在这个显示器里百分之百全屏显示时(图片作为墙纸或屏保时效果最好),其像素点都是这么大。如果图片大过显示屏,则要滑动滚动条才能看完全图,如果小于显示屏,则会居中显示,无图显示处为黑框显示。对于640X480分辨率的图在此显示屏中会居中显示,在长度方向上两端会有一截为黑框显示。这个图片的尺寸长为69.68毫米,宽为52.3毫米。如果是在光线不足的条件下照得的相片,你会看到一格格的马赛克,画面很是粗糙。

而对于4.3寸主屏,若其分辨率:1280x720像素,则长和宽3.746X2.108(95.2毫米X53.5毫米),1280/3.746=341,即每英寸长度有341个像素,每一个像素有95.2/1280=0.074毫米大。显而易见这个屏幕比前面那个屏显示的效果好得多了。640X480分辨率的图片在这里的长和宽分别为47.6毫米和35.7毫米。对于4.5寸主屏,若其分辨率为:1280x720像素,则长和宽3.923X2.206(99.6毫米X56.0毫米),1280/3.923=326,即每英寸长度上有326个像素,每一个像素有99.6/1280=0.078毫米。和前面的4.3寸屏差不多

【Unity3D Editor】导入图片自动转换成Sprite相关推荐

  1. Unity3d导入图片自动修改TextureType为Sprite(2D and UI)及设置Packing Tag为文件夹名。

    Unity3d导入图片自动修改TextureType为Sprite(2D and UI)及设置Packing Tag为文件夹名. 文章目录 Unity3d导入图片自动修改TextureType为Spr ...

  2. Unity 将图片转换成 sprite 格式

    在 Unity 中经常需要将图片(如 jpg. png 等格式)转换成 sprite 的格式,从而用于贴图等场景中.其转换方法如下: 1.将一张 .png 格式的图片导入到 Unity的 Assets ...

  3. cad图片怎么转换成pdf格式

    cad图片怎么转换成pdf格式?就在小编进入到装修圈的时候,就遇到第一个专业问题.设计师给的CAD图片打不开,无法给客户进行报价讲解.时常要设计师进行格式转换,但很多时候需要等待或是修改的时候就很麻烦 ...

  4. 怎么把图片文字转换成word文档?介绍一个方法

    怎么把图片文字转换成word文档?这类问题在我们整理查找资料时最常见,因为很多信息都以图片形式展示了出来,我们在归纳时如果将其转换成文字在转成Word,就更易于日后编辑查看.而今天跟大家分享的是直接将 ...

  5. 扫描的图片怎么转换成word

    扫描的图片怎么转换成word 图片文字提取工具在现在的工作中经常回遇到,随着图片制作成本的降低,在很多场合都少不了图片文字的身影,虽然制作方便成本低但是使用起来并不是那么方便,因为它不能直接的复制,需 ...

  6. java自动转换需要的开头_字符串和数值型进行运算时,字符串如果不是数字开头,会自动转换成什么?...

    [单选题]下列哪个不属于氯丙嗪用于人工冬眠疗法的适应证 [单选题]某流域有甲.乙两个雨量站,它们的权重分别为0.4,0.6,已测到某次降水量,甲为80.0mm,乙为50.0mm,用泰森多边形法计算该流 ...

  7. 图片怎么转换成PDF格式?这两种方法赶紧记下

    怎么把图片转换成PDF文件格式呢?大家在整理很多张图片的时候,对于一些比较粗心的小伙伴来说非常困难,因为太容易出现错误了,不是照片丢失就是排序出现了问题.针对这种问题,有一个很好的解决方法就是将这些图 ...

  8. 如何将图片文字转换成文本?

    不少小伙伴都会以图片格式记录着文字信息,比如把重要的内容拍下来.各种类型的票据或者对文档的内容截图等,而拍照无疑是可以快速记录的方法,还不容易出错,只是在后续的整理图片和文字会花比较长的时间.如果有可 ...

  9. 如何把图片pdf转换成txt

    如何把图片pdf转换成txt 前段时间看到有午饭们在提问有没有PDF转成txt的软件,几经波折,现在找到了一款非常好的PDF转换成TXT转换器,就逼不及待地和大家分享出来了,需要的午饭们请及时下载喔  ...

最新文章

  1. 如何用 OpenCV、Python 和深度学习实现面部识别?
  2. vue如何sleep_Java常见面试题 非常实用【个人经验】
  3. java格式化double_java – 格式化double以省略不必要的“.0”,永远不会关闭
  4. matlab的message函数,matlab用于数字调制,几个函数的使用问题
  5. RIPv1 与 RIPv2 基础配置
  6. SSH中后台传到前台一个信息集合,tr td中怎么进行排列,类似在一个div里排列书籍...
  7. Ansible相关工具介绍、实例演示
  8. JavaWeb工程师知识图谱
  9. gzdeflate函数_PHP中的gzcompress、gzdeflate、gzencode函数详解_php实例
  10. Android坡度计
  11. 【Codeforces gym 102388】SUFE ICPC Team Formation Test,签到题BDG
  12. PS 如何去掉图片中的水印
  13. 【Java】URL下载网络资源(CloudMusic)
  14. Linux系统安装Node.js步骤
  15. nginx 常见错误码_Nginx启动常见错误及解决方法
  16. gRPC 使用自定义的 NameResolver
  17. CSS-边框和边距详解
  18. 安卓Android拍照车牌,车牌扫描识别技术SDK
  19. 自定义 VSCode 背景图片
  20. linux signal11,Linux Signal

热门文章

  1. 【iOS审核 4.2.2】被拒到上线心路历程及经验分享
  2. 使用ReactJs React-Bootstrap 构建网站(4):布局器的使用
  3. 2023年1月用户体验GX评测:商业银行抢抓新春营销旺季,多措并举持续提升用户体验
  4. 区块链协议新方向-图灵奖得主Macali开发Algorand
  5. 最高的奖励(贪婪算法)
  6. 设计原则与思想【面向对象、设计原则、编程规范、重构技巧】
  7. 【艾琪出品】-【计算机】测试题系列五参考资料
  8. JQuery 再谈ajax局部刷新
  9. STM32单片机+LD3320语音识别模块+MP3模块或者nsy8266语音合成模块制作的语音插座
  10. Java 静态代码块详解