在 JavaFX 中为面板中的对象设置相机



我正在使用我的IDE和Java FX Scene Builder构建JavaFX应用程序。

"Scene"对象在扩展应用程序的类中定义。在此类的一个嵌套面板中,我加载了另一个 .fxml 文件。

另一个 .fxml 文件与 Java 类配对,包含一些我要显示的形状。

如果我将摄像机添加到 Scene 对象,则摄像机将应用于 GUI 中的所有面板、菜单和其余元素。我只希望相机应用于包含形状的内部面板,但是当我查找文档时,相机总是添加到场景中。

这是 Application 类中的代码,也是我第一次尝试添加摄像头,正如我之前解释的那样,当摄像头应用于应用程序窗口内的所有内容时,它会给出奇怪的结果:

public void initRootLayout() {
try {
// Load root layout from fxml file.
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("view/RootLayout.fxml"));
rootLayout = (BorderPane) loader.load();
// Show the scene containing the root layout.
Scene scene = new Scene(rootLayout);
addCameraAndLights(scene, null);
primaryStage.setScene(scene);
primaryStage.show();
} catch (IOException e) {
e.printStackTrace();
}
}

使用子场景包含 3D 形状。

类是场景图中内容的容器。子场景提供场景不同部分的分离,每个部分都可以使用不同的相机、深度缓冲区或场景消除锯齿进行渲染。子场景嵌入到主场景或其他子场景中。

您可以将子场景上的摄像机与应用于根场景的任何摄像机分开设置。

答案中提供了子场景使用的示例:

  • 如何在JavaFX 8中创建自定义3D模型?

最新更新