ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

Free Texture Packer:100张精灵图压进1张图集

Free Texture Packer:100张精灵图压进1张图集 Free Texture Packer100张精灵图压进1张图集【免费下载链接】free-tex-packerFree texture packer项目地址: https://gitcode.com/gh_mirrors/fr/free-tex-packer你的2D游戏塞了120张精灵Draw CallGPU绘制调用飙到三位数帧率腰斩。解法是把小图合并成纹理图集把多张小图拼进一张大图、用坐标索引取用的技术。Free Texture Packer 是一个开源免费的纹理图集生成器拖入图片自动排布、修剪、旋转导出各引擎要的格式Web 版和 Electron 桌面版都能跑。它帮你砍掉了哪些开销先看游戏侧。一个120张精灵的场景每张图单独绘制意味着120次左右的Draw Call加上每帧的纹理状态切换中低端设备上帧率直接腰斩。打图集后这120张变成1张图1份JSON描述文件Draw Call 从100降到1~2参考文章实测帧率提升约40%。代价省的不只是帧数——图集还能减少文件数启动时资源加载更快。再看网页侧。60个小图标就是60个独立HTTP请求移动端弱网下每个请求排队200ms页面加载时间被拖长50%以上。合并成1~2张图集后请求数从60降到2左右降幅超过95%首屏基本不用再等图标一个个爬回来。MaxRects怎么排图三步讲透核心逻辑排图核心是MaxRects算法在固定矩形区域内为小矩形找最优摆放位置的打包算法三步走按面积从大到小排序。先安置占地方最大的图剩下的碎片空间好处理反过来先塞小图大图进来时经常无家可归。在现有布局里找最优空位。每来一张图算法把已占区域切成若干空闲矩形逐一试摆按最贴近上边、最贴近左边Shortest/Leftmost 边逻辑或最小面积规则打分取最优位置落子。自动填缝。放不下时不是直接失败而是回头检查相邻已占矩形之间的缝隙把旋转90度后刚好能塞进去的长条图填进空隙。两个开关会显著影响利用率允许旋转长条精灵转90度常常正好塞进横不进去的空位、自动修剪裁掉四周透明像素再记录裁剪偏移渲染时自动还原。架构上不用记核心就打包器、导出器、Web/Electron 适配层三块——打包器算出每张图的坐标后交给导出器渲染成各引擎要的格式同一套核心两个平台共用。从 git clone 到第一张图集4步走环境要求Node.js ≥14、npm ≥6。步骤操作命令1克隆仓库git clone https://gitcode.com/gh_mirrors/fr/free-tex-packer2安装依赖cd free-tex-packer npm install3启动Web版桌面版换成npm run start-electronnpm run start4浏览器访问http://127.0.0.1:4000拖入精灵图点打包下载—启动后拖入图片支持整个文件夹和 zip在右侧属性面板调参数点 Pack 即出图。常用参数参数说明建议值纹理尺寸宽/高图集画布大小留空则按素材自动计算2048×2048 起步边距 padding精灵之间的安全间距防边缘渗透0~1px修剪 trimming裁掉透明边缘记录偏移空间利用率更高开旋转 rotation允许90°旋转填补空隙引擎支持就开2的幂对齐 POT 尺寸部分引擎纹理格式要求按引擎要求输出格式见下节对照表按目标引擎选哪个输出格式一张表说清格式输出文件适用场景注意JSON (hash).jsonPhaser、pixi.js 及自研引擎通用首选支持修剪/旋转XML.xml传统引擎与 Starling 等老工具链兼容性最好CSS (modern).css网页 sprite 背景定位可直接挂样式旧版CSS格式不支持修剪/旋转Unity3D.tpsheetUnity 精灵图集导入不支持旋转需关闭rotationCocos2d.plistCocos 引擎精灵帧数据支持修剪/旋转模板都在 src/client/resources/static/exporters/ 里格式列表定义在 src/client/exporters/list.json。Phaser3、Godot、Spine、UIKit 等格式同样内置打开面板下拉框即可选。进阶模板定制、批量跑、压缩三件套自定义模板导出基于 Mustache 模板引擎模板内可访问rects每张精灵的 name/frame/rotated/trimmed 等、config图宽、缩放、输出文件名两组变量。选custom格式或仿照现有.mst文件写一个就能产出目标引擎专属的字段结构。批量跑Web 版支持直接拖入文件夹或 zip 一次打包要把纹理打包集成进 CI 或构建流程官方配套了 gulp、grunt、webpack 插件和 CLI命令一行接入。TinyPNG 压缩面板里填 TinyPNG API key 后打包时走 TinyPHP 代理做压缩实现见 server/lib/Tinify/图集体积通常再降30%~50%。适合谁用 / 下一步 适合2D 游戏项目Phaser、Godot、Unity 2D、Cocos以及图标/UI 图一多到 HTTP 请求爆炸的 Web 前端——这类大量小图场景正是纹理打包的主场。不适合3D 项目纹理管线、需要 ASTC/BC 块压缩和 mipmap 生成的引擎它输出 PNG/JPG 加描述文件以及对商业 TexturePacker 的自动图集切分、PVR 格式支持有硬性依赖的团队。下一步先拿项目里一个图集打样对比打包前后 Draw Call 和请求数数字对了再推广到全部资源。【免费下载链接】free-tex-packerFree texture packer项目地址: https://gitcode.com/gh_mirrors/fr/free-tex-packer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表