gpt4 book ai didi

c++ - 打包位图

转载 作者:行者123 更新时间:2023-11-30 03:06:24 26 4
gpt4 key购买 nike

我正在尝试将字体字形图像打包到单个纹理中。位图是每像素单色 1 个字节,我希望将它们全部打包到 1 个纹理上。我能够计算出所需的最小纹理大小,但无法管理将它们打包在一起的算法。

我目前将位图存储为字符指针,并且能够获取每个位图的尺寸。

最佳答案

我不是装箱方面的专家,但这里有一个您可以尝试的简单算法。

  1. 从最高到最低排列字形。最高的字形将放在最前面。
  2. 令 H 为下一个最高的未放置字形的高度。
  3. 通过添加一层高度 H 来垂直扩展您的纹理。
  4. 用剩余的字形(从高到低)填充关卡,直到没有空间容纳下一个字形。
  5. 转到#2

这被称为 Next-Fit Decreasing Height (NFDH)算法。可以看到一个交互式演示here .

由于您的字形高度大致相同,我认为这个简单的算法应该会给您带来不错的结果。

看看这个 survey更多算法。

关于c++ - 打包位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6674521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com