java - 如何更高效地更新TriangleMesh的点?

标签 java javafx optimization 3d observablecollection

所以我正在致力于在 javafx 中创建 3D 建模工具包。在此工具包中,人们将能够加载模型文件并在所述模型上尝试动画。

目前,我将每个模型分成 TriangleMesh 对象组,其中组中的每个网格使用相同的材​​质。然后我有一个 AnimationTimer,它对加载的动画的帧进行排序,并为每个下一帧更新每个 TriangleMesh 中的所有更改点。然而,对点列表进行频繁更新会大大降低程序的性能。

我想知道是否可以优化?

我有一些想法,其中之一是我认为为每个模型设置一个 TriangleMesh 可能会有所帮助(尽管这是有问题的,因为我无法设置各个面的 Material ),但这仍然给我留下了更新可观察值的开销点列出得如此频繁。

最佳答案

拥有大量单独的 TriangleMeshes 确实非常低效。你为什么认为你需要那个?如果您只是想将不同的纹理应用于模型的不同部分,那么您可以创建纹理图集。这将允许您为每个模型使用一个 TriangleMesh,这将使事情变得更加高效。你的坐标修改的影响有多大还有待测试。

关于java - 如何更高效地更新TriangleMesh的点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58008988/

相关文章:

java - 如何为包装 TableRow 的类指定/定义编码器

java - 有人可以帮我解决我的代码错误吗?

javafx - Javafx使用按钮在另一个窗口中打开另一个fxml

我可以指望我的编译器在 const char * 上优化 strlen 吗?

python - 棋盘游戏:找到带有限制的红点的最大绿点

java - 表单布局样式

java - 从 Firebase 数据库读取数据时,如何知道访问的每个查询结果?

JavaFX 无法加载 FXML,找不到资源

java - 播放时如何获取音频元数据?

python - 使用 len() 和 def __len__(self) : to build a class