Performance 在pyglet中绘制带有3500个标签的批次时FPS下降
我正在制作一个带有地图的电子游戏,我试图在上面打印每个地区的名称。为此,我使用pyglet.text.Label对象。尽管所有这些标签都分配给同一批次,但当我绘制批次时,我的FPS低于1。这是初始化所有标签的循环:Performance 在pyglet中绘制带有3500个标签的批次时FPS下降,performance,label,pyglet,Performance,Label,Pyglet,我正在制作一个带有地图的电子游戏,我试图在上面打印每个地区的名称。为此,我使用pyglet.text.Label对象。尽管所有这些标签都分配给同一批次,但当我绘制批次时,我的FPS低于1。这是初始化所有标签的循环: label_font_size = 30 for i in range(self.reg_center_list.shape[1]): temp= pg.text.label(str(self.reg_names[i]
label_font_size = 30
for i in range(self.reg_center_list.shape[1]):
temp= pg.text.label(str(self.reg_names[i]), x=self.reg_center_list[0,i], y=self.reg_center_list[1,i],
group=self.names_group, batch=self.low_prox_batch, anchor_x='center',anchor_y='center',
font_size=label_font_size)
标签文本存储在self.reg_名称列表中及其相对于self.reg_中心列表中地图的位置。它们总共有3500多个标签添加到批次中。我做了一个实验,在一个标签上打印了相同数量的文本,如下所示:
stringg=''
label_font_size = 30
for i in range(self.reg_center_list.shape[1]):
stringg=stringg + str(self.reg_names[i])
temp= pg.text.Label(stringg, x=self.reg_center_list[0,i], y=self.reg_center_list[1,i],group=self.names_group,
batch=self.low_prox_batch, anchor_x='center',anchor_y='center', font_size=label_font_size)
尽管绘制了相同数量的glyph,但这对fps没有显著影响。在将此文本拆分为多个标签时,似乎会产生一些开销。我想知道问题是否可能是由于某种原因,同一字形的纹理组在标签之间不共享,导致程序切换每个字形和每个标签的组,但我很难确认这一理论,也很难找到可能的解决方案。有人知道如何解决这个问题吗?欢迎提供任何帮助,如果需要更多信息或不清楚,请发表评论。:) 这是一个较老的问题,没有正确考虑标签批次中的分组。它被固定在: 修复使用标签的自定义组时的TextLayoutGroup合并 由于您正在运行1.4.8,这很可能就是问题所在。
无论如何,您可能都应该更新到最新版本,要做到这一点,只需执行以下操作:
sudo pip install --upgrade pyglet
若要获取最新版本,或
pip安装,请升级pyglet
,如果您喜欢用户本地pckages。您使用的pyglet版本是什么?您好,我使用的是1.4.8版