我正在使用IDE和Java FX Scene Builder使用JavaFX构建应用程序。
“场景”对象在扩展Application的类中定义。在此类的一个嵌套面板中,我加载了另一个.fxml文件。
与Java类配对的另一个.fxml文件包含我要显示的某些形状。
如果将照相机添加到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();
}
}
最佳答案
使用SubScene包含3D形状。
SubScene类是场景图中内容的容器。 SubScene提供了场景不同部分的分离,每个部分都可以使用不同的相机,深度缓冲区或场景抗锯齿进行渲染。 SubScene嵌入到主场景或另一个子场景中。
您可以在子场景上set a camera与应用于根场景的任何摄像机分开。
答案中提供了SubScene使用示例:
How to create custom 3d model in JavaFX 8?