zoukankan      html  css  js  c++  java
  • 游戏开发中的利器TexturePacker实现游戏贴图打包

    著名的图片打包软件TexturePacker,只要是做游戏应用开发,几乎都会或多或少的用到它。

    使用TexturePacker更多的性能优势在于手游上,因为无论Android或者ios系统使用的是OpenGL ES来渲染,所以我们要针对OpenGL ES来进行优化。
    第一点:内存方面OpenGL ES纹理要求宽和高都是2n次幂的倍数。就是说,若start.png这张图片本身是480X320的话,那它在载入内存后其实是一张512X512的纹理。那它具体占用了多少内存呢?默认情况下,当在Cocos2D里加载一张图片时,对于每一个像素点使用4个字节(1个byte即8bit)来表示——分别代表red\green\blue\alpha透明通道,简称RGBA8888。这样的话,这张start.png图片在使用默认像素格式下所占内存为:512*512*4=1MB。所以我们可以考虑将小的图片拼成到大的图片,然后一起加载。

    第二点:渲染速度方面OpenGL ES要求尽量减少渲染时切换纹理和glDrawArray的呼叫,所以将图片拼成大图片,这样就减少了纹理的切换。所以使用TexturePacker是很有必要的。

    TexturePacker所支持的游戏引擎更是相当广泛,主要有:
    Cocos2d-iPhone
    Corona(TM) SDK - Cross-platform game development framework
    Gideros - Cross-platform game development framework
    Sparrow - iPhone
    LibGDX - Java (Android + Desktop)
    LimeJS - JavaScript/HTML5 framework
    Ogre with CEGUI - 3D gaming framework and GUI
    Moal - Multiplatform gaming framework
    CSS Sprites
    JSON / HTML5
    ......

    TextturePacker的界面的一些设置项:

    Data Format:导出什么引擎数据,默认cocos2d,下拉列表中有很多,基本常用的引擎都支持了 
    Data File :导出文件位置(后缀名.plist) Texture Format:纹理格式,默认png 
    Image format:图片像素格式,默认RGBA8888...根据对图片质量的需求导出不同的格式
    Dithering:抖动,默认NearestNeighbour,(如果图像上面有许许多多的“条条”和颜色梯度变化)将其修改成FloydSteinberg+Alpha; 
    Scale: 让你可以保存一个比原始图片尺寸要大一点、或者小一点的spritesheet。比如,如果你想在spritesheet中加载“@2x"的图片(也即为Retina-display设备或者ipad创建的)。但是你同时也想为不支持高清显示的iphone和touch制作spritesheet,这时候只需要设置scale为 1.0,同时勾选autoSD就可以了。也就是说,只需要美工提供高清显示的图片,用这个软件可以自己为你生成高清和普清的图片。 
    Algorithm TexturePacker:里面目前唯一支持的算法就是MaxRects,即按精灵尺寸大小排列,但是这个算法效果非常好,因此你不用管它。 
    Border/shape padding: 即在spritesheet里面,设置精灵与精灵之间的间隔。如果你在你的游戏当中看到精灵的旁边有一些“杂图”的时候,你就可以增加这个精灵之间的间隔。 
    Extrude: 精灵边界的重复像素个数. 这个与间隔是相对应的--如果你在你的精灵的边边上看到一些透明的小点点,你就可以通过把这个值设设置大一点。 
    Trim: 通过移除精灵四周的透明区域使之更好地放在spritesheet中去。不要担心,这些透明的区域仅仅是为了使spritesheet里面的精灵紧凑一点。--当你从cocos2d里面去读取这些精灵的时候,这些透明区域仍然在寻里。(因为,有些情况下,你可能需要这些信息来确定精灵的位置) 
    Shape outlines: 把这个选项打开,那么就能看到精灵的边边。这在调试的时候非常有用。 
    AddSprite:添加图片
    Add Folder:根据文件夹添加图片 
    Publish:导出资源文件(.plist和png)

  • 相关阅读:
    SET TEXTSIZE number
    Oracle 参数之_small_table_threshold
    Oracle等待事件db file parallel read
    ORA-12631 / TNS-12631: Username retrieval failed
    Oracle的Connect By理解
    ORA-01436: 用户数据中的CONNECT BY 循环
    Cortex-M3启动深度解析
    【SmartOS】轻量级多任务调度系统
    物联网智能硬件设备身份验证机制
    物联网智能硬件设备常见攻击方法
  • 原文地址:https://www.cnblogs.com/lovecode/p/2315750.html
Copyright © 2011-2022 走看看