我一直在使用新的JavaFx 3D api。 JavaFx 8引入了子场景节点,它包含自己的场景图,可以同时渲染为场景中的节点。这允许您在子场景中使用透视摄像机渲染3D节点,同时在顶部正交渲染HUD节点。这可以正常工作,直到您尝试移动HUD组件。如果子场景中的节点没有移动,JavaFx将不会重绘它。所以它只留下了HUD曾经存在的黑色文物。有没有办法强制重新绘制子场景?
编辑:我设法解决问题的一种方法是在屏幕上渲染一个无限旋转的立方体。因为它始终在旋转,所以子场景总是在更新。这似乎是一种修复它的荒谬方式,但它是我现在能做的最好的方法。仍在寻找更好的解决方案...
答案 0 :(得分:0)
Node.setCache(boolean)将完成这项工作,并在移动HUD组件后清除黑色工件。 将缓存与Cache hints一起使用,例如,在开始移动之前,将缓存提示设置为SPEED 完成动画后,切换回QUALITY,它将重新渲染您的节点(如摆动中的重绘())