JavaFX 3D-场景摄像机问题,子场景错误和MeshView不可见

时间:2018-08-04 17:26:50

标签: javafx javafx-8 javafx-3d

在提供足够信息的同时,我会尽量做到简短,以便有人可以帮助我指出正确的方向。我正在尝试向中心或边界窗格添加3D场景,该场景将包含我使用经过其他人很好测试的obj加载器从obj文件读取的一组网格视图的网格视图(因此,我相信它可以工作)。我将逐步给出总结,并提供一张图像以显示我的进度和问题。 我从我的边框开始是空的: enter image description here 接下来,我从一本书的示例开始,向我添加了三个基本体,并将它们添加到场景中并对其进行了更改,以便将其添加到边框的中心部分。我创建了一个与File / Open操作相关的方法,当我单击File / Open时,它将调用该方法并创建基元并将其添加到边框的中心: enter image description here 接下来,我尝试使用以下几行将摄像机添加到作为初始Application start方法一部分创建的主场景中: (第29至33行在先前的图片中已注释掉) enter image description here 但是,这导致以下问题,其中边框窗格被投影到第三维中: enter image description here 然后,我尝试在边框窗格的中央使用SubScene,但仍然收到很多类型为nullpointerexception的错误,并且信息太模糊了,我无法使用它来找出它不满意的地方。 我在试图弄清这个问题时要处理的另一个更重要的问题是最终版本,该最终版本旨在从obj文件读取一组网状视图并将其添加到中心不起作用。该代码读取obj文件并从中导入meshviews。我已经打印出控制台读取的MeshViews数量,并且与测试文件中的内容相匹配,所以我确信我正确地使用了它,并且该加载器已经被很多人使用,因此已经过测试。但是,当我尝试更改并将其添加到中心的网格视图时,我只是得到一个空白的中心屏幕和一个控制台打印输出,其中显示了该文件并读取了正确数量的网格视图。我一直找不到找到调试/解决此问题的好方法。因此也可以使用一些建议。 感谢您的任何帮助,您可以提供。

1 个答案:

答案 0 :(得分:0)

代替
Scene scene = new Scene(borderPane,sceneWidth,sceneHeight);

添加此

Scene scene = new Scene(borderPane,sceneWidth,sceneHeight,true, SceneAntialiasing.BALANCED);

最后两个参数是= depthBuffer和抗锯齿