我正在尝试将字体字形图像打包到单个纹理中。位图是每像素单色 1 个字节,我希望将它们全部打包到 1 个纹理上。我能够计算出所需的最小纹理大小,但我无法管理一种算法将它们打包在一起。
我目前将位图存储为 char 指针,并且能够获取每个位图的尺寸。
我正在尝试将字体字形图像打包到单个纹理中。位图是每像素单色 1 个字节,我希望将它们全部打包到 1 个纹理上。我能够计算出所需的最小纹理大小,但我无法管理一种算法将它们打包在一起。
我目前将位图存储为 char 指针,并且能够获取每个位图的尺寸。
我不是装箱方面的专家,但这里有一个您可以尝试的简单算法。
这称为下一次拟合递减高度 (NFDH)算法。可以在这里看到一个交互式演示。
由于您的字形或多或少具有相同的高度,我认为这个简单的算法应该会给您带来很好的结果。
查看此调查以了解更多算法。
简单的打包算法可以在这里找到:http: //www.blackpawn.com/texts/lightmaps/
在 Jukka Jylänki 的论文“一千种打包垃圾箱的方法”中,它被称为“断头台包”。
blackpawn.com 上的伪代码非常简单。
类似问题也有相关答案: 将几张图片拼成一张大图