一种非常简单的Pack Sprite的算法实现
之前在找一些打图集的算法时,偶尔在一个网站看到一个非常简单,而且容易实现的打图集算法:Packing Lightmaps。具体思路大概就是,每次填充一个Sprite的时候,就将当前这个可用空间划分为完全适配这个Sprite大小空间(长和宽分别适配),和剩下的空间,最后形成一颗树状结着的空间切分数据结构。根结点就是整个可用空间的大小,叶子结点要么是已经分给已经Packer的Sprite,要么就是已经可用的空间,可以进行分配和划分。于是自己实现了一个简单的C#的版本,网上还有一个Cpp的版本,写得很周全。
碎图:
打图集后:
使用: