2014-10-20 170 views
5

我一直在使用新的JavaFx 3D api。 JavaFx 8引入了包含自己场景图的子场景节点,并且可以同时渲染为场景中的节点。这允许您在子场景中使用透视摄像机渲染3D节点,同时使HUD节点在正交顶部呈现。这工作正常,直到您尝试并移动HUD组件。如果子场景中的节点没有移动,JavaFx将不会重绘它。所以它只会留下HUD曾经存在的黑色文物。有没有办法强制子域被重绘?在JavaFx中强制重绘节点

编辑:我已经设法解决这个问题的一种方法是渲染一个立方体关闭无限期旋转的屏幕。由于它始终在旋转,因此子场景一直在更新。这看起来像修复它的一个荒谬的方式,但它是我现在能做的最好的。仍然在寻找更好的解决方案...

+0

创建一个[MCVE](http://stackoverflow.com/help/mcve)并将其登录到[错误报告](https://wiki.openjdk.java.net/display/OpenJFX/Submitting+一个+错误+报告)与您的环境信息。 – jewelsea 2014-10-20 17:43:43

回答

0

Node.setCache(boolean)将完成这项工作,并将移动HUD组件后清除你的黑色文物。 使用缓存Cache hints,比如你开始移动之前,你有动画切换回QUALITY设置缓存提示SPEED 一旦完成,它将重新渲染您的节点(如在摆动重绘() )