所以我正在致力于在 javafx 中创建 3D 建模工具包。在此工具包中,人们将能够加载模型文件并在所述模型上尝试动画。
目前,我将每个模型分成 TriangleMesh 对象组,其中组中的每个网格使用相同的材质。然后我有一个 AnimationTimer,它对加载的动画的帧进行排序,并为每个下一帧更新每个 TriangleMesh 中的所有更改点。然而,对点列表进行频繁更新会大大降低程序的性能。
我想知道是否可以优化?
我有一些想法,其中之一是我认为为每个模型设置一个 TriangleMesh 可能会有所帮助(尽管这是有问题的,因为我无法设置各个面的 Material ),但这仍然给我留下了更新可观察值的开销点列出得如此频繁。
最佳答案
拥有大量单独的 TriangleMeshes 确实非常低效。你为什么认为你需要那个?如果您只是想将不同的纹理应用于模型的不同部分,那么您可以创建纹理图集。这将允许您为每个模型使用一个 TriangleMesh,这将使事情变得更加高效。你的坐标修改的影响有多大还有待测试。
关于java - 如何更高效地更新TriangleMesh的点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58008988/