一、纹理压缩的必要性1、无须CPU解压即可被GPU读取,节省CPU时间和带宽。2、节省大量内存,极限时可以减少16倍消耗。3、部分压缩格式可以节省图片体积。 二、常用的压缩格式与其内存消耗压缩格式内存消耗 (bytes/pixel)iOSRGB Compressed PVRTC 2 bits0.25 bppRGBA Compressed PVRTC 2 bits0.25 bppRGB Compressed PVRTC 4 bits0.5 bppRGBA Compressed PVRTC 4 bit
2D: Sprite Atlas支持安卓ETC1压缩格式ETC1不支持带透明信息(alpha通道)的贴图。一种解决方法是将原贴图分割为两张不带alpha的贴图(一张为原图图像,另一张以灰度图的形式存储贴图透明信息)。这种情况下,需要shader做一次额外的纹理查询来获取灰度图上存储的透明信息并将之合并到最终结果。unity中的Sprite Atlas现在完美支持ETC1格式纹理压缩,并且开发者能够控制对每一张贴图的压缩细节。2D: Sprite Packer改进Sprite Packer(图集打
Unity 手游内存优化分享这里从三个纬度来分享下内存的优化经验:代码层面、贴图层面、框架设计层面。一.代码层面。 1.foreach。 Mono下的foreach使用需谨慎。频繁调用容易触及堆上限,导致GC过早触发,出现卡顿
介绍了各种移动设备所使用的GPU,以及各个GPU所支持的压缩纹理的格式和使用方法。1. 移动GPU大全目前移动市场的GPU主要有四大厂商系列:1)Imagination Technologies的PowerVR SGX系列 代表型号:PowerVR SGX 535、PowerVR SGX 540、PowerVR SGX 543MP、PowerVR SGX 554MP等代表作 :Apple iPhone全系、iPad全系,三星I9000、P3100等2
游戏开发中常遇到资源保护的问题。目前游戏开发中常加密的文件类型有:图片,Lua文件,音频等文件,而其实加密也是一把双刃剑。需要安全那就得耗费一定的资源去实现它。目前网上也有用TexturePacker工具来加密的,不过针对性还是不够强。分析一下原理为:1,转格式:将需要加密的文件转为流的方式;2,加密:根据自己需要使用加密手段,MD5,AES,甚至可以直接改变位移,加一些自己的特殊字符也可以使文件简单加密,加密完后基本保证图片类型基本用特殊软件预览不了也打不开,Lua文件加密后一片乱码····;3,保存自定
GameRes游资网授权发布 文 / 王选易 说起游戏的优化,在游戏开发中经常分为这几步: 首先要确定游戏中经常会出现哪些问题 - Profile 然后确定在哪些方向进行性能优化 - Analyze 最后再尽可能将问题逐个解决 - Solve 游戏开发中一定是先做工具,进行Profile,再进行优化,所以,说优化就不得不再扯一下Profile。 常见的工具有一些是引擎和IDE自带的,比如Unity自带的Profiler,就包含了CPU,GPU,Memory等等各式各样的性能分析工
Android NDK中ETC1纹理的加载和Alpha通道处理本文将论述如何使用ETC1纹理。压缩纹理有什么好处?你可能对诸如.png和.jpg的图片很熟悉。.png采用的是无损压缩的方式,而.jpg采用的是有损压缩。通常情况下,对同一图像采用JPG格式时,降低质量的代价更小一些。不论图像在磁盘上采用什么方式存储,当把它加载到内存中时,图像都会解压到原始大小。对于RGBA 8888,每个像素占32bits,所以,当你加载1024*1024大小的纹理时,可能会使用掉4M的宝贵内存。抛开这些知名的图像格式不说,
Guest Blog: Choices and Tricks, The Visuals of Anshar Wars 2Developers Blog | Posted by Camille Muller, Art Director, OZWE Games| 2015年12月4日 | ShareGuestBlogs: 技巧与选择 , Arshar Wars 2 的视觉效果Posted by Camille Muller, Art Director, OZWE Games GuestBlogs 由现实世界中
原文链接:http://blogs.unity3d.com/2015/04/24/early-access-to-new-2d-tools/ 原文作者未做版权声明,视为共享知识产权进入公共领域,自动获得授权一、2D开发者大家好! 首先,我要感谢你们对Unity的持续支持,特别是我们的2D功能。2D开发团队对于能工作在引擎领域非常高兴,并且我们非常开心的宣布,作为一家公司,我们会投入相当可观的额外资源来让我们的2D工具更加直观有效灵活,竭尽我们所能。二、2D非常重要 发展2D功能已经是Unity最高
原文链接:http://blog.uwa4d.com/archives/optimzation_memory_1.html项目的性能优化主要围绕CPU、GPU和内存三大方面进行。接上期CPU优化专讲,我们本期和大家分享内存方面的优化心得。无论是游戏还是VR应用,内存管理都是其研发阶段的重中之重。然而,在我们测评过的大量项目中,90%以上的项目都存在不同程度的内存使用问题。就目前基于Unity引擎开发的移动游戏和移动VR游戏而言,内存的开销无外乎以下三大部分:1.资源内存占用;2.引擎模块自身内存占用;3.托
一、引子 手游项目开发日常里,经常有美术同学搞不清Photoshop制图软件与Unity3D游戏引擎之间的图片assets流转逻辑,在工作输出时经常出现如下疑问:1、要JPG的,还是要PNG的?2、JPG的要压存为多高质量的?3、PNG的还要压?引擎不是自动处理的么?4、为毛非要正方形的?我这个图实在是没法儿做方的怎么弄?5、图太大,要选哪个压缩方式?有的怎么选了也没效果?有的又压的太糊!6、这个效果不行,开发没有还原好啊! 所以开发或者技美同学要经常解释这些问题,这里面的确有些内容比较难以说明白,一个
一、聊聊近况: 距离上一篇文章已经过了好久,主要原因是我懒了。公司项目也到了开始优化的阶段,上网找的资料,看过了就忘。还是想把它整理一下,写出来。其实我说的东西,网上都有,我只是搬运工而已。二、贴图压缩: Android平台使用ETC1格式压缩。 目前主流的Android机型基本都支持ETC1格式压缩。但ETC1只能支持非Alpha通道的图片压缩。 所以一般把RGB和ALPHA分离出来,r值,g值,b值从RGB图获取,a值从Alpha图里获取。 随着OPENGL ES 3.0的发布,etc2也出了
1、Unity在打包时,不会保留两份纹理,所以不存在一份ETC2 和RGBA8 的问题; 2、按照你们提供的压缩参数,unity 产生的压缩贴图格式是ETC1,之所以在小米4C上看到的是ETC2,是因为ETC2 是 android 默认的压缩格式; 3、根据你们提供的MX3上的截图,怎么看出来是RGB格式啊? 根据文件大小分析,应该不是RGB格式的贴图。
简单纹理格式 RGBA8888 每个像素4字节,RGBA通道各占用8位 RGBA4444 每个像素2字节,RGBA通道各占用4位 RGB888 每个像素3字节,RGB通道各占用8位,无透明通道 RGB565 每个像素2字节,RGB通道各占用5/6/5位,无透明通道 RGBA5551 每个像素2字节,RGB通道各占用5位,透明通道1位,所以要么完全透明要么不透明 DXT纹理压缩格式 DXT纹理压缩格式来源于S3(Silicon & Software Systems)公司提出的S3TC(S3Tex
CCImage作为cocos2dx texture的核心处理函数包含了丰富的底层API调用和纹理格式操作,以CCImage来作为切入点发散性地去做扩展既可以了解到纹理层丰富的处理技术,也更加容易加深我们对cocos2dx引擎的理解。 #define CC_GL_ATC_RGB_AMD 0x8C92 #define CC_GL_ATC_RGBA_EXPLICIT_ALPHA_AMD
压缩纹理能够节约不少内存空间,因此目前项目中UI全都是用Texture Packer打包出大图之后压缩。Unity导入纹理的默认设置是compress,在符合条件的情况下会优先使用PVR或ETC、否则会降为RGBA4444。从程序的角度来说,当然是1/4大小的压缩纹理更好啦~但是,毕竟是有损压缩,会带来一定的损失,有时候还是挺郁闷的。 第一个常见的问题是渐变颜色区域经过压缩之后会出现色阶,如下图所示。我参考了dither思路,用Photoshop加了一层0.3%的高斯分布杂音;可以看到ETC和PVR都
在游戏和VR项目的研发过程中,加载模块所带来的效率开销和内存占用(即“加载效率”、“场景切换速度”等)经常是开发团队非常头疼的问题,它不仅包括资源的加载耗时,同时也包含场景物件的实例化和资源卸载等。在我们看来,该模块的耗时是目前引擎中仅次于渲染的第二大模块。因此,我们认为非常有必要来跟大家分享一下目前加载模块的主要性能问题。我们通过对提交到www.uwa4d.com网站的大量项目进行分析,认为目前加载模块中最为耗时的性能开销可以归结为以下几类:资源加载、资源卸载、Object的实例化和代码的序列化等。今天,
ETC(EricssonTexture Compression)爱立信纹理压缩是2005年初与爱立信合作研 发的一种有损纹理压缩技术,是最通用的纹理压缩格式,几乎所有的安卓设备都可以支持ETC压缩的GPU加速。它是一种为感知质量设计的有损算法,其依据是人眼对亮度改变的反应要高于色度改变。 ETC1 原始的ETC1压缩提供了对24位RGB数据6倍的压缩比率,不过ETC1并不提供Alpha的压缩,不过现在有方法来支持[Alpha](http://malideveloper.arm.com/cn/devel
近段时间在使用cocos2d-x开发2D手游,技术方案使用的是cocos2d-x+lua,因为游戏使用的是cocos2d-x 2.1.5版本,有些优化方案在最新版的cocos2d-x版本已经实现了。这篇文章主要是总结在使用cocos2d-x2.x版本+lua技术方案时遇到的问题和一些性能优化总结。1、 渲染优化a、合并渲染-自动批处理 因为我使用的cocos2d-x2.1.5版本,引擎并没有实现自动批渲染,底层也改动了不少代码,不太方便直接升级到3.0版本,这里参考了cocos2d-x3.0版本,修改
项目的性能优化主要围绕CPU、GPU和内存三大方面进行。接上期CPU优化专讲,我们本期和大家分享内存方面的优化心得。 无论是游戏还是VR应用,内存管理都是其研发阶段的重中之重。 然而,在我们测评过的大量项目中,90%以上的项目都存在不同程度的内存使用问题。就目前基于Unity引擎开发的移动游戏和移动VR游戏而言,内存的开销无外乎以下三大部分:1.资源内存占用;2.引擎模块自身内存占用;3.托管堆内存占用。 如果您的项目存在内存问题,一定逃不出以上三种情况。今天,我们就这三种情况逐一进
标签暂无描述