gpt4 book ai didi

drawing - 使用 spritekit 在单次绘图过程中渲染节点?

转载 作者:行者123 更新时间:2023-12-04 12:08:10 24 4
gpt4 key购买 nike

当我四处寻找有关 spritekit 纹理的信息时,我偶然发现了这句话:

If all of the children of a node use the same blend mode and texture atlas, then Sprite Kit can usually draw these sprites in a single drawing pass. On the other hand, if the children are organized so that the drawing mode changes for each new sprite, then Sprite Kit might perform as one drawing pass per sprite, which is quite inefficient.



但是看看这个:

具有相同纹理的瓷砖(我向您保证这是一种纹理,而不仅仅是一种颜色)
Untextured tiles

具有自己纹理的瓷砖
Textured tiles

绘制计数有 40 的差异,尽管使用的所有纹理都来自同一个图集。

我对“atlas”这个词的解释有误吗?

这是我存储图像的地方:

texture atlas

我的示例是“纹理图集”,还是此处“图集”的定义是单个 .png 文件,其中包含所需的所有图像,并且从中切出单个图块?

或者问题可能在于我如何加载/其他东西?

谢谢!

最佳答案

这里的问题很可能是因为节点图本身。假设您有 100 个 Sprite 作为场景的子级,没有自己的子级,并且它们都使用来自相同图集和默认混合模式的纹理,那么 Sprite Kit 将在单个绘制调用中批量绘制这 100 个 Sprite 。

然而,如果这些图块 Sprite 有自己的子节点,可能是用于调试的形状或标签节点,那么这将“中断”批量绘制操作。

检查您的节点图。确保所有平铺 Sprite 都是同一父级的子级,并且没有自己的子级,使用来自同一图集中的相同混合模式和纹理。那么批量绘图肯定会起作用。

如果这不起作用,请确认 tile.atlas 文件夹已正确转换为包中的纹理图集。如果打开编译后的应用程序包,您应该找到一个名为“tiles.atlasc”的文件夹,其中包含一个 plist 和一个或多个 png 文件,其中包含该文件夹的所有单个图像。此外,这些单独的图像都不应该出现在包中——如果它们作为单独的文件添加到包中,使用与图集中相同的名称,那么 Sprite Kit 将默认加载单独的图像文件,而不是从纹理图集中获取它们.

关于drawing - 使用 spritekit 在单次绘图过程中渲染节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22851983/

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