2 Beiträge wurden von Godot中导入的spineDrawCall过大的问题 zusammengeführt.
Related Discussions
...
2 Beiträge wurden von Ask for help! SpineDrawCall too large in Godot zusammengeführt.

Welcome to our forum! 🙂

First of all, there's no need to open three different threads for the same question. It only creates unnecessary noise. Next time, please create a single thread and wait for a response—if the answer from Spinebot isn't satisfactory, you can follow up there.

Regarding your issue, that's not generally true and may be caused by your code. If we can't reproduce the problem, we won't be able to help. Could you provide a minimal reproduction project for the issue? If you can't share it here, you can send it to contact@esotericsoftware.com. If you do send an email, please include a reference to this forum post.

  • gyzbean hat auf diesen Beitrag geantwortet.

    Davide I'm sorry, I just encountered a problem and was in a hurry, afraid of not getting a response

    Spinebot
    这样设置正确吗

    • Davide hat auf diesen Beitrag geantwortet.

      gyzbean

      I don't see any particular issue, apart from the fact that you removed "Strip Whitespace X/Y."
      How many atlas pages does this configuration export?

      • gyzbean hat auf diesen Beitrag geantwortet.

        Davide 只有一个图集页面(尺寸小于2048*2048),我正在试着逐级排除问题的源头。我又使用texturePacker工具将spine中使用的散图导出为spine格式的图集给godot,但依然没能合批。或许问题的源头不在spine导出的设置上,而在于godot中。我在godot中尝试使用相同的材质(如shaderMaterial、CanvasItemMaterial)给spine但都无法合批。我尝试询问了AI但没能找到AI所说的一些选项。
        如果没有能解决godot合批spine的方法,或许godot用户就要被迫使用godot自带的骨骼动画工具了,这对spine工具的忠实用户以及spine官方都是一个损失,希望在此问题上能得到官方工程师的协助。

        We cannot help you if you don't send us a minimal reproduction project of your issue, as I said above.
        Many users use spine-godot without any issue with draw calls.

        • gyzbean hat auf diesen Beitrag geantwortet.

          Davide 我准备好了工程文件,我应该发送到哪里呢,可以给我一个邮件地址吗。非常感谢

          • Bearbeitet

          Harald I have sent the email from <gyzbean @ 126.com>
          hope to get a quick solution
          thank you very much

          Harald My email has been returned, and I am unable to send files in compressed formats such as zip or rar. I'll try another method and send the email later

          @gyzbean You can upload your project at some filehosting service and share a link if file size is too big.

          • gyzbean hat auf diesen Beitrag geantwortet.

            gyzbean

            Thanks for sending us the project. We'll analyze the issue as soon as we can, probably next week.

            • gyzbean hat auf diesen Beitrag geantwortet.

              Davide 好的,非常感谢。有结果了请通知我

              10 Tage später

              This is a limitation of Godot. They currently do not implement batching for 2D triangle meshes.

              orgs/godotengineprojects/33?pane=issue&itemId=20224421

              We've worked around this as best as possible, by using meshes explicitely:
              EsotericSoftware/spine-runtimesblob/4.2/spine-godot/spine_godot/SpineSprite.cpp#L173

              However, that does not help with draw calls. It does improve performance compared to canvas_item_add_triangle_array though.

              Note however, that Godot 4+ uses Vulkan as the default renderer. Batching is much less impactful there, which is one of the reasons it hasn't been implemented by Godot yet.

              • gyzbean hat auf diesen Beitrag geantwortet.

                Mario 我了解了,其实我不久前才购买了spinePro,虽然我很希望在项目中使用这个便捷的工具,但godot似乎还不太成熟。
                所以这是否意味着,如果我希望大规模使用spine作为游戏中的角色,最好使用unity引擎,或使用godot的原生骨骼工具+图集的方式来实现,这两种方案似乎都可以解决batch的问题。

                Mario 等等,可能刚刚我没有完全理解你的描述,你的意思是不是说,我可以忽略掉合批这个概念去使用godot-spine,不能像对待传统引擎的思路去对待godot,因为它的底层渲染逻辑很特殊,drawcall对它的影响很小。是这个意思吗?我可以忽略drawcall这个概念,在godot中大量使用spine动画