我有N项2D图像数据将是矩形的,我想尽可能高效地将它们打包成2个纹理的单个幂.
一个简单的非高效和天真的算法实现包装这些rects很容易鞭打,但我敢肯定人们已经提出算法尽可能节省空间.我发现了与光照贴图类似的各种参考,这与我正在寻找的类似,但是光照贴图的算法往往会考虑非矩形图像,这实际上使事情变得比我需要的更复杂.
有人有提示吗?算法或论文作者的名字我应该google?
谢谢.
我需要做你描述的事情.
这是我使用的Python代码,它是Python Cookbook中的一个配方:
配方442299:将不同尺寸的多个图像打包成一个图像
您在1D中的问题称为Bin Packing.也许这是您搜索的良好开端.
请注意,您要解决的问题非常困难(它是NP难的).所以你不应该寻找最佳解决方案,而是一些聪明的启发式算法.
我认为自下而上的动态编程可用于1D bin打包,但不适用于2D情况.
您可以考虑通过仅解决1D问题来简化问题,制定限制,例如将纹理切割为1维中的多个(可变大小)切片.
另一种可能性是对其进行元启发式优化,如进化算法或粒子群优化.